Mysql
DDL:create、alter、drop。表结构操作
DML:insert、delete、update。数据操作
DCL:grant。用户权限操作
客户端 -> 查询缓存 -> 解析器 -> 预处理器 -> 优化器 -> 执行计划 -> 执行引擎 -> 存储引擎
|
客户端、查询缓存
bin log:
记录所有的DDL和DML语句,记录的是操作不是数据,属于逻辑日志。
作用:
1.主从复制:从服务器读取主服务器的bin log(默认关闭),然后执行一遍
2.数据恢复:
redo log:
记录了在某个数据页上做了什么修改,属于物理日志。(在存储引擎层实现)
undo log:
和修改有关的日志,redo log 和 undo log 与事务密切相关,统称为事务日志。
记录了事务发生之前的数据状态,如果修改数据发生异常,可以用undo log实现回滚,保持原子性
1.主键索引:是一种特殊的唯一索引,要求键值不能为空。
2.普通索引:也叫非唯一索引,是最普通的索引,没有任何的限制。
3.唯一索引:唯一索引要求键值不能重复,可以有一个null值。
4.全文索引:针对比较大的数据,解决 like 查询效率低的问题
1.二分查找:折半查找
2.二叉查找树:树结构,数据量大的时候深度很长。
3.平衡二叉树:AVL Tree。左旋、右旋
左右子树深度差不能超过1
4.多路平衡查找树:B Tree。分裂、合并
跟 AVL 树一样,B 树在枝节点和叶子节点存储键值、数据地址、节点引用。
5.多路平衡查找树plus:B+ Tree。
1、它的关键字的数量是跟路数相等的;
2、B+Tree 的根节点和枝节点中都不会存储数据,只有叶子节点才存储数据。
3、B+Tree 的每个叶子节点增加了一个指向相邻叶子节点的指针,它的最后一个数据会指向下一个叶子节点的第一个数据,形成了一个有序链表的结构。
1.配置优化
2.Redis缓存、集群
3.分库分表
4.SQL语句分析和优化,slow query log:慢日志开关(默认关闭)
5.EXPLAIN 执行计划
...