Mysql
大型長文本是否一定會減慢數據庫的速度
我有一個超過一百萬行的 MySQL 數據庫,並且有一個
longtext
類型數據列。其中大部分都相當短,但其中有幾十行在列中超過了 MBlongtext
。沒有對longtext
列進行 WHERE 或 LIKE 語句。一次最多只能選擇幾行語句。將這些數據保存在數據庫中會很好,但是數據庫速度很慢。我有兩張一百萬條記錄的表,一張是 100MB,但這張是 4GB,主要在longtext
列中。我不確定這是否是性能問題。我們想知道刪除這些行是否會導致 SELECT、CREATE、UPDATE 命令的性能提高,或者它是否應該沒有影響。
在 MyISAM 表上,當行長度可變且刪除頻繁時,很容易出現碎片。這會增加查找數據所需讀取的頁數,並阻止使用順序預讀技術,從而影響索引讀取和全表掃描性能。
請參閱此 Serverfault 問題以獲取有關碎片的良好資訊,如何檢測它並對其做出反應:https ://serverfault.com/questions/202000/how-find-and-fix-fragmented-mysql-tables
這在 InnoDB 上不太適用,其中大對象與其餘行分開儲存,並且表是面向索引的。