我正在使用PHP和MySQL开发一个web应用程序。我想知道有什么方法可以在MySQL中保存尽可能小的数据吗?
以下是MySQL中日期类型的长度,选择适合您需要的。通过将列定义为NOT NULL
,可以再保存1个字节。
http://dev.mysql.com/doc/refman/5.1/en/storage-requirements.html说:
Storage Requirements for Date and Time Types
Data Type Storage Required
DATE 3 bytes
TIME 3 bytes
DATETIME 8 bytes
TIMESTAMP 4 bytes
YEAR 1 byte
如果你的MySQL引擎足够更新,你可能想看看InnoDB的行压缩(这可能会使数据库操作更慢):
- http://dev.mysql.com/doc/innodb/1.1/en/innodb-row-format-dynamic.html
- http://dev.mysql.com/doc/refman/5.5/en/innodb-compression-usage.html
如果您想要节省空间,请尝试查看mysql的"ARCHIVE"引擎。它确实有一些限制,因为表上只能有一个索引,一旦数据出现就不能"更新",但它非常快速,对存档数据非常有用(顾名思义)。
可能还有其他节省空间的方法,比如压缩字段中的数据,但这需要小心,尤其是如果您打算在这些压缩字段上搜索。