0

我最近遇到了一个查询,该查询从过去几天开始花费了异常长的时间。上个月我们进行了 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;  

它是对 Navicat 触发的 information_schema.PARTITIONS 的查询,以获取有关表结构的详细信息,重现起来非常困难。

当你编辑表格时,Navicat 必须从 Information Schema 中收集关于表格的所有详细信息(例如引擎的 lsit、表格列,请参阅分析显示创建表格等),并且 PARTITIONS 是它必须检查的表格之一,如您所见WHERE 条件不是“正确的” WHERE TABLE_SCHEMA LIKE 'wialogdb' 它不应该是 LIKE 它应该是 WHERE TABLE_SCHEMA = 'wialogdb',这个查询要快得多,但它是 Navicat 的内部代码,我们无法更改它。我们过去没有这个问题(旧的 MySQL 5.1.34)

任何帮助将不胜感激。

提前致谢。

4

1 回答 1

3

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

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

于 2013-05-03T11:43:35.487 回答