为什么sql过长会执行失败,举一个案例

为什么sql过长会执行失败,举一个案例,第1张

1、不同的数据库应该是不一样的

2、不过任何东西不可能完全没有限制,所以sql过长会失败是肯定的。

3、以Mysql为例,在其配置文件中有一个设置 max_allowed_packet = 1M 此时如果你的SQL长度超过了1M就会被截断,从而导致执行失败。

我有个大的 SQL 文件要回放,需要马上做,但又怕压死业务,怎么办?

先来建一个测试库:

塞一些数据进去:

看看我们填充数据的成果:

使用 mysqldump 导出一份数据:

现在我们假设要把这个 dump 文件,回放到一个数据库中,并且现在数据库正在承担很重的业务,我们不希望业务受到太大影响。

先来看看如果直接回放 dump 文件,会发生什么?

我们看到 MySQL 的 cpu 会彪起来,

我们换一个方式来回放 dump:

看看 CPU 压力:

可以看到 CPU 已经非常冷静,并且缓慢的处理数据。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5951746.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-09
下一篇2023-03-09

发表评论

登录后才能评论

评论列表(0条)

    保存