[英]MySQL queries performance
我有 14000 條記錄、100 列和只有 2 列類型為 longtext 的數據庫catalogs
。 這個查詢真的很慢 - 超過 40 秒
SELECT
id,
title,
pdf
FROM
catalogs
WHERE
(shop_id = 2597)
為了實驗,我創建了名為new_catalogs
的新數據庫,具有相同的結構和數據,但我刪除了 2 個長文本類型的列
運行相同的查詢速度提高了一倍 - 20 秒。
為什么長文本字段會減慢查詢速度? 如何加快我當前的數據庫,它必須包含這 2 列長文本? 我沒有 select 這 2 列得到。
使用 laravel 查詢我得到了相同的結果。
LONGTEXT
列與列的 rest 分開存儲。 額外的磁盤提取用於加載該值。
當您將LONGTEXT
列分開時,您是否獲取了該值? 無論如何,這很慢?
你有INDEX(shop_id)
嗎?
Laravel 是否做了一些愚蠢的事情,比如預加載整個表?
您將如何處理 PDF? 如果您只將它們寫入 web 頁面,則以多種方式將其存儲為文件會更有效,然后讓 HTML 引用它。 這可能會通過<img src=...pdf>
來完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.