有没有任何方法可以在mysql中保存“数据尽可能小”


Is there any way to save Data as Small as Possible in mysql

我正在使用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"引擎。它确实有一些限制,因为表上只能有一个索引,一旦数据出现就不能"更新",但它非常快速,对存档数据非常有用(顾名思义)。

可能还有其他节省空间的方法,比如压缩字段中的数据,但这需要小心,尤其是如果您打算在这些压缩字段上搜索。