4
A
回答
2
我從來沒見過這個做了很多工作,因爲它基本上防止從一個對MySQL的側上的數據做任何操作:
- 沒有全文,是
- 也沒什麼
like
,無=
,沒有其他操作...
但是,如果您只使用數據庫來存儲該數據,而不是操縱它,那可能很有趣。
注意:您可能需要執行一些基準測試來衡量這可能會帶來的性能影響,因爲壓縮/解壓縮需要CPU!
之後,問題是:你會處理客戶端(PHP)端還是服務器端(MySQL)的壓縮?
在第二種情況下,MySQL提供的COMPRESS()
函數可能會讓您感興趣。
0
壞主意。當磁盤空間低於1 GB時,額外的處理可以節省一些空間,這不會抵消額外的編程時間來完成這項任務(不僅僅是初始化,還記得維護)。
由於數據需要解壓縮/壓縮,這可能會使數據庫訪問速度變慢。索引不會在壓縮數據上正常工作,因爲您需要執行表掃描,解壓縮數據,然後進行比較。全文搜索也是一樣。
如果您必須這樣做,請不要使用gzip。使用內置的COMPRESS功能。
4
如果您在MySQL中使用InnoDB表類型並使用最新版本之一,那麼可以啓用compression on an InnoDB表本身。
它在低層管理,所以不會改變你的查詢或任何東西。從我讀過的內容來看,輕微的壓縮開銷通過減少磁盤IO並允許更多數據存儲在內存中的緩衝池中得到抵消。但是,您提到了InnoDB不支持的全文搜索,因此這可能不是一種選擇。
在MySQL中還有一個Archive表類型,但除了我相信的主鍵之外,您將失去索引功能。
另一種選擇是「打包」一個MyISAM表,但我相信這使得表只讀,並不像其他選項那樣壓縮。
相關問題
- 1. J2ME中的文本編輯器 - 將文本存儲在內存中以編輯
- 2. 可編輯的文本和存儲該文本在Android
- 3. Mysql文本存儲?
- 4. 訪問「文本編輯」中的存儲文本文件,Qt C++
- 5. mysql存儲過程編輯器
- 6. 文本編輯器php MYSQL
- 7. Rails:如何編輯存儲在Amazon S3上的文本文件?
- 8. 編輯存儲在服務器上的文本文件
- 9. 文本編輯器內部文本存儲:最佳塊大小?
- 10. gzip文件如何存儲在HDFS中
- 11. 在數據庫中存儲動態編輯文本值
- 12. 在Appengine數據存儲查看器中編輯文本字段
- 13. MySQL的 - 存儲爲文本
- 14. 存儲長文本 - mysql wampserver
- 15. 編輯本地存儲中的項目
- 16. 編輯gzip文件的XML內容
- 17. 保存文本編輯文本
- 18. mysql表存在存儲過程邏輯
- 19. 如何使用bash存儲編輯過的文本文件?
- 20. 在MySQL中存儲更長的文本
- 21. mySQL:編輯/保存my.cnf文件
- 22. 使用GZIP編碼將CSS文件上傳到blob存儲
- 23. SQL存儲過程編輯
- 24. 編輯存儲器地址
- 25. onSharedPreferenceChanged編輯存儲值?
- 26. base64編碼HTML編輯器文本以存儲在數據庫中
- 27. FCK編輯器需要的Sql數據類型文本存儲
- 28. 將Excel嵌入網站以編輯本地存儲的文檔
- 29. 如何編輯保存在Azure存儲上的聯機文件
- 30. 編輯文本
在應用程序層中有一些有效的壓縮用例。每當你存儲大量的文本數據,但不需要進行搜索時,它是一個很好的候選項,例如歸檔日誌輸出。在數據到達數據庫之前對數據進行Gzip處理,可將1MB記錄下降到30k。儘管直接磁盤空間很便宜,但在運行mysqldumps時也必須考慮IO限制,或者在從應用程序服務器到數據庫服務器的網絡中進行訪問時。如果你在創建一個從設備時運行了一個鎖定的'mysqldump --master-data',你會希望減小db的大小。 – 2012-10-03 17:49:44