在MySQL中运行缓慢的查询

时间:2013-05-03 11:40:06

标签: mysql performance navicat

我最近遇到了一个查询,这个查询过去几天的时间过长。上个月我们有一个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)

任何帮助都将受到高度赞赏。

提前致谢。

1 个答案:

答案 0 :(得分:3)

如果不是您的软件,请不要尝试修复它。让创作者知道您有性能问题,并且您已找到可以提高性能的内容。

人们购买软件许可证的原因是:使用支持。