前言:背八股嗷呜
一、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
二、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条记录)
AND
、OR
:多个条件结合使用,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 BY 和 HAVING:
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还原到上个还原点
事务一般有以下几个阶段:
- 开始事务(START TRANSACTION 或 BEGIN):标志着一个事务的开始。
- 执行操作:在事务中进行各种操作,如插入、更新、删除等。
- 提交事务(COMMIT):如果事务中的所有操作都成功,使用
COMMIT
提交事务,所有操作会被永久保存。- 回滚事务(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:
- 字符串:使用
VARCHAR
和TEXT
。 - 日期时间:
DATETIME
和TIMESTAMP
,后者带有时区支持。
3、
Oracle:限制查询结果使用 FETCH FIRST
或 ROWNUM
。
- 例子:
SELECT * FROM table_name FETCH FIRST 10 ROWS ONLY;
MySQL:使用 LIMIT
和 OFFSET
。
- 例子:
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));