我正試圖在數據庫中存儲至少500,000個小「文件」(偶爾會有3 KB的平均大小高達8〜10 MB)。這是爲了從文件系統中刪除它們並加快搜索/用戶操作。在MySQL中存儲和搜索文件
- 元數據(基本上文件名,日期時間創建的,日期時間改性)
- 的文件內容
在數據庫(MySQL的)存儲它們甲LONGBLOB一直很好。數據庫存儲這些文件並且搜索元數據(字符串,日期時間,日期時間)也與相關索引一起快速。
不幸的是,任何試圖在LONGBLOBs中搜索的嘗試都很慢。在LONGBLOBs在這裏是數據的外觀:
- 80%爲 「文本文件」(如XML),並在100 KB
- 15%爲 「文本文件」,但超過100 KB(最多8個〜10 MB)
- 5%或更少是二進制文件(可能在「文本」容器中損壞)。
分類會將此數據作爲文本或未知的,然後將其放置在一個單獨的LONGTEXT表做操作,如LIKE「%X%」時,提供性能改進(相對於LONGBLOB)?
是否有任何其他技術可以通過BLOB搜索來提高性能(非常「grep」風格)?搜索通常是BLOB中保存的較短的數據序列,並且很少有搜索會重複(但搜索有點可預測,某些數據比其他數據更有趣)。