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

各引擎支持索引类型

引擎名索引类型
InnoDBBETREE
MyISAMBETREE
MEMORY,HEAPBETREE, 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/88728257
详细的MySQL索引背后的数据结构及算法原理,见我转发的这篇文章
https://blog.csdn.net/HuYingJie_1995/article/details/88683220

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值