相关疑难解决方法(0)

对information_schema.tables的查询速度慢

我在典型的共享主机服务产品上运行了一组自行开发的应用程序.我基于来自D/B元数据的前缀,基于表的列表,从允许的表的静态配置表列表移动到一个表.当我将此版本推广到公共服务时,我的每请求延迟平均增加了2.3-2.4秒.一些仪器显示这完全取决于一个SQL查询:

SELECT TABLE_NAME AS name
FROM information_schema.tables
WHERE TABLE_SCHEMA = '<DBname>'
AND TABLE_NAME LIKE '<TablePrefix>%';
Run Code Online (Sandbox Code Playgroud)

我使用它是因为我想在结果集中明确命名列.但是,使用备用查询对此进行编码会添加额外的代码行,其运行时间<2毫秒:

SHOW TABLES LIKE '<TablePrefix>%';
Run Code Online (Sandbox Code Playgroud)

我的服务提供商使用Enterprise MySql 5.0.92-50,因此我无法进行任何分析.这是一个扩展问题,因为它不会出现在我的开发环境和我可以分析的测试VM上.它们支持数千个用户,因此实时模式将非常大,但即便如此,连接和大多数查询只需要几毫秒.

有谁知道为什么在大型多用户系统上查询基于内存的information_schema需要这么长时间?

mysql performance

7
推荐指数
2
解决办法
1万
查看次数

标签 统计

mysql ×1

performance ×1