簡體   English   中英

MySQL 查詢性能

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM