mysql 數據類型優化(四)

1、選擇標識符函數

    一旦選定了一種類型,要確保在全部關聯中都使用一樣的類型,類型之間須要精確匹配,包括像UNSIGNED這樣的屬性。
spa

    問題:在比較操做時隱式的類型轉換也可能致使很難發現的錯誤。
字符串

    (1)整數:一般是標識列最好的選擇,由於它他們很快而且可能使用AUTO_INCREMENT.
select

    (2)ENUM和SET類型:一般是是不能用的。
數據類型

    (3)字符串類型:若是可能,應該避免使用字符串類型做爲標識列,由於它們很消耗空間,而且一般比數字類型慢。
方法

        對於徹底「隨機」的字符串也須要多加註意,例如MD5(),SHA1()或者UUID()產生的字符串。這些函數生成的新值會作生意分佈在很大的空間內,這會致使INSERT以及一些SELECT語句變得很慢。
數據

    若是存儲UUID值,則應該移除「-」符號;或者更好的作法是,用UNHEX()函數轉換UUID()值爲16字節的數字,而且存儲在一個BINARY(16)列中,檢索時能夠經過HEX()函數來格式化十六進制格式。
類型轉換

2、特殊數據類型字符

    IPv4地址。人們經常使用VARCHAR(15)列來存儲IP地址。然而,它們其實是32們無符號整數,不是字符串。用小數點將地址分紅四段的表示方法只是讓人們閱讀容易 。因此應該用無符號整數 存儲IP地址。MySQL提供INET_ATON()和INET_NTOA()函數在這兩種表示方法之間轉換。數字

    例:select inet_aton('192.168.222.255');  輸出:3232292607

            select inet_ntoa(3232292607);        輸出:192.168.222.255

相關文章
相關標籤/搜索