繁体   English   中英

MySQL 查询执行时间很快,但获取行很慢?

[英]MySQL query execution time is fast, but fetching rows is slow?

当我在 phpmyadmin 上运行此查询时,获取结果大约需要 30 秒,但是一旦成功加载结果,它会显示“查询需要 0.5029 秒”。

如果加载结果需要 30 秒,为什么会显示“查询需要 0.50 秒”?

我的查询:

SELECT * FROM `documents` WHERE disable=0 AND author=7 AND MATCH(text) AGAINST('"chocolate"')

我正在搜索的字段(名为“text”)的字段类型为“mediumtext”,每个文本行包含大约 200kb 的文本。 该表的总大小为 15,000 行和 1.5GB 的文本。

有谁知道是什么原因导致这种情况发生?

我将扩展我的评论。

当数据库报告完成查询的时间时,通常仅是数据库内的时间。 它可能包括也可能不包括编译查询的时间。 它不包括返回结果的时间。

由于数据上的文本列,您的数据行非常宽。 因此,您会遇到在数据库中运行查询非常快的情况。 但是结果行非常大——因此将它们返回给用户需要很多时间。

也许使时间更复杂的是,您可能正在查看何时返回所有行,而不仅仅是第一行返回(有时这也会与时间混淆)。

在任何情况下,如果您不需要宽列,只需选择您需要的列。 这对查询处理时间影响不大,但可能会对返回结果的时间产生很大影响。

规则#1 Select * from anytable 是一个坏主意。 只需询问@supercoolville 澄清一下。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM