ITPub博客

首页 > 数据库 > MySQL > MySQL性能优化的21个最佳实践 和 mysql使用索引

MySQL性能优化的21个最佳实践 和 mysql使用索引

MySQL 作者:forest7707 时间:2017-05-28 19:15:45 0 删除 编辑


http://www.cnblogs.com/daxian2012/articles/2767989.html

MYSQL的事务配置项

innodb_flush_log_at_trx_commit=1

表示事务提交时立即把事务日志写入磁盘,同时数据和索引也更新。

innodb_flush_log_at_trx_commit=0

事务提交时,不立即把事务日志写入磁盘,每隔1秒写一次

innodb_flush_log_at_trx_commit=2

事务提交时,立即写入磁盘文件(这里只是写入到内核缓冲区,但不立即刷新到磁盘,而是每隔1秒刷新到盘,同时更新数据和索引


long_query_time    :  设定慢查询的阀值,超出次设定值的SQL即被记录到慢查询日志,缺省值为10s 
slow_query_log      :  指定是否开启慢查询日志 
log_slow_queries    :  指定是否开启慢查询日志(该参数要被slow_query_log取代,做兼容性保留) 
slow_query_log_file :  指定慢日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log 
min_examined_row_limit:查询检查返回少于该参数指定行的SQL不被记录到慢查询日志 

log_queries_not_using_indexes: 不使用索引的慢查询日志是否记录到索引


当然,这里有很多同学看到这里就来需求了,一般我们运行的时候,对Server进行监控的时候,难道让我一台台机器上去看文件,我想搞一个监控系统,需要监控每台的Slow 日志文件,并且解析起来很不爽。

为了解决这个问题,MySQL贴心的为我们提供了一张系统的表进行查看,这就方便我们操作了,比如我想看看最慢的前10条语句......

这里需要提示一下,这个方法只建立在MySQL 5.1之上,过程如下:

首先,我们来看一下默认的输出方式,脚本如下:

 show variables like 'log_output';

可以看到,这里默认的输出方式是FILE,文件,我们将这里改成Table。

set global log_output='TABLE';

select sleep(10);
 select * from mysql.slow_log;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21220384/viewspace-2140025/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2017-05-17

  • 博文量
    27
  • 访问量
    20433