[英]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.