Mysql 資料類型最佳化

來源:互聯網
上載者:User

標籤:

一、日期與時間類型

    MySQL 可以使用許多類型來儲存日期和時間值。

    如:YEAR和DATE。MySQL能儲存的最小時間粒紋為秒(MariaDB支援微秒層級的時間類型)。但是MySQL也可以使用微妙級的粒度進行臨時運算,我們會展示怎麼繞開這種儲存限制。

    DATETIME

        這個類型能儲存大範圍的值,從1001年到9999年,精度為秒。它把日期和時間封裝到格式為YYYYMMMDDHHHMMSS的整數中,與時區不轉換。使用8個位元組的儲存空間。

預設情況下,MySQL以一種可排序的無歧義的格式顯示 DATETIME值,例如“2015-10-24 09:57:33”.這是ANSI標準定義的日期和時間表示方法。

    TIMESTAMP

    就像它的名字一樣,TIMESTAMP類型儲存了1970年1月1日0點(格林尼治標準時間)以來的秒數,它和UNIX時間戳記相同。TIMESTAMP只使用4個位元組的儲存空間,因此它的範圍比DATETIME小的多:只能儲存 1970 到 2038年。

如果在多個時區儲存或訪問資料,TIMESTAMP和DATETIME的行為將很不一樣。

TIMESTAMP提供的值與時區有關係,後者剛保留文本表示的日期和時間。

也可以指定TIMESTAMP的  添加 與更新的行為,TIMESTAMP列的預設為NOT NULL

除了特殊的行為之外 ,通常也應該盡量用TIMESTAMP,因為它比DATETIME空間效率更高有時候人們會將Unix時間戳記儲存為整數值,但這不會帶來任何收益。用整數儲存時間戳記的格式通常不方便處理,所以不推薦這樣做。


如果需要儲存比秒更小的粒度日期和時間怎麼辦?

MySQL目前沒有提供合適的資料類型,但是可以通過使用自己的格式儲存: 可以使用BIGINT類型儲存微層級的時間戳記,或者使用DOUBLE儲存秒之後的小數部分。這兩種方式,都可以,或者可以使用MariaDB替代MySQL




Mysql 資料類型最佳化

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.