MySQL高效编程学习笔记(七)--索引

各引擎支持索引类型

引擎名 索引类型
InnoDB BETREE
MyISAM BETREE
MEMORY,HEAP BETREE, HASH

其实Mysql InnoDB存储引擎 是支持hash索引的,不过我们必须启用,hash索引的创建由InnoDB存储引擎引擎自动优化创建,我们干预不了。
1.设计索引的原则
(1)最适合索引的列是出现在where子句中的列,或连接子句中指定的列,而不是要选择(select后)的列。
(2)使用唯一索引,索引列的数字变化范围越大,效果越好。
(3)使用短索引:对字符串列进行索引,应该指定一个前缀长度。
(4)利用最左前缀,利用索引最左边的列集来匹配行。
(5)不要过度索引,过度索引导致写操作低效,因为修改表时索引必须更新。
(6)对于innoDB引擎的表,记录默认按照 主键>唯一索引>内部列,按主键或内部列访问最快。
2.BETREE索引
(1)可使用操作符:<,>,>=,<=,!=,<>,BETWEEN,LIKE ‘pattern’进行查询
3.HASH索引
(1)只用于=或者<=>、IN查询
(2)不能加速order by操作
(3)不能确定两个值之间有多少行
(4)只能使用整个关键字搜索一行。
详细的MySQL索引背后的数据结构及算法原理,见我转发的这篇文章
https://blog.csdn.net/HuYingJie_1995/article/details/88683220

猜你喜欢

转载自blog.csdn.net/HuYingJie_1995/article/details/88683121