(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 * FROMproductWHERE ID > =(select id from product limit 866613, 1) limit 20或者SELECT * FROMproduct aJOIN (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 sql 1到10_(1.10)SQL优化——mysql 常见SQL优化相关推荐

  1. mysql+性能优化+命令_MySQL性能优化

    一.优化思路 数据查询慢,不代表 SQL 语句写法有问题. 首先,我们需要找到问题的源头才能"对症下药".用一张流程图展示 MySQL 优化的思路: 从图中可以清楚地看出,导致数据 ...

  2. 【第10天】MYSQL进阶-表的创建、修改与删除(SQL 小虚竹)

    回城传送–><100天精通MYSQL从入门到就业> 文章目录 零.前言 一.练习题目 二.SQL思路 SQL进阶-表的创建.修改与删除:SQL118 创建一张新表 初始化数据 解法 ...

  3. oracle sql 全是子查询查询速度太慢如何优化_如果面试官问你如何优化mysql分页查询,请把这篇文章甩给他!...

    在我们日常开发中,分页查询是必不可少的,可以说每干后端程序猿大部分时间都是CURD,所以分页的查询也接触的不少,你们都是怎么实现的呢?前不久的一段时间,我的一个同事突然找我寻求帮助,他说他写的sql查 ...

  4. sql 取表的前10条记录,任意中间几行的记录

    取表的前10条记录 with a as(select *,row_number()over(order by department)rn from _SucceedStaff ) select * f ...

  5. mysql ddl脚本_MySQL学习之路(1):SQL脚本语言

    使用MySQL数据库,首先安装MySQL数据库,本文所有SQL脚本在MySQL上测试和执行. 安装Mysql服务器: 安装Mysql workbench客户端,可以以图形化界面管理mysql: 安装p ...

  6. mysql sql优化_MySQL数据库SQL语句优化原理专题(三)

    需求 做过开发的同学,对分页肯定不会陌生,因为很多前台页面展示,为了更好的展示数据,就会用到分页,所以如何写一个高性能的分页SQL语句,是每一个开发人员需要掌握的技能. 分页SQL 这里给大家写一个分 ...

  7. mysql优化说出九条_技术分享 | MySQL 优化:为什么 SQL 走索引还那么慢?

    原标题:技术分享 | MySQL 优化:为什么 SQL 走索引还那么慢? 背景 2019-01-11 9:00-10:00 一个 MySQL 数据库把 CPU 打满了. 硬件配置:256G 内存,48 ...

  8. mysql筛选字符个数为8的_听说Mysql你很豪横?-------------分分钟带你玩转SQL高级查询语句(常用查询,正则表达式,运算符)...

    一 . 常用查询介绍 1.创建表结构并插入内容 创建一个表 里面有id 毕业院校 家庭住址 name mysql> create table gou(id int primary key,sch ...

  9. mysql 创建端口号_MySQL命令行 不同端口登录 执行SQL文件 创建用户 赋予权限 修改root密码...

    0.安装MySQL服务 1.[不同端口登录] 通过开始菜单-> 程序-> MySQL-> MySQL Command Line Client 通过输入密码Enter password ...

最新文章

  1. 用c语言运行程序的优点,C语言学习与总结---第一章:C语言概述
  2. 保存Delphi中的环境设置中的library path
  3. 深入理解 HTTPS
  4. python中if有几种使用方式_python 中if-else的多种简洁的写法
  5. 帝国cms php替换,帝国CMS内容关键字替换图片标签解决方法
  6. 数据结构-图的基础代码
  7. 《汇编语言》王爽—实验五详解
  8. SRM 587 Div II L3:ThreeColorabilityEasyy
  9. 螺栓预紧力_斯姆勒知识讲解:螺栓预紧力的计算
  10. Python web爬虫
  11. Axure9.0元件库的使用
  12. 团队作业8----第二次项目冲刺(Beta阶段) 第一天
  13. 如何用 XMind 做商业计划书?
  14. HTML:超文本标记语言
  15. 矩阵与矩阵转置的加法
  16. 过拟合的原因和解决方法
  17. 整理 刘汝佳紫书第三章习题代码 未完待续
  18. 2022届浙江工业大学计算机专硕考研上岸经验贴
  19. kettle—资源库详解
  20. 批量替换Scene中的Prefab

热门文章

  1. win8系统ghost后只有一个盘了其它分区的文件如何找回
  2. call_user_fun()函数的使用
  3. 算法(6) —— AVL树
  4. ARCGIS影像配准教程
  5. php对象当参数传递 php深复制和浅复制
  6. IOS开发:关于performSelectorXXX的延迟的使用
  7. [跟我学UML] UML类图中的泛化
  8. 机会是怎么变成陷阱的?
  9. php定时删除目录,shell定时删除指定目录下的文件
  10. star ccm+ 用户指南_star-ccm边界层处理方法