mysql欄位型別優化
阿新 • • 發佈:2019-01-03
選型原則:在保證足夠用的前提下儘量選擇最小型別!
整型資料優化
①儲存人的年齡應該使用哪種資料型別?答:使用tinyint型別(無符號型)
②儲存烏龜的年齡應該使用哪種資料型別?答:使用smallinit型別(無符號型)
③儲存一個1500萬資料的資料表其主鍵id應該選擇哪種資料型別?答:使用mediumint(無符號型),大約在0-1600萬左右
①考慮空間問題
②考慮範圍問題(unsigned無符號)
字串型別優化
char(length)佔用的空間為 固定的,與內容多少無關;
varchar(length)佔用的空間為 實際內容字元個數*位元組 + 1①如果要儲存一個11位的手機號碼?答:選擇
②如果要儲存一個32位的md5加密密碼?答:選擇char(32)比較合適
③如果要儲存一個使用者名稱或一個標題,由於不確定具體要存放多少個字元,為了避免空間的浪費建議使用varchar型別。
④如果要儲存一個描述資訊(不超過250個漢字),使用varchar(255)比較合適。
如果要儲存一個文字資訊(文章內容),其超過了255個字元,建議使用text文字型別。
時間型別優化
在實際應用中,由於date型別主要用於儲存時間資訊,但是在php中,我們有相關的函式可以對整型資料和時間進行轉化,所以實際應用中,大部分情況儲存時間都是轉化為整型資料直接儲存的5、列舉型別與集合型別
如果程式中有單選或多選情況,不建議使用varchar型別,而建議使用列舉型別或集合型別。
6、IP型別資料的儲存
經常要儲存IP地址,這個時候不建議使用varchar型別來儲存資料,而建議使用整型來儲存IP資訊
//php中ip轉整形
echo ip2long("192.168.1.1");
//整形轉ip
echo long2ip(3232235777);