2011-03-30 115 views
3

我的網站需要存儲每次訪問mysql的ip和時間戳。我擔心很快我會在我的數據庫中有1e6行。什麼是壓縮日期的最佳方式?

在mysql或java上壓縮日期的最佳方式是什麼? mysql是否已經壓縮日期?理想情況下,我想快速解壓縮日期值以生成報告。

更新:對不起,我的意思是每天有一個密爾。但我想這還是微不足道的。

+2

日期的大小是每天記錄的數量最少的存儲問題。 – Wes 2011-03-30 05:03:23

回答

2

大副,百萬行是微小數據庫。我不會擔心太多。在任何情況下,MySQL使用一個相當壓縮格式(3個字節)反正按this page

DATE: A three-byte integer packed as DD + MM×32 + YYYY×16×32 

換句話說,在比特級別(基於1000-01-01 thru 9999-12-31範圍):

00000yyy yyyyyyym mmmddddd 
+0

100萬行= 3MB左右(數據碎片等) – 2011-03-30 04:30:03

+0

@Yanick - 爲每個IP地址添加一個額外的4字節值。但是,按照今天的標準,這是一個很小的存儲量。 – 2011-03-30 04:34:21

1

使用內置的MySQL日期時間類型。一百萬行並不是那麼多。

+0

1E6是1x10^6或100,000 ... – 2011-03-30 04:21:14

+5

10^6 = 1百萬。 – yan 2011-03-30 04:22:56

+0

ops,我的意思是每天有一個密爾,但是我明白了,謝謝 – somid3 2011-03-30 04:43:15

1

一個MySQL時間戳將只有4個字節。表示時間戳的整數將是相同的。因爲您可以高效地基於該列進行索引和/或查詢,所以將其保存爲mysql類型會很有效。

任何「壓縮」形式不是mysql類型將是低效的查詢。

相關問題