在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

怎么解决MySQL中的ERROR 1799报错问题

114次阅读
没有评论

共计 2233 个字符,预计需要花费 6 分钟才能阅读完成。

这篇文章主要介绍“怎么解决 MySQL 中的 ERROR 1799 报错问题”,在日常操作中,相信很多人在怎么解决 MySQL 中的 ERROR 1799 报错问题问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么解决 MySQL 中的 ERROR 1799 报错问题”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!

【问题描述】:
版本:MySQL 5.6.36(以上的版本都可能出现)
行为:对某些访问频繁的大表做 Online DDL
现象:
ERROR 1799 (HY000): Creating index GEN_CLUST_INDEX required more than innodb_online_alter_log_max_size bytes of modification log. Please try again.

比如:

mysql ALTER TABLE a ENGINE=innodb;

ERROR 1799 (HY000): Creating index GEN_CLUST_INDEX required more than innodb_online_alter_log_max_size bytes of modification log. Please try again.

mysql ALTER TABLE a DROP idx_name;

ERROR 1799 (HY000): Creating index idx required more than innodb_online_alter_log_max_size bytes of modification log. Please try again.

只要是 DDL 相关的,就可能遇到这样的问题,比如在 optimize table 时:

mysql OPTIMIZE TABLE a;

+——–+———-+———-+——————————————————————-+

| Table  | Op            | Msg_type | Msg_text                                                               |

+——–+———-+———-+——————————————————————-+

| test.a | optimize | note      | Table does not support optimize, doing recreate + analyze instead |

| test.a | optimize | error    | Creating index FTS_DOC_ID_INDEX required more than innodb_online_alter_log_max_size bytes of modification log. Please try again. |

| test.a | optimize | status   | OK                                                                       |

+——–+———-+———-+——————————————————————-+

2 rows in set (18.13 sec)

虽然 optimize 对 innodb 表没什么用,但是仍然会抛出该错误

那么查看一下手册,可以得知:
innodb_online_alter_log_max_size 控制在用于在 Online DDL 操作时的一个临时的日志文件的上限值大小。
该临时的日志文件存储了在 DDL 时间内,dml 操作的记录。这个临时的日志文件依照 innodb_sort_buffer_size 的值做扩展。
如果该日志超过了 innodb_online_alter_log_max_size 的最大上限,DDL 操作则会抛出失败,并且回滚所有未提交的 DML 操作。
反过来说,该值如果设置更高,则可以允许在做 Online DDL 时,有更多的 DML 操作发生。
但因此带来的问题就是,在 DDL 做完之后,需要更多时间来锁表和应用这些日志。

另外对于某些 DDL 操作,比如
ADD INDEX/COLUMN,则可以通过调整 innodb_sort_buffer_size 的大小来加快操作速度。
但是实际上分配的内存为 3 倍的 innodb_sort_buffer_size 值。

innodb_online_alter_log_max_size 和 innodb_sort_buffer_size 均为 5.6 Online DDL 的新参数。

【解决方案】:

知道这个参数控制的是什么东西,就好解决了。
临时调大该值,此处改成了 256MB:

mysql SET GLOBAL innodb_online_alter_log_max_size=256*1024*1024;

Query OK, 0 rows affected (0.03 sec)

该值默认为 128MB,还是建议在做完 DDL 之后再将其改为默认值,也就是 134217728。

到此,关于“怎么解决 MySQL 中的 ERROR 1799 报错问题”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-19发表,共计2233字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 久久久一本精品99久久精品88 | 猫咪av成人永久网站在线观看 | 中文字幕亚洲综合久久综合 | 一个人免费观看的www在线 | 久久久精品一区 | 久久综合精品国产一区二区三区 | 国产日韩欧美久久久 | 日韩一区二三区无 | 欧美性受xxxx黑人xyx性爽 | www.久草视频| 久久久久毛片免费观看 | 国产精品免费aⅴ片在线观看 | 少妇被猛男粗大的猛进出 | 麻豆精品国产精华精华液好用吗 | 18禁床震无遮掩视频 | 国产一区二区三区美女 | 日韩国产成人无码av毛片 | 国产免国产免费 | 搞黄网站免费观看 | 九九久久久 | 亚洲最大免费视频网 | 久久国产精品鲁丝片 | 欧美国产精品一区二区免费 | 成人在线网 | 久久久久久久久免费视频 | 日日日日人人人夜夜夜2017 | 亚洲成人福利在线 | 天堂资源在线中文 | 亚洲一区小说 | 久久网站视频 | 又粗又粗又黄又硬又深色的 | 忘忧草日本在线www 忘忧草视频www | 国产精品bdsm在线调教 | 日本一级高清不卡视频在线 | 成人欧美在线观看 | 中文字幕一区二区三区精华液 | 国产九九精品视频 | 欧美肥老太交性506070 | 99久久国产 | 国产美女精品久久久久中文 | 激情内射日本一区二区三区 |