mpe*_*pen 8 mysql performance optimization
我的应用程序依赖于为某些表运行“显示列”。运行大约需要 60 毫秒,而我们所有其他查询都需要不到 1 毫秒。information_schema直接查询甚至更慢。
该数据库包含约250个数据库,每个数据库有100到200张表(总共约2万张表)。
(该应用程序每页加载执行大约 14 个这样的查询 - 我很清楚需要清理这个遗留代码,但在我进行长期修复时寻找可能的选项。)
Aar*_*own 12
MySQL 为某些访问INFORMATION_SCHEMA表的操作重新计算表统计信息(SHOW COLUMNS只是一个方便的查询别名INFORMATION_SCHEMA.COLUMNS)。将innodb_stats_on_metadata设置为 false,这将防止在您从表中请求元数据时发生这种重新计算。
SET GLOBAL innodb_stats_on_metadata=0;
Run Code Online (Sandbox Code Playgroud)
并将以下内容添加到 my.cnf
[mysqld]
innodb_stats_on_metadata = 0
Run Code Online (Sandbox Code Playgroud)