码迷,mamicode.com
首页 > 数据库 > 详细

mysql 数据类型优化(四) ---选择标识符,特殊类型数据

时间:2015-10-26 20:55:56      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:

一、选择标识符

    一旦选定了一种类型,要确保在所有关联中都使用同样的类型,类型之间需要精确匹配,包括像UNSIGNED这样的属性。

    问题:在比较操作时隐式的类型转换也可能导致很难发现的错误。

    (1)整数:通常是标识列最好的选择,因为它他们很快并且可能使用AUTO_INCREMENT.

    (2)ENUM和SET类型:通常是是不能用的。

    (3)字符串类型:如果可能,应该避免使用字符串类型作为标识列,因为它们很消耗空间,并且通常比数字类型慢。

        对于完全“随机”的字符串也需要多加注意,例如MD5(),SHA1()或者UUID()产生的字符串。这些函数生成的新值会做生意分布在很大的空间内,这会导致INSERT以及一些SELECT语句变得很慢。

    如果存储UUID值,则应该移除“-”符号;或者更好的做法是,用UNHEX()函数转换UUID()值为16字节的数字,并且存储在一个BINARY(16)列中,检索时可以通过HEX()函数来格式化十六进制格式。

二、特殊数据类型

    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

mysql 数据类型优化(四) ---选择标识符,特殊类型数据

标签:

原文地址:http://my.oschina.net/lavedream/blog/522289

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!