在 MySQL (Azure) 上查询 Information_Schema 花费的时间太长

Querying Information_Schema on MySQL (Azure) takes too long

问题是从 MySql 读取信息模式...太慢了:

步骤:

1. MySql dump created manually by scripting all objects from existing
   MySql db which is on AWS. (MySql Version 5.7)
2. Restored dump file on to Azure MySql (Version 5.7)
3. Re-pointed Application (Appian) which sits on AWS to newly created MySql db on Azure.
4. When tried to validate Application (Appian) Objects (Data Stores), which reads `Information_Schema` takes too long or gets timed out.
5. But reading data from the tables are faster.

根据检查的建议 innodb_stats_on_metadata,此设置为关闭。

仍然没有运气!有什么建议吗?

经过一番调查,发现下面的查询比较慢。

SHOW FULL TABLES FROM `database` LIKE 'xyz'

大部分时间它做的是'checking permissions'

微软的回应:

Azure MySQL 上的命令 show full tables 5.7 与产品工程确认后比预期慢。每次测试,当只有 1 个连接线程和 1500 个表时,将需要 800 毫秒才能完成,当存储更多表和并行连接时,响应时间将相应增加。

关于这个问题,我们现在可以尝试两种可能的方法:

  1. 继续使用 MySQL 5.7,下一个版本(2020 年 1 月底)将通过将 1500 个表、1 个线程的响应时间减少到 50 毫秒来缓解此问题。

  2. 切换到MySQL8.0版本,因为8.0在运行show full tables时没有“列出所有目录”等操作。目前8.0处于publish preview阶段,暂定2020年1月下旬GA