mysql 資料類型最佳化

來源:互聯網
上載者:User

標籤:

  1. 更小的通常更好

  2. 簡單就好

  3. 盡量避免null 

一、整數類型

    有兩種類型的數字 :整數和實數。如果儲存整數,可以使用這幾種整數類型:TINYINT,SMALLINT,DEDIUMINT,INT,BIGINT.分別使用8,16,24,32,64位儲存空間。

使用UNSIGNED屬性,表示不允許複製,這大致可以例正數的上限提高一倍。

二、實數類型

    實數是帶有小數部分的數字。然而,它們 不只是為了儲存小數部分;也可以使用DECIMAL儲存比BIGINT還大的整數。MySQL既支援精確類型,也支援不精確類型。

DECIMAL類型用於儲存精確的小數。因為需要額外的空間和計算開銷,所以應該盡量只在對小數進行精確計算時才使用DECIMAL--例如儲存財務資料。但在數量比較大的時候,可以考慮使用BIGINT代替DECIMAL,將需要儲存的貨幣單位根據小數的位元乘以相應的倍數即可。假設要儲存財務資料精確到萬分之一分,則可以反所有金額乘以一百萬,然後將結果儲存在BIGINT裡這樣可以同時避免浮點計算不精確和DECIMAL精確計算代價高的問題。

三、字串類型

    VARCHAR和CHAR是兩種最主要的字串類型。

    VARCHAR類型用於儲存可變長字串,如果MySQL表使用了ROW_FORMAT=FIXED建立的話,每一行都會使用定長儲存,這會很浪費空間。VARCHAR需要使用1或2個額外的位元組記錄字條串的長度

    CHAR類型是定長,CHAR適合儲存很短的字串,或者所有值都接近同一個長度。比如MD5值,因為這是一個定長的值。

對於經常變更的資料,CHAR也比VARCHAR更好,因為定長的CHAR 類型不容易產生片段。

   慷慨是不明知的:

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.