MySQL运行机制缓存
MySQL执行计划并发
MySQL如何使用索引函数
1.最左前缀匹配原则,很是重要的原则 2.选择区分度高的列做为索引,即一个字段值的分布要多,像状态值这种只有几个值的就不要建了 3.索引列不能参与计算 4.尽可能的扩展索引,不要新建索引
一、匹配全值 对索引中全部列都指定具体值,即对索引中的全部列都有等值匹配的条件 2.匹配值的范围查询 对索引的值可以进行范围查找 3.匹配最左前缀 仅仅使用索引中的最左边列进行查询 4.仅对索引进行查询
1.以%开头的like查询 2.数据类型出现隐式转化,不会使用索引 3.组合索引,不知足最左原则,不使用聚合索引 4.用or分割条件,若or先后只要有一个列没有索引,就都不会用索引 使用 union all代替提升效率 5.使用!= 或 <> 操做符时 6.索引部分等值匹配,部分范围匹配
SQL使用的规范
1.禁止使用SELECT *,只获取必要的字段,须要显示说明列属性优化
2.禁止使用INSERT INTO t_xxx VALUES(xxx),必须显示指定插入的列属性code
3.禁止使用属性隐式转换排序
4.禁止在WHERE条件的属性上使用函数或者表达式索引
5.禁止负向查询,以及%开头的模糊查询
负向查询条件:NOT、!=、<>、!<、!>、NOT IN、NOT LIKE等,会致使全表扫描it
6.禁止大表使用JOIN查询,禁止大表使用子查询io
7.禁止使用OR条件,必须改成IN查询,或者 union、union alltable
8.应用程序必须捕获SQL异常,并有相应处理