mysql要点
- mysql的主从备份
- mysql隔离等级
- mysql 各种引擎的区别
- select count(*)在mysql的引擎中那个最快
- 数据库切分
- 数据库索引
名词介绍
- 脏读:指一个线程中的事务读取到了另外一个线程中未提交的数据。
- 不可重复读:指一个线程中的事务读取到了另外一个线程中提交的update的数据。
- 幻读(虚读):指一个线程中的事务读取到了另外一个线程中提交的insert的数据。
B+树
- B+树特点
-
有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。
-
所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。
-
所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素。
- B+树的优势
-
单一节点存储更多的元素,使得查询的IO次数更少。
-
所有查询都要查找到叶子节点,查询性能稳定。
-
所有叶子节点形成有序链表,便于范围查询。
参考https://mp.weixin.qq.com/s/jRZMMONW3QP43dsDKIV9VQ
mysql语句优化
- 字段取值有限且固定使用
ENUM
而不是VARCHAR
- 操作一条数据时加上 limit 1
- 避免表字段运行为null,设置默认值(例如:int类型设置默认值为0)
- 创建合适的索引(过多的索引/不合理的索引会拖慢速度)
-
>
和>=
需要根据数据量去判断 - 分页 limit
- 数据量较小时直接使用limit, 例 select * from table1 limit 10,10
- 数据量较大时使用子句先获取到offset的id,例
select * from table1 where id >=(select vid from table1 order by id limit 10000,1) limit 10
比select * from table1 limit 10000,10
查询速度快三倍左右
网友评论