【问题标题】:Why is using information_schema too much slow?为什么使用 information_schema 太慢了?
【发布时间】:2017-02-26 07:34:33
【问题描述】:

这是我的代码:

// dbs size
$sql = 'SELECT table_schema DB_Name,
               Round(Sum(data_length + index_length) / 1024 / 1024, 2) DB_Size_in_MB
        FROM  information_schema.tables
        GROUP BY table_schema';
$dbs_size = DB::select($sql);

执行上述查询需要 6 秒。为什么?我怎样才能让它更快?

【问题讨论】:

  • 你的服务器慢吗?是否承受重负载?其他查询需要这么长时间吗?
  • 我觉得是环境问题,不是查询问题
  • @tadman 是的。我使用的服务器有点忙。但我仍然认为执行该查询的速度很慢。
  • @GurV 好吧。谢谢
  • 计算表大小可能需要尘埃落定在飞行中的查询上,这可能需要一些时间。

标签: php mysql sql performance


【解决方案1】:

不幸的是,访问 INFORMATION_SCHEMA.TABLES 的速度非常慢,尤其是当您有很多表时,因为服务器必须打开每个文件才能满足查询。

您可以在此博客文章中找到有关如何加快对 information_schema 的查询的更多信息: https://www.percona.com/blog/2011/12/23/solving-information_schema-slowness/

希望对你有帮助!

【讨论】:

  • 8.0 也会加快速度。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-08
  • 2017-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多