(1.10)SQL优化——mysql 常见SQL优化
(1.10)常用SQL优化
insert优化、order by 优化
1、insert 优化
2、order by 优化
【2.1】mysql排序方式:
(1)索引扫描排序:通过有序索引扫描直接返回有序数据
(2)filesort排序:所有不是索引扫描返回结果的数据均为filesort排序
filesort优化:
3、优化group by
4、子查询优化
在!= 操作的子查询中,可以用left join + is null 来优化
5、or优化
or 在同字段下可以改成 in
在不同字段下可以使用Union all
6、limit优化
【6.1】子查询优化/join(id为索引字段)
这种方式先定位偏移位置的 id,然后往后查询,这种方式适用于 id 递增的情况。
SELECT * FROM product WHERE ID > =(select id from product limit 866613, 1) limit 20 或者 SELECT * FROM product a JOIN (select id from product limit 866613, 20) b ON a.ID = b.id
【6.2】ID限定优化
使用 id 限定优化
这种方式假设数据表的id是连续递增的,则我们根据查询的页数和查询的记录数可以算出查询的id的范围,
可以使用 id between and 来查询:
select * from orders_history where type=2 and id between 1000000 and 1000100 limit 100; 也可以 select * from orders_history where id >= 1000001 order by id asc limit 100;
优化工具之数据库层面
检查问题常用的 12 个工具:
MySQL
mysqladmin:MySQL 客户端,可进行管理操作
mysqlshow:功能强大的查看 shell 命令
SHOW [SESSION | GLOBAL] variables:查看数据库参数信息
SHOW [SESSION | GLOBAL] STATUS:查看数据库的状态信息
information_schema:获取元数据的方法
SHOW ENGINE INNODB STATUS:Innodb 引擎的所有状态
SHOW PROCESSLIST:查看当前所有连接的 session 状态
explain:获取查询语句的执行计划
show index:查看表的索引信息
slow-log:记录慢查询语句
mysqldumpslow:分析 slowlog 文件的工具
不常用但好用的 7 个工具:
Zabbix:监控主机、系统、数据库(部署 Zabbix 监控平台)
pt-query-digest:分析慢日志
MySQL slap:分析慢日志
sysbench:压力测试工具
MySQL profiling:统计数据库整体状态工具
Performance Schema:MySQL 性能状态统计的数据
workbench:管理、备份、监控、分析、优化工具(比较费资源)——引用自作者 惨绿少年
相关文章
- 【mysql+pandas】用MySQL命令处理在python中处理DataFrame数据 pandasql库
- Mysql-SQL优化-统计某种类型的个数
- 【MySQL高级】MySql中常用工具及Mysql 日志
- explain 关键字模拟 MySQL 优化器执行 SQL 语句
- MySQL索引详解(优缺点,何时需要/不需要创建索引,索引及sql语句的优化)
- MySQL架构优化实战系列4:SQL优化步骤与常用管理命令
- 《MySQL DBA修炼之道》——1.4 MySQL权限
- [转]mysql大表更新sql的优化策略
- MySQL 查询库中所有表记录 & sql_mode=only_full_group_by
- 使用Docker部署MySQL
- python通过pymysql连接mysql数据库
- Mysql 中有关日期的函数(sql)
- Mac OS 下安装mysql环境
- 【MySQL】解决导入sql脚本报错:Got a packet bigger than ‘max_allowed_packet‘ bytes
- mysql如何处理亿级数据,第一个阶段——优化SQL语句
- ubuntu16.04系统彻底卸载mysql,并源码免编译重装MySQL的步骤
- mysql绿色版安装,多实例安装
- python操作mysql数据库系列-操作MySql数据库(五)
- python操作mysql数据库系列-操作MySql数据库(一)
- 提高mysql千万级大数据SQL查询优化几条经验
- MySQL-数据库多表关联查询太慢,如何进行SQL语句优化
- MySQL数据库:SQL优化与索引优化
- mysql数据库SQL优化
- sql server代理服务无法启动(SQL Agent):OpenSQLServerInstanceRegKey:GetRegKeyAccessMask failed (reason: 2).
- 【3.3】mysql链接服务器,Federated存储引擎实现远程表,相当于sql server的连接服务器
- (1.12)SQL优化——mysql表名、库名大小写敏感
- (1.9)SQL优化——mysql导入导出优化
- (2.8)Mysql之SQL基础——索引的分类与使用
- Mysql中出现please use mysql_upgrade to fix this errot解决的办法
- Linux平台卸载MySQL总结
- sql-常见的SQL优化
- MySQL基本SQL语句3(DQL)