mysql优化——查看慢查询sql语句

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_36984017/article/details/89742933

前言:
设计表的时候尽量满足3NF(3范式)

  1. 1NF(无重复的列):即表的字段具有原子性,不可再分解,只要是关系型数据库则自动满足
  2. 2NF(无重复的行):即表的记录是唯一的,一张表有主键则保证了唯一性
  3. 3NF:即表中尽量不要有冗余数据,即表的其中某一信息能够被推导出来,就最好不要单独来一个字段存储

但是大多数的时候是满足不了3NF的,特别是1对多的情况下,每次都去算去推导其中一个数据,很耗性能,所有有时候会采用反3NF来设计表。

mysql设置

//可以查看整个mysql的一些状态,共有300多种状态数据
show global status  

//其中:
//com_select          列数据显示一共查询了多少次
//slow_queries        列数据是慢查询的次数


//查看慢查询设置的默认时间(正常情况下是10s)
show variables like 'long_query_time'

//修改慢查询的默认时间(这里设置成1s)----需重新关掉连接再建立连接就可以查询是设置成1s了,但重启数据库又还原成默认值了
set long_query_time=1

//将 slow_query_log 全局变量设置为“ON”状态 --开启慢查询日志记录
set global slow_query_log='ON'; 

//设置慢查询日志存放的位置
set global slow_query_log_file='/var/lib/mysql/test-10-226-slow.log';

这样就可以查看哪些sql语句的执行时间超过1s了,然后单独进行优化

可以参考:

https://jingyan.baidu.com/article/454316ab07e522f7a7c03a2c.html

猜你喜欢

转载自blog.csdn.net/qq_36984017/article/details/89742933