Mysql 索引优化 - 1
2024-10-19 16:27:15
单表 范围查询 后面的索引会失效
双表 左右连接建立索引互相使用
三表 用小结果集驱动大表结果, 先优化括号里面的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数据库服务器的参数调优
最新文章
- SSIS2012 项目部署模型
- Codeforces 55D
- JQUERY 一些技巧在实际中的应用
- VS 本机调试
- 触控发布《Cocos开发者平台白皮书》
- 0c-40-ARC下多对象内存管理
- SEO为什么越来越难?
- C#图解教程 第十三章 委托
- Android Studio 插件开发详解二:工具类
- 解决linux netcore https请求使用自签名证书忽略安全检查方法
- 如何用RSS订阅?
- git学习03 - 撤销修改&;删除文件
- java 小数转换成二进制
- 这些Linux命令,让你的工作事半功倍!
- Python cmd库的简易使用
- ASP.NET MVC5高级编程 之 视图
- mybatis+oracle实现简单的模糊查询
- 启动maven的web项目
- Rstudio常用快捷键
- mysqldump 报导常