加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (https://www.zhandada.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 搜索优化 > 正文

MySQL中slow_log表无法修改成innodb引擎怎样办

发布时间:2022-02-11 14:33:04 所属栏目:搜索优化 来源:互联网
导读:小编给大家分享一下MySQL中slow_log表无法修改成innodb引擎怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 背景 从mysql.slow_log 获取慢查询日志很慢,该表是csv表
        小编给大家分享一下MySQL中slow_log表无法修改成innodb引擎怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
 
背景
 
       从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;
以上是“MySQL中slow_log表无法修改成innodb引擎怎么办”这篇文章的所有内容,感谢各位的阅读!

(编辑:站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读