• ADADADADAD

    MySQL中slow_log表无法修改成innodb引擎怎么办[ mysql数据库 ]

    mysql数据库 时间:2024-11-28 13:26:19

    作者:文/会员上传

    简介:

    背景从mysql.slow_log 获取慢查询日志很慢,该表是csv表,没有索引。想添加索引来加速访问,而csv引擎不能添加索引(csv引擎存储是以逗号分割的文本来存储的),只能改存储引擎来添加索

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    背景

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

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

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

    mysql>setglobalslow_query_log=off;QueryOK,0rowsaffected(0.00sec)mysql>altertablemysql.slow_logengine=innodb;ERROR1579(HY000):Thisstorageenginecannotbeusedforlogtables"mysql>altertablemysql.slow_logengine=myisam;QueryOK,33760rowsaffected(0.37sec)Records:33760Duplicates:0Warnings:0

    mysql.general_log也不能改成innodb

    mysql>altertablemysql.general_logengine=myisam;QueryOK,242956rowsaffected(2.41sec)Records:242956Duplicates:0Warnings:0mysql>altertablemysql.general_logengine=innodb;ERROR1579(HY000):Thisstorageenginecannotbeusedforlogtables"

    官方文档

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

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

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

    像朋友请教了下

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

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

    更改日志表存储引擎

    SET@old_log_state=@@global.general_log;SETGLOBALgeneral_log='OFF';ALTERTABLEmysql.general_logENGINE=MyISAM;SETGLOBALgeneral_log=@old_log_state;

    归档日志表

    USEmysql;DROPTABLEIFEXISTSgeneral_log2;CREATETABLEgeneral_log2LIKEgeneral_log;RENAMETABLEgeneral_logTOgeneral_log_backup,general_log2TOgeneral_log;
    MySQL中slow_log表无法修改成innodb引擎怎么办.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysqlslowlog表innodb