社区王牌专栏《一问一实验:AI 版》全新改版归来,得到了新老读者们的关注。其中不乏对 ChatDBA 感兴趣的读者前来咨询,表达了想试用体验 ChatDBA 的意愿,对此我们表示感谢 🤟。

目前,ChatDBA 还在最后的准备阶段,会尽快跟大家见面。想预约试用的朋友,可以扫码文末的 预约试用 填写调研问卷。我们正在对 DBA 群体试用大模型的情况进行调研,这对我们打磨 ChatDBA 的使用体验非常重要。

下面让我们正式进入《一问一实验:AI 版》的第 54 期。

问题

MySQL 一分钟内 Crash 并重启了三次,是什么原因导致的?

实验

1. 将问题丢给 ChatDBA

我们先把这个问题丢给 ChatDBA,让他看下具体出了什么问题。

可以在爱可生开源社区 B 站或视频号查看本期完整操作视频。

左侧为流程分析画布,展示 ChatDBA 对此问题的排查逻辑;右侧为互动区域

2. ChatDBA 协助问题排查

本期我们使用了一个之前遇到过的问题来问下 ChatDBA,他首先让我们去查询错误日志,同时猜测了一些可能导致这个问题的原因。

紧接着我们就将错误日志直接发给了 ChatDBA,发现 ChatDBA 识别出日志中包含的类型,同时他也给出了临时的解决方案,接下来我们将 SQL 语句与对应的表结构输入给 ChatDBA。

3. ChatDBA 给出解决方案

到这里 ChatDBA 基本上就判断了问题的根本原因是由于 decimal 做运算时出的问题,而且识别出了对应的 SQL 语句存在异常,接下来 ChatDBA 给到了对应的具体解决方案。

4. 实验总结

针对该问题 MySQL Crush,其实问题原因有很多。ChatDBA 能够罗列出 decimal 字段可能导致该问题也是因为 ChatDBA 底层的知识库足够丰富,后续我们也将持续补充数据库领域更多的专业知识。

回到该问题,是由于两个字段没有获取到有效值,而且他们的数据类型为 decimal 类型,当进行数值转换的时候触发了 MySQL 的 bug 导致崩溃。

最后配合业务方针对该情况提前做数据判断,防止异常值直接入库来避免该问题的出现。

问问 ChatGPT-4o

我们将相同的内容也给到了 ChatGPT,虽然第一轮他也要求我们输入对应的 error log,但是当我们把内容给到他后,他并没有识别出什么是关键的信息,从而无法有效的指导操作。