0
我有一個表,其中包含MEDIUMTEXT
字段用於存儲日誌。
我將數據添加到日誌如下:MySQL CONCAT without reading
UPDATE tbl SET log = CONCAT(log, 'newtext')
對於短原木它工作正常,但隨着時間的推移,日誌區域變大,它會減慢成倍。看起來,MySQL讀取整個領域,然後寫出整個事情。
如何將數據添加到日誌中而不會影響性能?如果沒有辦法做到這一點,我該如何存儲和更新如此大塊的文本數據?
它比簡單的1,2,3更糟糕 - 必須刪除舊行併爲新的更大的行分配空間。 –
不知道@RickJames,我瞭解您的評論。性能問題來自於每個INSERT中的連接。假設每個SELECT都有很多INSERTS,所提出的方法肯定會提高性能(過去我已經這樣做了,而且改進非常顯着)。如果我完全誤解了你,請澄清。 – FDavidov
換言之 - 步驟#3比表面上看起來更昂貴。由於存儲(InnoDB的塊,MyISAM的流),存儲新的更大的行可能會導致塊分割和其他「昂貴」的操作。 (我們達成了協議,我喜歡你的回答。) –