目录
一、什么是索引选择性陷阱
1.1 InnoDB的存储结构
1.2 头匹配,尾匹配与任意匹配
1.3 索引选择性太差导致全表扫描
二、索引选择性差的场景
三、索引选择性差的解决方法
3.1 通过组合索引提高选择性
3.2 引入搜索引擎
3.3 强制使用索引
3.4 增加缓存,提高全表扫描速度
专栏链接:IT老齐架构300讲笔记专栏
一、什么是索引选择性陷阱 1.1 InnoDB的存储结构 1.2 头匹配,尾匹配与任意匹配 1.3 索引选择性太差导致全表扫描
二、索引选择性差的场景 三、索引选择性差的解决方法 3.1 通过组合索引提高选择性命中的索引值超过总量25%,就可能产生索引选择性陷阱,导致全表扫描
3.2 引入搜索引擎通过组合索引提高选择性(业务相关)
select * from 护士表 where 科室=’妇科’ and 性别=’女’
3.3 强制使用索引如Es或者Solr(更换数据源)
例如:将护士表导入ElasticSearch,Es基于分片多线程检索,解决查询慢的问题
3.4 增加缓存,提高全表扫描速度强制使用索引(有时会有奇效,以实际运行效果为准)
explain select * from question force index(answer) where answer = 'A'
增加缓存,提高全表扫描速度(钞能力)
innodb_buffer_pool_size=16G
innodb_buffer_pool_instances=2
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)