美文网首页
mysql优化手段

mysql优化手段

作者: 百里江山 | 来源:发表于2020-04-14 15:01 被阅读0次

开启记录所有的SQL

#  查看
show variables like 'general%';
# 设置开启
set GLOBAL general_log='ON';
# 设置记录日志路径 , 不同系统,路径有所不同.
set global general_log_file='D:\\logs\\mysql-select.log'; # window
set global general_log_file='/home/logs/mysql-select.log';# linux 

# 可以选择记录在表里
SET GLOBAL log_output = 'TABLE';

# 可以选择记录文件里(默认)
SET GLOBAL log_output = 'FILE';

以上方法, MYSQL重启失效.

修改my.cnf文件,永久生效.

general_log = 1
general_log_file = /var/log/mysql/general_sql.log

开启慢查询

# 查看
show variables  like '%slow_query_log%';
# 设置开启慢查询
set global slow_query_log=1;
# 设置多长算慢SQL, 单位s
set long_query_time = 1
# 设置慢SQL记录路径 
set global slow_query_log_file ='D:\\logs\\mysql_slow.log'; # window
set global slow_query_log_file ='/home/logs/mysql_slow.log';# linux 

以上方法MYSQL重启失效.
修改my.cnf文件,永久生效

slow_query_log = 1
long_query_time = 1
slow_query_log_file = /home/logs/mysql_slow.log

Explain 分析SQL

explain select * from orders

重要的几个字段

  1. select_type 查询类型
  2. table 查询哪个表
  3. type 访问类型(重要)
  4. possible_keys 可能用到的索引
  5. key 实际用到的索引
  6. ref
  7. rows 扫描行的数量
  8. Extra 执行情况的说明和描述

select_type 表示查询select类型

类型 说明
SIMPLE 简单查询,未使用到联表或子查询
PRIMARY 主查询,即外层的查询
UNION UNION中的第二个或者后面的查询语句
SUBQUERY 子查询中的第一个 子查询中的第一个

type 访问类型, 从上到下,性能由差到最好.

类型 说明
ALL 全表扫描
index 索引全扫描
range 索引范围扫描
ref 非唯一索引扫描
eq_ref 唯一索引扫描
const,system 单表最多有一个匹配行
NULL 不用扫描表或索引

[toc]

Extra 执行情况的说明和描述

类型 说明
Using Index 表示索引覆盖,不会回表查询
Using Where 表示进行了回表查询
Using Index Condition 表示进行了ICP优化
Using Flesort 表示MySQL需额外排序操作, 不能通过索引顺序达到排序效果

什么是ICP,也称下推

Index Condition Pushdown(ICP)

MYSQL5.6之前, 多个条件查询时,会回表查询
MYSQL5.6之后, 不需要再回表查询了,直接分析条件是否满足.

参考

  1. https://www.cnblogs.com/songwenjie/p/9409852.html

相关文章

  • MySQL优化手段

    MySQL优化手段总结 表的设计合理化(符合3NF) 添加适当索引(index) [五种: 普通索引、主键索引、唯...

  • mysql优化手段

    开启记录所有的SQL 以上方法, MYSQL重启失效. 修改my.cnf文件,永久生效. 开启慢查询 以上方法MY...

  • 面试题:在日常工作中怎么做MySQL优化的?

    前言 MySQL常见的优化手段分为下面几个方面: SQL优化、设计优化,硬件优化等,其中每个大的方向中又包含多个小...

  • mysql查询优化

    查询优化在优化MySQL时,通常需要对数据库进行分析。常见的分析手段有慢查询日志,EXPLAIN分析查询,通过定位...

  • 性能优化-索引

    概述 索引优化是对查询性能优化最有效的手段,索引能轻易将查询性能提高几个数量级。 索引类型 在Mysql中,索引是...

  • MySQL 性能优化常用手段

    在/etc/my.cnf配置MySQL记录慢查询日志:[mysqld] slow_query_log=1 long...

  • MySQL调优三部曲(三)PROFILE

    分析SQL执行带来的开销是优化SQL的重要手段,MySQL可以通过设置profiling参数,将SQL语句的资源开...

  • 9.索引的使用

    索引是数据库优化最常用也是最重要的手段之一, 通过索引通常可以帮助用户解决大多数的MySQL的性能优化问题 1. ...

  • MYSQL分页limit速度太慢优化方法

    MySQL 百万级分页优化(Mysql千万级快速分页)(转) MYSQL分页limit速度太慢优化方法 MYSQL...

  • MySQL相关文章索引(2)

    1.MySQL性能优化 对MySQL语句的性能分析与优化 Mysql 监控 Innodb 阻塞状况 MySQL索引...

网友评论

      本文标题:mysql优化手段

      本文链接:https://www.haomeiwen.com/subject/hmttvhtx.html