天天看点

sql语句优化

SQL语句优化:

通过慢查询日志发现有效率问题的sql.

可以通过开启慢查询日志的方式进行定位有问题的sql.

1. 查看mysql是否开启慢查询日志

show variables like 'slow_query_log';

2.设置没有索引的记录到慢查询日志

set global log_queries_not_using_indexes=on;

3.查看超过多长时间的sql进行记录到慢查询日志

show variables like 'long_query_time';

4.开启慢查询日志

set global slow_query_log=on;

5.设置超时时间

set global long_query_time=5;超过5秒的语句才记录日志

set global long_query_time=5;

6.查看慢查询日志的位置

show variables like ='slow%';

查看: show variables

设置: set global

慢查询日志内容分析:

主要有五部分:

- 慢查询的时间

- 慢查询的来源主机和用户

- 查询的执行时间、锁定时间、发送的行数、扫描的行数

- 时间戳形式记录的命令

- 该命令的执行时间戳

系统运行一段时间后,慢查询日志可能比较多,可以通过其他一些工具来分析。

对sql语句优化:

- 能分开写的语句就分开写,不要一次性就解决,这样对效率来说是很大的开销的。

- 避免使用不兼容的数据类型,如float和int,char和varchar.

- 尽量避免在where字句中对字段进行函数或表达式操作。

- 避免使用is not null、in等一些无法让系统使用索引操作的词。

- 合理使用exists,not exists字句。