IT老齐架构300讲笔记(036) 阿里开发规范解读,小心MySQL索引选择性陷阱
Posted Peter Pan 1231
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IT老齐架构300讲笔记(036) 阿里开发规范解读,小心MySQL索引选择性陷阱相关的知识,希望对你有一定的参考价值。
目录
一、什么是索引选择性陷阱
1.1 InnoDB的存储结构
1.2 头匹配,尾匹配与任意匹配
1.3 索引选择性太差导致全表扫描
命中的索引值超过总量25%,就可能产生索引选择性陷阱,导致全表扫描
二、索引选择性差的场景
三、索引选择性差的解决方法
3.1 通过组合索引提高选择性
通过组合索引提高选择性(业务相关)
select * from 护士表 where 科室=’妇科’ and 性别=’女’
3.2 引入搜索引擎
如Es或者Solr(更换数据源)
例如:将护士表导入ElasticSearch,Es基于分片多线程检索,解决查询慢的问题
3.3 强制使用索引
强制使用索引(有时会有奇效,以实际运行效果为准)
explain select * from question force index(answer) where answer = 'A'
3.4 增加缓存,提高全表扫描速度
增加缓存,提高全表扫描速度(钞能力)
innodb_buffer_pool_size=16G
innodb_buffer_pool_instances=2
以上是关于IT老齐架构300讲笔记(036) 阿里开发规范解读,小心MySQL索引选择性陷阱的主要内容,如果未能解决你的问题,请参考以下文章