通过索引优化查询
来源:互联网 发布:宝宝喂奶记录软件 编辑:程序博客网 时间:2024/05/13 19:21
索引
1、对于创建的多列(复合)索引,只要查询条件使用了最左边的列,索引一般就会被使用。
该查询条件没有使用到最左边的列,所以没有使用到索引。
该条件中使用了复合索引的最左边的列,因此该查询会使用到索引。
2、对于使用like的查询,查询如果是”%XXX”,不会使用到索引,‘XXX%’会使用到索引。
注意:在有些情况下,还是会用到like查询,比如通过歌词搜索歌名,通过剧情搜索电影名称。借助于工具,sphinx里面的coreseek软件。
3、如果条件中有or,则要求or的索引字段都必须有索引,否则不能用到索引。
该email添加索引后,在测试,会用到索引
4、如果列类型是字符串,一定要在条件中将数据使用引号引用起来,否则不使用索引。
5、优化group by语句
默认情况下, mysql对所有的group by col1,col2进行排序。这与在查询中指定order by col1,col2类型,如果查询中包括group by 但用户想要避免排序结果的消耗,则可以使用order by null禁止排序。
6、当取出的数据量超过表中数据的20%,优化器就不会使用索引,而是全表扫描。扫描的行数太多了,优化器认为全表扫描比索引来的块。
7、查看索引的使用情况
注意:
handler_read_key:这个值越高越好,越高表示使用索引查询到的次数。
handler_read_rnd_next:这个值越高,说明查询低效。
8、对应大批量插入数据
对于MyISAM:
先禁用索引:
alter table table_name disable keys;
loading data//insert语句; 执行插入语句
执行完成插入语句后,开启索引,统一添加索引。
alter table table_name enable keys;
对于Innodb:
1,将要导入的数据按照主键排序
2,setunique_checks=0,关闭唯一性校验。
3,setautocommit=0,关闭自动提交。
- 通过索引优化查询
- 通过建立索引优化MySQL查询速度
- 通过调节索引 优化Oracle关联查询性能
- 索引,通过索引优化sql
- 索引和优化查询
- MySQL查询优化---索引
- 查询优化策略---索引
- 使用索引优化查询
- mongdb索引查询优化
- mysql查询索引优化
- 索引与查询优化
- mysql查询索引优化
- mysql 查询索引优化
- MySQL 查询 索引 优化
- sql查询优化 索引优化
- sql查询优化 索引优化
- SQL查询优化,索引优化
- sql查询优化 索引优化
- U盘在MAC系统下格式化后在windows上显示设备,无法正常使用
- 再读经典重构、重构与模式、修改代码的艺术《二》
- android 使用LinearGradient实现手机开机文字闪烁效果
- 十、Nio之Selector
- iOS App上架流程(2016详细版),真心很详细。
- 通过索引优化查询
- Java一些粗陋的经验
- 证明k-生成树问题是NP完全问题
- 修改sqlserver2008sa的密码
- NDK-CPP语言-函数对象+谓词+函数绑定
- git切换分支版本
- python selenium 下拉列表定位
- C++ 中 ZeroMemory、memset 危险需慎用
- iOS - 有关状态栏