• 微信:
  • hai764003
  • QQ:
  • 511211014
  • E-mail:
  • jaquery@163.com

案例总数51

访问总数312436

收藏总数310967

MySQL数据库优化返回列表

上传时间:2015-02-02 内容关键字:MySQL数据库优化

第一章:数据库优化简介

一、目的:

1避免出现页面访问错误

由于数据库连接timeout产生页面5xx错误

由于慢查询造成页面无法加载

由于组社造成数据库无法提交

2、增加数据库的稳定性

很多数据库都是由于低效的查询引起的

3、优化用户的体验

流畅页面的访问速度

良好的网址功能体验


二、优化方向:

1.根据需求,写出结构最优的SQL

2.根据SQL在表中建立有效、适量的索引

3.根据MySQL范式设计合理的表结构

4.系统配置的优化

5.硬件CPUIO,内存等等

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

|

+-----------------------------------------+----------------------------------------------------------+


 

小海哥推荐你看: 博客园  php教程分享网站  phpmywind  脚本之家