簡體   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