2012-03-20 149 views
0

我正在開發一個使用PHP和MySQL的Web應用程序。我想知道有什麼方法可以在MySQL中儘可能保存數據儘可能小?有沒有什麼辦法可以將數據保存爲儘可能小mysql

+1

你想在硬盤上節省空間嗎?你會有瘋狂的日期存儲的數量?你會在該日期前索引嗎?你需要什麼精度?天,秒,分,納秒?您想存儲的最小/最大日期? – biziclop 2012-03-20 07:24:47

+0

小尺寸或長度? – 2012-03-20 07:26:16

+0

@biziclop不,我只是想要小數據文件 – 2012-03-20 07:26:59

回答

2

這裏是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的行壓縮(這可能使數據庫操作,雖然速度較慢):

1

如果節省空間,您可以嘗試查看mysql的「ARCHIVE」引擎。它確實有一些限制,因爲你只能在表上有1個索引,並且你不能在數據到達之後「更新」數據,但是它對於(正如名字所暗示的)數據歸檔非常快速和有用。

也可能有其他方法來節省空間 - 就像壓縮字段本身的數據一樣,但這需要特別小心,特別是如果您打算在這些壓縮字段上進行搜索。

相關問題