(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:管理、备份、监控、分析、优化工具(比较费资源)——引用自作者 惨绿少年
(1.10)SQL优化——mysql 常见SQL优化的更多相关文章
- MySQL · 性能优化 · MySQL常见SQL错误用法(转自-阿里云云栖社区)
作者:阿里云云栖社区链接:https://zhuanlan.zhihu.com/p/26043916来源:知乎著作权归作者所有,转载请联系作者获得授权. 前言 MySQL在2016年仍然保持强劲的数据 ...
- MySQL · 性能优化 · MySQL常见SQL错误用法
1. LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方.比如对于下面简单的语句,一般DBA想到的办法是在type, name, create_time字段上加组合索引.这样 ...
- MySQL - 性能优化 & MySQL常见SQL错误用法(转载)
1. LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方.比如: , ; 一般DBA想到的办法是在type, name, create_time字段上加组合索引.这样条件排序 ...
- (1.9)SQL优化——mysql导入导出优化
(1.9)SQL优化——mysql导入导出优化 1.大批量插入数据 [1.1]MyISAM: (1)如果存在表且有数据,插入前先关闭所有非唯一索引. (2)如果表是空的,默认就是先导入数据再创建索引, ...
- sql点滴41—mysql常见sql语法
原文:sql点滴41-mysql常见sql语法 ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 修改表名:alter table t_book rename ...
- mysql常见的优化需要注意的点
1.explain分析explian引用索引基数show indexes from table_name;主键索引具有最好的基数 测试时 不走缓存SELECT SQL_NO_CACHE id from ...
- 【MySQL性能优化】MySQL常见SQL错误用法
https://yq.aliyun.com/articles/72501?utm_content=m_14899
- MYSQL常见可优化场景
1.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null 可以在num上设置 ...
- MySQL常见SQL语句用法
标签(linux): mysql 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 表字段类型 TINYINT 微小整数类型,可存储的容量为1字节 INT 整数类型 ...
随机推荐
- RDP 数据库简介
在扩增子数据分析中,有时会发现多个OTU 注释到了同一个species , 为什么会出现这种情况呢? 首先既然在OTU水平能分开,说明序列的相似度小于97%, 同一个物种的同一个基因的片段相似度会 ...
- Provided id of the wrong type for class pojo.Books. Expected: class java.lang.Integer, got class java.lang.Long
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment). log4j:WARN Please ...
- 8 -- 深入使用Spring -- 5...2 使用@Cacheable执行缓存
8.5.2 使用@Cacheable执行缓存 @Cacheable可用于修饰类或修饰方法,当使用@Cacheable修饰类时,用于告诉Spring在类级别上进行缓存 ------ 程序调用该类的实例的 ...
- Android手机用KSWEB搭建Web服务器成功安装WordPress
之前部落分享的几个免费Web服务器软件都是用来安装在本地电脑上,搭建Apache.PhpMyAdmin.MySQL等网站运行环境,然后我们就可以在电脑上测试运行Wordpress.Discuz! 论坛 ...
- python 闭包用法
def make_addr(addend): def addr(augend): return augend + addend return addr p = make_addr(23) q = ma ...
- 适用于CentOS6.4的Win7双系统安装方式
(文章在2013-11-16 15:56:31修改,此次修改幅度较大,之前的安装方式有问题,已经不推荐使用.笔者在此对各位读者表示深深的歉意!) 在之前的文章中我们实现了Win7+CentOS6.3双 ...
- ORM正向和反向查询
表结构 from django.db import models # Create your models here.class Publisher(models.Model): id = model ...
- jquery <img> 图片懒加载 和 标签如果没有加载出图片或没有图片,就显示默认的图片
参考链接:http://www.jq22.com/jquery-info390 或压缩包下载地址:链接:http://pan.baidu.com/s/1hsj8ZWw 密码:4a7s 下面是没有 ...
- ABP之事件总线(4)
在上一篇的随笔中,我们已经初步完成了EventBus,但是EventBus中还有诸多的问题存在,那么到底有什么问题呢,接下来我们需要看一看ABP中的源码是如何定义EventBus的. 1.第一个点 在 ...
- 大疆OSMO口袋云台相机惊艳上市!友商该如何是好。。。
2018.11.29 晚上更新: 下午看了大疆新出的口袋云台摄像机,感觉棒极了,于是我立刻去了京东下单预订了.目前是可以免息分期6个月就可以搞定了.‘ 大家敬请期待我的评测视频吧. ======== ...