MySQL:information_schema.tables 性能退化

MySQL:information_schema.tables 性能退化

💡 原文英文,约1800词,阅读约需7分钟。
📝

内容提要

在IRC讨论中,有人指出MySQL 8.0中SHOW TABLES LIKE 'name'在表数量较多时性能较差,尤其是创建百万个表时,速度慢且查询效率低。MySQL 8.x使用隐藏的InnoDB表存储数据字典,导致查询性能下降。

🎯

关键要点

  • 在MySQL 8.0中,SHOW TABLES LIKE 'name'在表数量较多时性能较差,尤其是创建百万个表时。

  • MySQL 8.x使用隐藏的InnoDB表存储数据字典,导致查询性能下降。

  • IRC讨论中提到,某用户有约40,000个表,另一用户有500,000个表,查询速度明显变慢。

  • 创建百万个表的代码相对简单,但创建速度不理想,约900个表每分钟。

  • 在查询信息模式时,表的请求速度慢,尤其是在表数量庞大的情况下。

  • 使用table_schema可以加速查询,但在没有该条件时,查询性能显著下降。

  • 在删除包含313,000个表的数据库时,数据库会冻结,处理速度缓慢。

  • MySQL 8.x的查询性能在处理大量表时不够理想,影响了数据库的整体效率。

🔎

延伸解读

性能影响分析

在MySQL 8.0中,SHOW TABLES LIKE 'name'的性能显著下降,尤其是在表数量达到数十万时。这种性能退化主要源于使用隐藏的InnoDB表存储数据字典,导致查询效率低下。用户在处理大量表时,可能会面临查询速度缓慢的问题,影响整体数据库性能。

优化查询建议

为了提高查询效率,建议在查询信息模式时使用table_schema条件。这可以显著加速查询,尤其是在表数量庞大的情况下。未使用该条件时,查询性能会显著下降,可能导致用户在执行常规操作时感到延迟。

创建与删除表的挑战

创建大量表的过程虽然简单,但速度却不理想,约900个表每分钟的创建速度可能会让用户失望。此外,删除包含大量表的数据库时,系统可能会冻结,处理速度缓慢,这对数据库管理带来了挑战。

延伸问答

MySQL 8.0中SHOW TABLES LIKE 'name'的性能如何?

在MySQL 8.0中,当表数量较多时,SHOW TABLES LIKE 'name'的性能较差,尤其是在创建百万个表时,查询速度明显变慢。

为什么MySQL 8.x的查询性能下降?

MySQL 8.x使用隐藏的InnoDB表存储数据字典,这导致在处理大量表时查询性能下降。

在MySQL中创建百万个表的速度是多少?

在创建百万个表时,速度约为每分钟900个表。

如何加速MySQL查询性能?

在查询时使用table_schema可以加速查询性能,尤其是在表数量庞大的情况下。

删除包含大量表的数据库时会发生什么?

删除包含313,000个表的数据库时,数据库会冻结,处理速度缓慢。

MySQL 8.x的查询性能在处理大量表时有什么限制?

MySQL 8.x的查询性能在处理大量表时不够理想,影响了数据库的整体效率。

🏷️

标签

➡️

继续阅读