gpt4 book ai didi

mysql - 如何调试无法在 Navicat、Workbench 中加载的表?

转载 作者:行者123 更新时间:2023-11-30 22:57:55 26 4
gpt4 key购买 nike

我有一张无法在 Navicat 中加载的表格。我开始认为这是 table 的一个严重问题 - 我以前从未遇到过这样的事情。它只是在执行加载 1000 行的初始 SELECT 时停止。表是 MyISAM,总行数约为 64k。

关于如何调试这个有什么建议吗?数据库中的其他表似乎加载正常。

更多细节:我注意到可能是罪魁祸首。对于这个查询:

SELECT * FROM data_warehouse AS dw 
LEFT JOIN serialized AS dws ON dw.dw_id = dws.dw_id
WHERE (dw.ds_id = 2) ORDER BY dw.dw_id DESC LIMIT 1

发生这种情况时,我执行 show processlist,我看到有一个条目显示“正在复制到 tmp 表”。它不会消失,而是留在那里。 “QUERY”的命令类型。

此外,我注意到数据类型之间存在不一致。我的 data_warehouse 表有 dw_id 作为 bigint,而 serialized 有 dw_id 作为 int .我是否应该更改 serialized 的 dw_id 以匹配?如果我这样做会破坏什么吗?

最佳答案

这已经解决 - 基本上发生的事情是:

在服务器中有其他查询导致我的查询无法处理/在队列中停滞。两个表之间发生了 LEFT JOIN,这两个表的数据类型 dw_id 不一致。一个是 bigint,另一个只是 int。这导致两个查询尝试“复制到 tmp 表”,然后使每个查询都停止。

我通过执行 show processlistkill QUERYID 来调试它。需要将索引添加到具有不一致的 dw_id 数据类型的第二个表。

关于mysql - 如何调试无法在 Navicat、Workbench 中加载的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25453736/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com