单表  范围查询 后面的索引会失效

双表  左右连接建立索引互相使用

三表   用小结果集驱动大表结果, 先优化括号里面的SQL, 保证JOIN被驱动的表上ON字段有索引

索引失效(常见原因)

全职匹配

最佳左前法则  如果是复合索引,确保最左侧索引列一定要有  若无,全表扫描

索引列上不计算 不在索引列上做任何操作, 计算,函数,(自动or手动)类型转换,会导致索引失效还全表扫描 比如 left()

范围之后全失效 存储引擎不能使用索引中范围条件右边的列 索引失效 比如复合A, B C3列 若条件B >  则 C列失效

尽量使用覆盖索引,减少select *

在使用!= 或者 <>的时候无法使用索引,会导致全表扫描

is null, is not null也无法使用索引

like百分加右边 like 以通配符开头 ‘%sdf’, 索引失效,全表扫描

字符串不加单引号,索引失效

少用or, 用他来连接时索引失效

索引优化

单值索引,尽量选择对query过滤好的索引

组合索引,过滤性比较好的字段放在索引前面, 选择索引列时尽量包含where更多的字段

你对SQL的优化怎么试.

1 观察跑1天,看看生产慢的SQL

2 开启慢查询日志,比如超过5秒的慢sql抓取出来

3 explain+慢SQL分析

4 show profile 查询SQL在Mysql服务器的执行细节

5 DBA进行SQL数据库服务器的参数调优

最新文章

  1. SSIS2012 项目部署模型
  2. Codeforces 55D
  3. JQUERY 一些技巧在实际中的应用
  4. VS 本机调试
  5. 触控发布《Cocos开发者平台白皮书》
  6. 0c-40-ARC下多对象内存管理
  7. SEO为什么越来越难?
  8. C#图解教程 第十三章 委托
  9. Android Studio 插件开发详解二:工具类
  10. 解决linux netcore https请求使用自签名证书忽略安全检查方法
  11. 如何用RSS订阅?
  12. git学习03 - 撤销修改&amp;删除文件
  13. java 小数转换成二进制
  14. 这些Linux命令,让你的工作事半功倍!
  15. Python cmd库的简易使用
  16. ASP.NET MVC5高级编程 之 视图
  17. mybatis+oracle实现简单的模糊查询
  18. 启动maven的web项目
  19. Rstudio常用快捷键
  20. mysqldump 报导常

热门文章

  1. torch中的多线程threads学习
  2. 本人遇到的spring事务之UnexpectedRollbackException异常解决笔记
  3. 048——VUE中使用animate.css动画库控制vue.js过渡效果
  4. Centos7 防火墙常用命令 开启 关闭防火墙
  5. java 注解总结
  6. QT Creator快捷键不能用
  7. iOS 关于时间天数星期月份的总结
  8. 查看nvidia显卡命令
  9. [UOJ388]【UNR #3】配对树
  10. macOS -- Mac系统如何编辑hosts文件