前言:背八股嗷呜

一、Linux

1、命令部分

ls 列出目录 cd 改变目录 pwd 显示当前目录 cp复制 mv移动 rm 删除文件 rm -f强制删除 mkdir 创建目录

rmdir 删除空目录

chmod修改文件权限

cat 显示文件内容

find / -name “name.txt”查找文件名为…的文件

ps查看当前进程 top实时显示系统资源

kill “id”终止进程

网络命令ping ipconfig netstat(显示网络连接状态)

useradd 创建新用户

groupadd 创建新组

fdisk分区工具

mount挂载文件系统

umount卸载文件系统

df查看磁盘使用 du查看磁盘占用

apt/yam install + 应用名 安装应用

apt/yam remove +应用名 卸载应用

dmesg查看系统启动日志

iptables 配置防火墙

2、文件系统结构

文件结构/ /home /etc

/bin 存放系统启动时必需的可执行文件

/etc 配置文件

/home 主目录

/var 可变数据如日志文件

/tmp 临时文件

/usr 共享只读数据

文件权限只有r-读,写-w,执行-x。权限分为文件所有者,同组用户,其他用户。通过ls -l查看命令

修改权限 chomd +x file使文件可执行 修改文件所有者chown user:group file

image-20250210151735693

二、MySql

1、基础

事务(Transaction) 是数据库管理系统(DBMS)中的一个非常重要的概念。它表示一个完整的操作单元,包含一组操作,这些操作要么完全执行,要么完全不执行(原子性)。事务通常遵循ACID原理:原子性 一致性 隔离性 持久性

create database 建表 create table建库

drop table name删表

四种数据类型 int varchar(可变字符) date(日期) text

insert into tablename 插入单条记录

describe name 查询表结构

select,where,order by,group by,join查询

简单查询:SELECT * FROM tablename;

条件查询:SELECT * FROM tablename WHERE column_name = 'value';

排序查询:SELECT * FROM tablename ORDER BY column_name ASC|DESC;

限制查询结果:SELECT * FROM tablename LIMIT 10; (显示前10条记录)

  • ANDOR:多个条件结合使用,WHERE column1 = value1 AND column2 = value2;
  • IN:检查值是否在一组值内,WHERE column IN (value1, value2, value3);
  • BETWEEN:范围查询,WHERE column BETWEEN value1 AND value2;
  • LIKE:模糊查询,WHERE column LIKE 'pattern';

GROUP BYHAVING

  • GROUP BY:按列分组,SELECT column, COUNT(*) FROM tablename GROUP BY column;
  • HAVING:过滤分组结果,SELECT column, COUNT(*) FROM tablename GROUP BY column HAVING COUNT(*) > 5;
  • join: 返回左表所有行,右表匹配行SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id;

create index 创建索引(索引加速查询,但过多索引会影响插入和更新性能。)

begin Transition新建还原点,

commit Transition提交这个子begin tran 的还原点

rollback Transition还原到上个还原点

事务一般有以下几个阶段:

  1. 开始事务(START TRANSACTION 或 BEGIN):标志着一个事务的开始。
  2. 执行操作:在事务中进行各种操作,如插入、更新、删除等。
  3. 提交事务(COMMIT):如果事务中的所有操作都成功,使用 COMMIT 提交事务,所有操作会被永久保存。
  4. 回滚事务(ROLLBACK):如果事务执行过程中出现错误或异常,使用 ROLLBACK 撤销所有已执行的操作,将数据库恢复到事务开始之前的状态。

read uncommitted 允许读取未提交的数据

read committed 只允许读取已经提交数据

repeatable read保证每次读取相同数据

serializable 严格保证事务串行

mysqldump,mysqlhotcopy,备份

mysqlimport,恢复

2、进阶

主从复制:从库按照主库的构造、数据 复制出来一个同样的数据库环境,mysql默认一般为异步同步数据,还可以设置成半同步。

高可用性:MHA目前在mysql高可用方面是一个相对成熟的解决方案,是一套优秀的作为mysql高可用性环境下故障切换和主从提升的高可用软件。

3、性能优化

使用limit限制查询数量

使用批量insert

使用show status查看状况

三、Oracle

1.对比MySql

1、

Oracle:使用 表空间 来组织数据文件,表、索引等对象存储在指定的表空间中。

MySQL:没有表空间的概念,数据存储在数据库目录中,且通过存储引擎(如 InnoDB)进行管理。

2、

Oracle

  • 字符串:使用 VARCHAR2 存储可变长度的字符串。
  • 日期时间DATE 类型包含日期和时间,TIMESTAMP 支持更精确的时间。

MySQL

  • 字符串:使用 VARCHARTEXT
  • 日期时间DATETIMETIMESTAMP,后者带有时区支持。

3、

Oracle:限制查询结果使用 FETCH FIRSTROWNUM

  • 例子:SELECT * FROM table_name FETCH FIRST 10 ROWS ONLY;

MySQL:使用 LIMITOFFSET

  • 例子:SELECT * FROM table_name LIMIT 10;

4、

Oracle:不支持 AUTO_INCREMENT,使用 序列(SEQUENCE) 来生成唯一值。

  • 例子:CREATE SEQUENCE seq_name START WITH 1 INCREMENT BY 1;

MySQL:直接使用 AUTO_INCREMENT 关键字。

  • 例子:CREATE TABLE table_name (id INT AUTO_INCREMENT, PRIMARY KEY(id));