【问题标题】:MySQL fetch time too importantMySQL 获取时间太重要了
【发布时间】:2014-02-03 14:05:02
【问题描述】:

当 Fetch 时间相当长时,我的查询是一个小的持续时间。究竟是什么时间。可以减少吗?它是否依赖于网络,因为服务器是远程服务器。

我的查询是一个简单的查询
SELECT * FROM Table WHERE id = a primary_Key;
通常,查询返回 5 到 50k 行。 但该表有 900 万行。 count(*) 需要 82 秒(持续时间),获取时间为 0。

【问题讨论】:

  • 一个是从数据库本身获取请求的数据需要多长时间,另一个是需要多长时间才能将其发送到客户端。
  • 如果您通过主键查询,您应该只获得 1 条记录(或没有),而不是 5 到 50k 行之间...
  • 你是对的,列上有一个索引。我的错。但问题仍然是一样的:-)

标签: mysql


【解决方案1】:

获取时间确实取决于网络速度。您的 SELECT Count(*) ... 查询仅返回一个数字,因此网络开销最小。

为了提高速度,我建议您只获取您需要的列和行(即将SELECT * ... 替换为您需要的确切列)。

此外,启用客户端和服务器之间的压缩将减少时间(但会略微增加压缩/解压缩的 CPU 使用率)。请参阅this 相关问题。

【讨论】:

  • 是否意味着减少时间的一种方法是将数据库本地化在我的计算机上?
  • 如果这是一个选项,它肯定会通过消除网络时间来提高获取时间。
【解决方案2】:

您是否考虑过使用Mysql Indexes

【讨论】:

  • 如何处理索引?
猜你喜欢
  • 2011-09-23
  • 2010-12-10
  • 2023-03-31
  • 2012-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-04
  • 1970-01-01
相关资源
最近更新 更多