网站地图    收藏   

主页 > 后端 > mysql数据库 >

mysql优化 - mysql数据库栏目 - 自学php

来源:自学PHP网    时间:2015-04-16 10:50 作者: 阅读:

[导读] mysql 优化(linux环境下)方法1:添加sql日志,定位具体查询慢的语句1,首先是在mysql配置文件中添加超时控制,在mysqld下面添加2s超时:vi etc my cnf...

mysql 优化(linux环境下)

方法1:添加sql日志,定位具体查询慢的语句

1,首先是在mysql配置文件中添加超时控制,在mysqld下面添加2s超时:

vi /etc/my.cnf

\

2,重启mysql,设置日志显示为on,查看slow_query_log可以看到显示为on了。

\

3,接着执行一条时间查过2s的sql,然后查看日志文件,可以看到如下的记录,接下来我们可以通过日志来进行优化了。

\

方法2:建立分区表。

在实际的项目开始的时候,一般不会特意去建立分区表,当项目运行一段时间后,具体定位到数据量大的表时可以考虑分区:RANGE,LIST,HASH,KEY。在实际情况当中一般是按照时间的range进行分区,下面是实际情况当中给表添加按照月的分区的sql。

alter tableWD_EnergyMeasure_His PARTITION by range(TO_DAYS(datRecTime))

(

PARTITIONp20131001 VALUES LESS THAN(TO_DAYS('2013-10-01 00:00:00')),

PARTITIONp20131101 VALUES LESS THAN(TO_DAYS('2013-11-01 00:00:00')),

PARTITIONp20131201 VALUES LESS THAN(TO_DAYS('2013-12-01 00:00:00')),

PARTITIONp20140101 VALUES LESS THAN(TO_DAYS('2014-1-01 00:00:00')),

PARTITIONp20140201 VALUES LESS THAN(TO_DAYS('2014-2-01 00:00:00')),

PARTITIONp20140301 VALUES LESS THAN(TO_DAYS('2014-3-01 00:00:00')),

PARTITIONp20140401 VALUES LESS THAN(TO_DAYS('2014-4-01 00:00:00')),

PARTITIONp20140501 VALUES LESS THAN(TO_DAYS('2014-5-01 00:00:00')),

PARTITION p20140601VALUES LESS THAN(TO_DAYS('2014-6-01 00:00:00')),

PARTITIONp20140701 VALUES LESS THAN(TO_DAYS('2014-7-01 00:00:00')),

PARTITIONp20140801 VALUES LESS THAN(TO_DAYS('2014-8-01 00:00:00')),

PARTITIONp20140901 VALUES LESS THAN(TO_DAYS('2014-9-01 00:00:00')),

PARTITIONp20141001 VALUES LESS THAN(TO_DAYS('2014-10-01 00:00:00')),

PARTITIONp20141101 VALUES LESS THAN(TO_DAYS('2014-11-01 00:00:00')),

PARTITIONp20141201 VALUES LESS THAN(TO_DAYS('2014-12-01 00:00:00'))

);

方法3:建立索引。

建立索引一般是老生常谈的技术,主键一般是索引,我们也可以在经常使用的字段上建立联合索引。

方法4:建立主从分区数据库

主数据库用于数据的插入删除修改等操作,从数据库主要用于数据的查询操作,这样可以避免在对数据进行大量修改的时候遇到比较耗时的查询导致卡死的问题。主从数据库的建立以及数据库备份的方法其他几篇文章当中都也涉及。

方法5:调整数据库参数配置

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论