MySQL数据库优化返回列表
上传时间:2015-02-02 内容关键字:MySQL数据库优化
第一章:数据库优化简介
一、目的:
1、避免出现页面访问错误
由于数据库连接timeout产生页面5xx错误
由于慢查询造成页面无法加载
由于组社造成数据库无法提交
2、增加数据库的稳定性
很多数据库都是由于低效的查询引起的
3、优化用户的体验
流畅页面的访问速度
良好的网址功能体验
二、优化方向:
1.根据需求,写出结构最优的SQL
2.根据SQL在表中建立有效、适量的索引
3.根据MySQL范式设计合理的表结构
4.系统配置的优化
5.硬件CPU、IO,内存等等
6.硬件的成本最高但是效果最差,SQL及索引成本最低效果最好
第二章:SQL语句优化
一、问题:如何发现有问题的SQL?
答案:使用MyQSL慢查询日志对有效率问题的SQL进行监控
查看慢查日志是否开启:
show variables like ‘slow_query_log’
慢查询日志存放的文件位置
set global slow_query_log_file=’C:\ProgramData\MySQL\MySQL Server 5.5\Data\DADI-slow.log’
指定了没有添加索引的SQL记录到慢查询日志中:
set gloabl log_queryies_not_using_indexes=on;
执行SQL超过多少秒后的SQL记录到日志中,单位为秒。一般建议0.01
set gloabl log_query_time=1
实例如下:
mysql> show variables like 'slow_query_log';
+----------------+-------+
| Variable_name | Value |
+----------------+-------+
| slow_query_log | OFF | OFF并没有开启慢查询
+----------------+-------+
查看慢查询的默认配置:
mysql> show variables like '%log%';
+-----------------------------------------+----------------------------------------------------------+
| Variable_name | Value
|
+-----------------------------------------+----------------------------------------------------------+
| back_log | 50
|
......
| general_log_file | | C:\ProgramData\MySQL\MySQL Server 5.5\Data\DADI.log |
| log_queries_not_using_indexes | OFF 未使用索引的查询是否写入慢查询日志中 OFF没有
| slow_query_log | OFF
|
| slow_query_log_file | C:\ProgramData\MySQL\MySQL Server 5.5\Data\DADI-slow.log |
|
| sync_relay_log_info | 0
|
+-----------------------------------------+----------------------------------------------------------+