MySQL slow_log表无法修改成innodb引擎详解

 更新时间:2019年04月10日 10:46:39   作者:Jia-Xin  
这篇文章主要给大家介绍了关于MySQL slow_log表无法修改成innodb引擎的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

背景

从mysql.slow_log 获取慢查询日志很慢,该表是csv表,没有索引。

想添加索引来加速访问,而csv引擎不能添加索引(csv引擎存储是以逗号分割的文本来存储的),只能改存储引擎来添加索引了

mysql.slow_log表能改成myisam,不能改成innodb

mysql> set global slow_query_log=off;
Query OK, 0 rows affected (0.00 sec)

mysql> alter table mysql.slow_log engine=innodb;
ERROR 1579 (HY000): This storage engine cannot be used for log tables"
mysql> alter table mysql.slow_log engine=myisam;
Query OK, 33760 rows affected (0.37 sec)
Records: 33760 Duplicates: 0 Warnings: 0

mysql.general_log也不能改成innodb

mysql> alter table mysql.general_log engine=myisam;
Query OK, 242956 rows affected (2.41 sec)
Records: 242956 Duplicates: 0 Warnings: 0

mysql> alter table mysql.general_log engine=innodb;
ERROR 1579 (HY000): This storage engine cannot be used for log tables"

官方文档

官方文档说明,日志表只支持csv引擎和myisam引擎。

为什么不支持innodb引擎并未说明

基于什么来考虑不支持innodb表的了?

像朋友请教了下

估计是日志表 这种引擎会耗费大量的redo, undo 资源吧

这是没有必要的。。。这些数据不重要。。

更改日志表存储引擎

SET @old_log_state = @@global.general_log;
SET GLOBAL general_log = 'OFF';
ALTER TABLE mysql.general_log ENGINE = MyISAM;
SET GLOBAL general_log = @old_log_state;

归档日志表

USE mysql;
DROP TABLE IF EXISTS general_log2;
CREATE TABLE general_log2 LIKE general_log;
RENAME TABLE general_log TO general_log_backup, general_log2 TO general_log;

参考

Selecting General Query Log and Slow Query Log Output Destinations

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

相关文章

  • 5招带你轻松优化MySQL count(*)查询性能

    5招带你轻松优化MySQL count(*)查询性能

    最近在公司优化了几个慢查询接口的性能,总结了一些心得体会拿出来跟大家一起分享一下,文中的示例代码讲解详细,希望对大家会有所帮助
    2022-11-11
  • 分析Mysql事务和数据的一致性处理问题

    分析Mysql事务和数据的一致性处理问题

    本篇文章主要给大家介绍了Mysql事务和数据的一致性处理问题,跟着小编一起学习下吧。
    2017-12-12
  • 哪些情况会导致 MySQL 索引失效

    哪些情况会导致 MySQL 索引失效

    这篇文章主要介绍了哪些情况会导致MySQL索引失效,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-07-07
  • MySql命令实例汇总

    MySql命令实例汇总

    这篇文章主要介绍了MySql命令,结合实例分析了MySQL数据库的创建、连接及增删改查等各种常用操作的使用方法与相关注意事项,非常具有实用价值,需要的朋友可以参考下
    2015-11-11
  • 正确使用MySQL INSERT INTO语句

    正确使用MySQL INSERT INTO语句

    MySQL数据库是一种小型关系型数据库管理系统,MySQL数据库的优化是MySQL数据库操作过程中非常重要的工作,MySQL数据库的优化能够实现MySQL数据库操作的简便。
    2015-08-08
  • 简述MySQL主键和外键使用及说明

    简述MySQL主键和外键使用及说明

    MySQL通过外键约束来保证表与表之间的数据的完整性和准确性,本文主要介绍了简述MySQL主键和外键使用及说明,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Mysql在Windows系统快速安装部署方法(绿色免安装版)

    Mysql在Windows系统快速安装部署方法(绿色免安装版)

    这篇文章主要介绍了Mysql在Windows系统快速安装部署方法(绿色免安装版),需要的朋友可以参考下
    2017-06-06
  • win2003服务器下配置 MySQL 群集(Cluster)的方法

    win2003服务器下配置 MySQL 群集(Cluster)的方法

    MySQL 群集是 MySQL 适合于分布式计算环境的高可用、高冗余版本。它采用了 NDB Cluster 存储引擎,允许在 1 个群集中运行多个 MySQL 服务器。
    2010-12-12
  • MySQL中CREATE DATABASE语句创建数据库的示例

    MySQL中CREATE DATABASE语句创建数据库的示例

    在MySQL中,可以使用CREATE DATABASE语句创建数据库,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09
  • 解决hibernate+mysql写入数据库乱码

    解决hibernate+mysql写入数据库乱码

    初次没习hibernate,其中遇到问题在网上找的答案与大家共同分享!
    2009-07-07

最新评论