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. Rails:如何编辑存储在Amazon S3上的文本文件?
- 7. gzip文件如何存储在HDFS中
- 8. 在Appengine数据存储查看器中编辑文本字段
- 9. 在数据库中存储动态编辑文本值
- 10. 存储长文本 - mysql wampserver
- 11. 编辑本地存储中的项目
- 12. 保存文本编辑文本
- 13. mysql表存在存储过程逻辑
- 14. mySQL:编辑/保存my.cnf文件
- 15. base64编码HTML编辑器文本以存储在数据库中
- 16. 编辑存储器地址
- 17. onSharedPreferenceChanged编辑存储值?
- 18. SQL存储过程编辑
- 19. 将Excel嵌入网站以编辑本地存储的文档
- 20. 编辑文本
- 21. 如何将编辑后的数据存储在本地存储中?
- 22. 写逻辑将数据存储在MySQL存储元数据文件
- 23. 在React中编辑文本
- 24. 隐藏在文本编辑
- 25. 在android中编辑文本
- 26. 在uiwebview中编辑文本
- 27. 在线文本编辑器
- 28. 而在编辑文本
- 29. 在哪个文件下拉编辑器值存储在SuiteCRM
- 30. 在线编辑存储在web服务器上的office文档
在应用程序层中有一些有效的压缩用例。每当你存储大量的文本数据,但不需要进行搜索时,它是一个很好的候选项,例如归档日志输出。在数据到达数据库之前对数据进行Gzip处理,可将1MB记录下降到30k。尽管直接磁盘空间很便宜,但在运行mysqldumps时也必须考虑IO限制,或者在从应用程序服务器到数据库服务器的网络中进行访问时。如果你在创建一个从设备时运行了一个锁定的'mysqldump --master-data',你会希望减小db的大小。 – 2012-10-03 17:49:44