社区王牌专栏《一问一实验:AI 版》改版以来已发布多期(51-60),展现了 ChatDBA 在多种场景下解决问题的效果。

下面让我们正式进入《一问一实验:AI 版》的第 61 期,看看 ChatDBA 最新效果以及与热门大模型 DeepSeek 的对比效果。

问题

一个 gh-ost 的使用故障

使用 gh-ost 根据将 MySQL 表字段进行长度扩展,一直在执行中没有结束,是什么原因?

执行命令:

/opt/gh-ost --conf='/opt/ghost.conf' \
--database=test \
--table=sales_order \
--alter='CHANGE COLUMN ORDER_ID ORDER_ID VARCHAR(100);' \
--max-load=Threads_running=100 \
--critical-load=Threads_running=1000 \
···

实验

完整操作视频

https://www.bilibili.com/video/BV1hLNteNEyG/?aid=113961437561...

ChatDBA 演示视频(带配音)同步社区视频号及哔哩哔哩,欢迎关注。

ChatDBA 专家模式

专家模式在第一轮对话开始后,会根据问题生成【根因分析树】,展示 ChatDBA 对问题的排查逻辑,方便启发 DBA 快速定位问题。

根因分析树

第一轮交互

将故障描述和执行命令提供给 ChatDBA 后,ChatDBA 直接给出了与问题最相关的可能的原因,并据此提供了具体的排查步骤和解决方案。

  1. 表数据量大。
  2. VARCHAR 类型扩展的机制。
  3. gh-ost 参数配置可能不合理。

第一轮交互给出初步结论和建议

第二轮交互

根据上一轮 ChatDBA 的提示,对所需的信息进行可查询并提供给 ChatDBA。

在 ChatDBA 得知表空间较大(1.5TB),order_id 字段类型(VARCHAR),以及扩展长度(30—>100)后,进一步强调了表数据量大,以及 VARCHAR 字段扩展可能引起的性能问题。

同时,针对这两个原因,提出了进一步分析步骤:

  1. 确认表字符集,用于明确当前字符集下,VARCHAR 字段扩展阈值。
  2. 检查 gh-ost 配置和系统负载。

第二轮交互给出结论和建议

第三轮交互

基于用户的提问,ChatDBA 深入讨论了 VARCHAR 类型字段长度扩展跨越 64 字节阈值的原因,并详细解释了 MySQL 内部存储机制的变化。

同时,提供了针对这一问题的优化方案,包括调整 gh-ost 参数、选择业务低峰期执行 DDL 操作和手动控制过程。ChatDBA 还提供了详细的手动操作步骤来解决问题。

第三轮交互进一步答疑解惑

DeepSeek 对比

面对本期问题,Deepseek 的回答还是很全面的。

首先提到了常见的问题原因,例如权限不足、语法错误、主从复制、数据库负载、表数据量过大、主从延迟, 网络或磁盘 I/O 瓶颈,长事务或锁冲突,ALTER 语法错误,调整 gh-ost 参数等。然后列出了一些排查步骤,包括检查 gh-ost 日志、监控 MySQL 负载、检查表数据量、检查磁盘使用率、检查长事务与锁状态、检查 ALTER 语法、检查 gh-ost 版本与 MySQL 版本兼容性等。

但在首轮回答中,Deepseek 的回答并没有提到 varchar字段长度扩展跨越阈值,及其导致性能问题的描述。

DeepSeek 已深度思考

DeepSeek vs ChatDBA

  • Deepseek 回答内容广泛,提到了多种可能性,覆盖面广,适合用户“全面理解”问题以及问题相关知识。但由于信息量大,用户排查可能“无从下手”,需要自行筛选那种场景最契合问题,因此缺乏解决问题的最短路径。
  • ChatDBA 则给出了相对直接的排查思路,覆盖了导致问题的常见因素;同时,每个步骤都配置了简明易懂的操作指令,可执行性强,适合初级DBA进行逐步排查。

当用户偏向于“快速定位并解决问题”时,ChatDBA 按照常见场景排序的排查思路,简明易懂的操作示例,大概率能帮助用户快速解决问题。

ChatDBA 的优势

  1. 深入分析:ChatDBA 的回答从基本信息入手(首先检查表和扩展字段信息),之后再逐步深入,扩展到工具配置,MySQL 配置等更为广泛的方面。ChatDBA 的排查涉及了表数据量和字段长度扩展的基础问题,同时,还进一步讨论了 MySQL 的存储机制和性能优化策略。
  2. 详细的命令和配置示例:每一轮回答中,ChatDBA 都给出了具体的命令和配置调整建议,帮助用户有效应对问题。
  3. 覆盖问题广度:ChatDBA 不仅关注性能问题,还考虑了系统资源、gh-ost 配置和表重建的技术细节,提供了全面的解决方案。

总体来说,ChatDBA 在提供深度分析、解决方案细节和优化步骤方面表现更为全面,是更适合处理复杂问题的模型。

预告

🤗 ChatDBA 即将在国内上线,敬请期待~


爱可生开源社区
426 声望209 粉丝

成立于 2017 年,以开源高质量的运维工具、日常分享技术干货内容、持续的全国性的社区活动为社区己任;目前开源的产品有:SQL审核工具 SQLE,分布式中间件 DBLE、数据传输组件DTLE。