WEB开发,常见MySQL 查询优化
来源:互联网 发布:淘宝卖小金刚菩提子 编辑:程序博客网 时间:2024/06/02 00:46
MySql sql 常用优化点
1.查找优化点:查看sql语句的执行计划
id:select操作表的顺序,顺序从大到依次执行.
select_type :选择的类型,如: SIMPLE(简单的)
type :访问类型。ALL(全表扫描),index(索引扫描),range(范围扫描),
ref (非唯一索引扫描),eq_ref(唯一索引扫描),const(常数引用) 速度依次由慢到快。
table :查询的表
possible_keys :查询语句,可能走的索引(不一定是真实的)。
key :显示MySQL实际使用的索引,包括主键索引,或者自建索引的名字。
key_len :索引所使用的字节数
ref :连接匹配条件,若走主键索引值为const, 全表扫描为null值
rows :扫描行数,通常情况下,rows越小,效率越高, 这是优化点。
Extra:包含执行SQL时的真实情况,比如”using where”,表示使用where筛选得到的值
(1)选择区分度很高的列上见索引。
(1)主键连续,改limit查询为范围查询。
如 limit 10000,100 改成between 100000 and 1000100;
(2)防止数据类型隐式转换。将参数值改成与表中列数据类型一致。
phone 数据库保存的是char类型,而传入的是数字,应该这样转换,才会走索引
select * from tbl_user where phone=cast(13819831231 as char);;
1.查找优化点:查看sql语句的执行计划
比如 explain select * from tbl_user where id=1
id | select_type|table|type|possible_kes|key|key_len|ref|rows|Extra1|SIMPLE|tbl_user|const|PRIMARY|PRIMARY|4|const|1|null
id:select操作表的顺序,顺序从大到依次执行.
select_type :选择的类型,如: SIMPLE(简单的)
type :访问类型。ALL(全表扫描),index(索引扫描),range(范围扫描),
ref (非唯一索引扫描),eq_ref(唯一索引扫描),const(常数引用) 速度依次由慢到快。
table :查询的表
possible_keys :查询语句,可能走的索引(不一定是真实的)。
key :显示MySQL实际使用的索引,包括主键索引,或者自建索引的名字。
key_len :索引所使用的字节数
ref :连接匹配条件,若走主键索引值为const, 全表扫描为null值
rows :扫描行数,通常情况下,rows越小,效率越高, 这是优化点。
Extra:包含执行SQL时的真实情况,比如”using where”,表示使用where筛选得到的值
(1)选择区分度很高的列上见索引。
参考:(公式 q=count(distinct(column)/count(*), 0<=q<=1,q=1最合适建索引))
(2)联合索引(多列建立索引) 比如 alter table tbl_user add index idx_uname_phone(uname,phone);
(2-1)最左前缀匹配原则: MySQL会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配.如 select * from tbl_user where uanme='xiariwa' and createdate<"2017-11-15" and phone='13819831231'
由于出现了<号,后面的phone 就不会走索引。
(2-2)函数运算:在索引列上进行函数运算,索引会失效.
(1)主键连续,改limit查询为范围查询。
如 limit 10000,100 改成between 100000 and 1000100;
(2)防止数据类型隐式转换。将参数值改成与表中列数据类型一致。
phone 数据库保存的是char类型,而传入的是数字,应该这样转换,才会走索引
select * from tbl_user where phone=cast(13819831231 as char);;
阅读全文
0 0
- WEB开发,常见MySQL 查询优化
- web开发常见性能优化方式
- mysql 常见查询优化别优化错了
- Web性能优化学习MySQL查询缓存
- 高性能MySql进化论(十一):常见查询语句的优化
- 高性能MySql进化论(十一):常见查询语句的优化
- 高性能MySql进化论(十一):常见查询语句的优化
- MySQL优化---查询优化
- MySQL常见查询语句
- MySQL常见sql优化
- mysql常见优化
- mysql常见优化
- mysql常见优化
- mysql常见sql优化
- mysql常见优化
- mysql常见优化
- MySQL常见性能优化
- mysql--18200 常见优化
- SaaS“免费试用”高转化率的3个秘诀
- 什么是跨域?怎么解决跨域问题?
- 代码审计+企业级Web代码安全架构+.pdf 免费下载
- 本周六的2017中国产品经理大会、又确定了一位重量级嘉宾!
- SpringBoot专题(1) 一个的简单的SpringBoot例子
- WEB开发,常见MySQL 查询优化
- 构建微服务:Spring boot 入门篇
- 2017年android常用的框架介绍
- java多线程面试题
- 详解智能家居运用的最新技术
- AndroidStudio升级到3.0的新特性和注意事项
- Centos7.3下面mysql的max_connections不生效的问题。
- Android利用WindowManager实现悬浮窗各个机型的兼容
- SpringMVC 源码解析AbstractCachingViewResolver自定义缓存