当前位置: 首页 > 图文教程 > 数据库 > MYSQL > MySQL5.1新特性 日志的增强

MYSQL
MySQL代码如何在 Windows环境下编译
MYSQL出错代码列表
mysql 5.0存储过程学习总结
迅速帮你解决 SQL Server 日志满问题
SQL Server 2005 中能够使用 Try...Catch语句
启动SQL SERVER时自动执行存储过程
无法在SQL 2005系统数据库中执行的T-SQL语句(XML处理)
MySQL关系数据库系统IF查询处理远程拒绝服务漏洞
SQL Server 用户自定义的数据库修复
运行SQL Server的计算机之间移动数据库
jsp从数据库取得数据作为下拉菜单选项的实现
sql server2005 jdbc解决自动增长列统一处理问题纪实
使你的 SQL 语句完全优化
动态网页编程中优化数据库注意的十大原则
SQL Server 2000数据库中如何重建索引
mysql全文搜索索引的字段提高搜索效率
轻松八句话 教会你完全搞定MySQL数据库
MySQL数据库中数据库移植中的乱码问题
分析数据库备份过程中九种可能出现的情况
对付ARP欺骗攻击16a.us病毒的解决方案

MYSQL 中的 MySQL5.1新特性 日志的增强


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 95 ::
收藏到网摘: n/a

对于MySQL,很多印象其实都是来自比较老的4.x版本,实际上MySQL在后续的5.0,5.1和6.0版本中还是做出了很多的改进,特别是原来一些动不动要重启的操作,慢慢的都可以在线做了,如果要做企业级数据库,在线操作的支持是必不可少的。由于我们在产品库中大量开始使用5.1,所以打算写一个系列短文,介绍一些个人觉得比较实用的新特性。因为MySQL这样的开源软件,版本分支比较多,所以每篇文章涉及的一些小版本可能不太一样。

MySQL有很多种日志,包括error log,general query log,binary log,slow query log等。在以前的版本,这些日志的开启或者关闭,都是需要重启服务器的,而且都是记录到日志文件。从MySQL5.1.6版开始,general query log和slow query log开始支持写到文件或者数据库表两种方式,并且日志的开启,输出方式的修改,都可以在Global级别动态修改。

如果说日志是写到文件还是表,对于DBA来说不是那么在乎的话,那么可以动态的开启关闭日志真的可以说是DBA们梦寐以求的。尤其是slow log query,以前一直在头疼,开启吧,可能影响性能,不开吧,对于一些性能差的SQL又没有其他好用的捕获方式。因为开还是不开,涉及到重启服务的问题。

下面演示一下通过设置几个Global级别参数来开启关闭general query log和slow log query的过程:

设置日志输出方式为文件

以下为引用的内容:

root@NinGoo>set global log_output=file;
Query OK, 0 rows affected (0.00 sec)

设置general log和slow query log的日志文件路径

root@NinGoo>set global general_log_file='/tmp/general.log';
Query OK, 0 rows affected (0.00 sec)
root@NinGoo>set global slow_query_log_file='/tmp/slow.log';
Query OK, 0 rows affected (0.00 sec)

开启general log和slow query log,相应的,关闭只要设置参数为off

root@NinGoo>set global general_log=on;
Query OK, 0 rows affected (0.04 sec)
root@NinGoo>set global slow_query_log=on;
Query OK, 0 rows affected (0.02 sec)

如果设置log_output=table的话,则日志结果会记录到名为gengera_log和slow_log的两张表中,这两张表的默认引擎都是CSV,其实就是将日志保存为CSV文件格式了。当然,也可以将这两张表改为MyISAM引擎,这不是问题。