我有catalogs14000 條記錄、100 列和只有 2 列型別為 longtext 的資料庫。這個查詢真的很慢 - 超過 40 秒
SELECT
id,
title,
pdf
FROM
catalogs
WHERE
(shop_id = 2597)
為了實驗,我創建了new_catalogs具有相同結構和資料的新資料庫,但我洗掉了 2 個長文本型別的列
運行相同的查詢速度提高了一倍 - 20 秒。
為什么長文本欄位會減慢查詢速度?如何加速我當前的資料庫,它必須包含這 2 列和 longtext ?我沒有選擇這 2 列來獲取。
使用 laravel 查詢我得到了相同的結果。
uj5u.com熱心網友回復:
LONGTEXT列與其余列分開存盤。額外的磁盤提取用于加載該值。
當您將LONGTEXT列分開時,您是否獲取了值?無論如何,這很慢?
你有INDEX(shop_id)嗎?
Laravel 是否做了一些愚蠢的事情,比如預加載整個表格?
您將如何處理 PDF?如果您只將它們寫入網頁,則以多種方式將其存盤為檔案會更有效,然后讓 HTML 參考它。這可能會通過<img src=...pdf>.
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/407541.html
標籤:
上一篇:密碼登錄在MySQL中不起作用
