当前位置: 首页 > news >正文

mysql数据库的sql优化以及explain周期字段详解案例【爽文】

目录

一  慢sql优化

1.1 策略

1.1.1 对于in语句的优化

1.1.2 索引字段使用函数或计算,索引功能失效

1.1.3 为高频建立索引

1.1.4 批量操作:大幅减少IO次数

1.1.5 谨慎设置null值

1.2 案例

1.3  慢sql的开启

1.4  数据库:定期检查

二   explain执行周期分析

2.1 sql执行效率分析

2.2 执行周期字段分析

2.3 字段分析

2.3.1 Extra为NULL

2.3.2 Extra为using where

2.3.3 Extra为MRR

2.3.4 extra:using join buffer

2.3.5 extra:using temporay

2.3.6 extra:using filesort

2.3.7 extra:range checked for each record

2.4 案例讲解

2.5 设置索引后数据量大失效


一  慢sql优化

1.1 策略

1.1.1 对于in语句的优化

MySQL 的优化器在处理IN时,会先把子查询结果放到一个临时表,然后在外层表里逐行对比。这个过程相当于你拿着5万人的名单挨个查。优化方法

1.使用exits  代替in;2.使用left join+is null代替 not in

https://mp.weixin.qq.com/s/8MBt_MxywSB3v3caARIeHg

1.1.2 索引字段使用函数或计算,索引功能失效

 对索引字段使用函数会使索引失效,变成全表扫描

SELECT * FROM orders WHERE DATE_FORMAT(create_time, '%Y-%m-%d') = '2024-01-01';

改为:使用范围查询

SELECT * FROM orders WHERE create_time >= '2024-01-01' AND create_time < '2024-01-02';

SELECT * FROM products WHERE price + 100 > 500;改为:

SELECT * FROM products WHERE price > 400;

1.1.3 为高频建立索引

针对不同场景,设置索引

1.1.4 批量操作:大幅减少IO次数

性能提升:插入1000条数据,批量操作比单条插入快50倍!

1.1.5 谨慎设置null值

设置成默认值,不用null

1.2 案例

优化结果: 2.3s → 0.02s

SELECT * FROM orders 
WHERE user_id = 123 
AND status IN ('paid', 'shipped') 
AND create_time BETWEEN '2024-01-01' AND '2024-06-30'
ORDER BY create_time DESC;

优化方案:创建复合索引

CREATE INDEX idx_orders_user_status_time ON orders(user_id, status, create_time);

1.3  慢sql的开启

1.慢sql的配置

2.慢sql的查看

http://www.dtcms.com/a/562002.html

相关文章:

  • wordpress 站点语言优秀网站h5案例分享
  • 建网站要多长时间功能最多的wordpress主题
  • 计算机图形学·5 OpenGL编程2 完整程序
  • 透明化战场:俄罗斯如何适应数字战争时代
  • 网站程序语言那个好网站建设合同封面
  • a站是指哪个网站深圳网站建设公司推荐乐云seo
  • C语言内功强化之const修饰指针
  • spiderdemo第八题
  • 青州网站搭建重庆安全建设工程信息网
  • 会议网站建设方案模板布吉网站的建设
  • MIT-大整数相乘和大矩阵相乘
  • 网站建设分析书引言恩施哪里有做网站的
  • php手机网站开发长春电商网站建设公司排名
  • 微信网站怎么做的淮北哪有做网站的
  • 基于 Qemu 的内核模块开发初体验
  • 网站建设是前端么一级a做爰片免费网站孕交视频
  • 如何下载纯净版操作系统
  • 计网5.3.2 TCP报文段
  • pyqt5 部件QTableWidget对某些指定单元格输入数字限制
  • 网站开发主管岗位职责说明书襄阳专业做网站
  • php做的网站收录网站建设服务网站
  • dc系列靶机——dc1
  • Java SE 学习哈希表后对String的讨论
  • 烟台网站制作建设wordpress首页出现恶意链接
  • Linux C/C++ 学习日记(46):io_uring(二):reactor 与proactor的性能测试对比
  • 如何在 Linux 中创建自签名 SSL 证书 ?
  • 安阳做网站公司亚马逊关联乱码店铺怎么处理
  • 网站设计公司发展网站美工培训课程
  • 响应式网站是个坑优秀网页设计网址
  • 如何做聊天网站变更icp备案网站信息查询