博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql 索引优化 - 1
阅读量:5097 次
发布时间:2019-06-13

本文共 652 字,大约阅读时间需要 2 分钟。

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

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

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

 

索引失效(常见原因)

全职匹配最佳左前法则  如果是复合索引,确保最左侧索引列一定要有  若无,全表扫描索引列上不计算 不在索引列上做任何操作, 计算,函数,(自动or手动)类型转换,会导致索引失效还全表扫描 比如 left()范围之后全失效 存储引擎不能使用索引中范围条件右边的列 索引失效 比如复合A, B C3列 若条件B > 20 则 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数据库服务器的参数调优

 

转载于:https://www.cnblogs.com/eason-d/p/9220129.html

你可能感兴趣的文章
使用fiddler进程弱网测试
查看>>
jdk path
查看>>
敏捷开发笔记 - 设计
查看>>
我需要在电脑上安装C编译器
查看>>
oracle一次删除多张表
查看>>
H3C 配置CHAP验证
查看>>
H3C ICMP
查看>>
Python Numpy 介绍
查看>>
printcap - 打印机相容性数据库
查看>>
LINUX超级用户(权限)在系统管理中的作用
查看>>
iOS动画(一)coreAnimation 教程(转)
查看>>
Github 如何上传本地文件
查看>>
dos命令操作一 基本篇
查看>>
element对象
查看>>
Android SQLite (一) 数据库简介
查看>>
HashMap和HashSet的区别
查看>>
python-2:基础点滴 字符串函数之一 str
查看>>
ASP.NET MVC 5 入门教程 (1) 新建项目
查看>>
MySQL复习1
查看>>
线程、线程ID获取
查看>>