我正在运行MySQL 5.5.11版本,查询INFORMATION_SCHEMA.key_column_usage表时的性能非常糟糕。
我有一个简单的选择请求:
SELECT REFERENCED_TABLE_NAME
, TABLE_NAME AS TableName
, COLUMN_NAME AS ColumnName
, CONSTRAINT_SCHEMA AS Db
FROM INFORMATION_SCHEMA.key_column_usage
平均需要8秒才能返回400行。这是一个知道问题吗?如果是这样,有没有办法提高性能(补丁可能?)。
答案 0 :(得分:9)
使用给出的提示: http://www.mysqlperformanceblog.com/2011/12/23/solving-information_schema-slowness/
我为同一个查询从几秒钟切换到一百毫秒。这个设置节省了我的一天:
innodb_stats_on_metadata=0
答案 1 :(得分:3)
我在这里发现了一篇有趣的文章: http://dev.mysql.com/doc/refman/5.5/en/information-schema-optimization.html
我在我的查询中添加了WHERE TABLE_SCHEMA ='myTable',并且我获得了大量的性能提升,从8秒到0.2!