You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
### Mysql查询优化
>- 慢查询:减少不需要的数据、不取出全部列、减少相同数据的查询
> 原因:数据量大 select * (禁止)
>- 使用覆盖索引
>- 改变数据库表结构(汇总表)
>- 重写复杂查询SQL
>
> mysql记录全部超过 long query time的sql语句的日志
### Mysql中的索引: 聚族索引、辅助索引, 定义索引生产B+树
>- InnoDB引擎, B+树,哈希索引,全文索引
>- 聚集索引、聚族索引: 将表的主键构造B+树,存放在叶子节点
>- 如果没有主键, mysql创建rowid( 看不见)
>- 索引需要定义辅助索引、id索引、主键索引等等
>- 辅助索引会存放主键、但是不包含全部数据
>- 主键索引会包含全部数据
>- 联合索引: 多个列组合起来索引, 减少B+数的数量
>- 
#### 优化:减少索引数量、联合索引
>-回表:通过辅助索引找到主键、再通过主键再找到其他数据(尽量减少)
>- 查询优化器:对比:二级索引+回表,全表扫描主键
### 索引( Index) 帮助Mysql高效获取数据的数据结构
>- 哈希索引, 用HashMap实现索引。缺点: 范围查找、排序、组合索引、hash冲突
>- B+树=二叉查找(左右子树的值小于根)-平衡( 高度差不超过1) -B树: 多叉平衡查找树
>- B+:所有数据放在叶子结点,(非叶子结点保存索引,不保存数据)(链表指向相邻结点), Mysql
>- 
>- 
>- B树非叶子结点也存放数据、不用链表相连叶子结点, 查询效率低、范围小
>- B* 非叶子结点也存放指针Oracle用
>- 
### 平衡二叉树调整
>- 平衡因子:左右高度差,通过旋转:改变高度差(左旋、右旋)
>- 
>- 
### 慢查询优化
>- 重写复杂的sql查询
>- 把指向sql按时间排序
### 事务和事务隔离级别
>- 事务:整体的执行单位、事务的特性
>- 事务并发引起的问题:脏读问题(回滚)、不可重复读(修改)、幻读(增加)
>- READ UNCOMMITTED :未提交读 READ COMMITTED: 提交读 REPETABLE READ :可重复读
>- SERIALIZABLE :可串行化
>- 修改: SET [GLOBAL|SESSION] TRANSACTION ISOLATION LEVEL level;
### 事务的操作
>- 开启,提交,回滚
>- 保存点: 高级回滚, SAVEPOINT 保存点名称;ROLLBACK TO [SAVEPOINT] 保存点名称;
>- 隐式提交:(不同的SQL语言类型)可以不用commit提交
>- 开启下一个事务,上一个事务提交
### mysql中的锁
>- 锁定读: for update( X锁、独占锁) in share mode
>- 锁释放时间