我最近遇到了一个查询,这个查询过去几天的时间过长。上个月我们有一个MySQL数据库的服务器迁移,这个问题在以前的服务器上从未发生过。旧服务器上的MySQL版本是5.1.34,当前版本是5.1.58(不确定是否与此问题有关)。
查询如下:
SELECT table_name,
partition_name,
subpartition_name,
partition_method,
subpartition_method,
partition_expression,
subpartition_expression,
partition_description,
partition_comment,
nodegroup,
tablespace_name
FROM information_schema.partitions
WHERE table_schema LIKE 'wialogdb'
AND NOT Isnull(partition_name)
AND table_name LIKE 'freemail'
ORDER BY table_name,
partition_name,
partition_ordinal_position,
subpartition_ordinal_position;
它是对information_schema.PARTITIONS的查询 由Navicat解雇以获取有关表结构的详细信息,重现这一点非常困难。
编辑表时,Navicat必须从信息模式中收集表中的所有详细信息 (例如lsit of Engines,Table Columns,请参阅analyze Show Create table等) 和PARTITIONS是它必须检查的表之一,因为你可以看到WHERE条件不是“正确的”WHERE TABLE_SCHEMA LIKE'wialogdb'它不应该是LIKE它应该是WHERE TABLE_SCHEMA ='wialogdb',这个查询要快得多,但这是Navicat的内部代码 我们无法改变它。我们过去没有这个问题(旧MySQL 5.1.34)
任何帮助都将受到高度赞赏。
提前致谢。
答案 0 :(得分:3)
如果不是您的软件,请不要尝试修复它。让创作者知道您有性能问题,并且您已找到可以提高性能的内容。
人们购买软件许可证的原因是:使用支持。