1. 程式人生 > >mysql欄位型別優化

mysql欄位型別優化

選型原則:在保證足夠用的前提下儘量選擇最小型別!

整型資料優化

儲存人的年齡應該使用哪種資料型別?答:使用tinyint型別(無符號型)

儲存烏龜的年齡應該使用哪種資料型別?答:使用smallinit型別(無符號型)

儲存一個1500萬資料的資料表其主鍵id應該選擇哪種資料型別?答:使用mediumint(無符號型),大約在0-1600萬左右

①考慮空間問題

②考慮範圍問題(unsigned無符號)

字串型別優化

char(length)佔用的空間為 固定的,與內容多少無關;

varchar(length)佔用的空間為 實際內容字元個數*位元組 + 1

如果要儲存一個11位的手機號碼?答:選擇

char11)比較合適

如果要儲存一個32位的md5加密密碼?答:選擇char32)比較合適

如果要儲存一個使用者名稱或一個標題,由於不確定具體要存放多少個字元,為了避免空間的浪費建議使用varchar型別。

如果要儲存一個描述資訊(不超過250個漢字),使用varchar255)比較合適。

如果要儲存一個文字資訊(文章內容),其超過了255個字元,建議使用text文字型別。

時間型別優化

在實際應用中,由於date型別主要用於儲存時間資訊,但是在php中,我們有相關的函式可以對整型資料和時間進行轉化,所以實際應用中,大部分情況儲存時間都是轉化為整型資料直接儲存的

5、列舉型別與集合型別

如果程式中有單選或多選情況,不建議使用varchar型別,而建議使用列舉型別或集合型別。

6、IP型別資料的儲存


經常要儲存IP地址,這個時候不建議使用varchar型別來儲存資料,而建議使用整型來儲存IP資訊

//php中ip轉整形

echo ip2long("192.168.1.1");

//整形轉ip

echo long2ip(3232235777);