数据库强化
2020-01-06 10:44:36 0 举报
AI智能生成
MySQL高级
作者其他创作
大纲/内容
数据库规范
数据库设计规范
子主题
索引
能用主键作为条件,
就用主键作为条件
就用主键作为条件
适合创建索引的字段
1.经常查询的列
2.主键的列
3.连接的列,外键
4.根据范围查询的列
5.排序的列
6.WHERE子句中的列
建立索引,一般根据SELECT的WHERE条件来建立,
select 的 where 条件是f1, f2,
在f1或f2建立索引是没有用的,
必须f1和f2都建立索引才有用
select 的 where 条件是f1, f2,
在f1或f2建立索引是没有用的,
必须f1和f2都建立索引才有用
不适合创建索引的列
1.很少查询与参考的列
2.数据值变化少的列
3.text,image,bit不能增加索引
4.当修改性能远远大于检索性能时
索引方法
Btree
全值匹配
order_sn = '123456789'
匹配 最左前缀的查询
匹配列前缀的查询
order_sn like '12345%'
匹配范围值查询
order_sn > '123456789' and order_sn < '223456789'
精确匹配左前列并范围匹配另一列
只访问索引的查询
Btree 使用限制
如果不是按照索引最左列开始查找,则无法使用索引
使用索引时不能跳过索引的列
NOT IN 与 <> 无法使用索引
如果查询中有某个列的范围查询,则其右边所有列不能使用索引
hash索引
精确匹配
联合索引
选择索引列的顺序
经常被使用到的列优先
选择性 高的列优先
宽度小的列
SQL优化
1.避免全表扫描,在WHERE与ORDER BY建立索引
2.避免在WHERE中对字段进行NULL值判断
3.避免WHERE中OR连接。用UNION ALL
4.用BETWEEN替代IN
0 条评论
下一页