ENUM类型在系统内部可以存储为数字,并且从1开始用数字做索引。一个ENUM类型最多可以包含65536个元素,其中一个元素被MySQL保留,用来存储错误现的值是合法输入,除此之外其它任何输入都将失败。这说明通过搜索包含空字符串或对应数字索引为0的行就可以很容易地找到错误记录的位置。
(2)SET类型
SET(“member", "member2″, … “member64″)
SET数据类型为指定一组预定义值中的零个或多个值提供了一种方法,这组值最多包括64个成员。值的选择限制为列定义中声明的值。
SET类型与ENUM类型相似但不相同。SET类型可以从预定义的集合中取得任意数量的值。并且与ENUM类型相同的是任何试图在SET类型字段中插入非预定义的值都会使 MySQL插入一个空字符串。如果插入一个即有合法的元素又有非法的元素的记录,MySQL将会保留合法的元素,除去非法的元素。
一个 SET 类型最多可以包含64项元素。在SET元素中值被存储为一个分离的“位”序列,这些“位”表示与它相对应的元素。“位”是创建有序元素集合的一种简单而有效的方式。并且它还去除了重复的元素,所以SET类型中不可能包含两个相同的元素。希望从SET类型字段中找出非法的记录只需查找包含空字符串或二进制值为0的行。
复合数据类型的例子我们会在以后的博文中使用到,这里不再进行举例。
五、总结
通过对每种数据类型的用途,物理存储,表示范围等有一个概要的了解。这样在面对具体应用时,就可以根据相应的特来来选择合适的数据类型,使得我们能够争取在满足应用的基础上,用较小的存储代价换来较高的数据库性能。
选用数据类型的原则:
1)选择最小的可用的类型;
2)从速度方面考虑,选择固定的列 使用CHAR类型;
3)从节省空间考虑,选择动态的列,使用VARCHAR类型。
高性能数据库设计原则:
第一步:大致确定字段的数据类型,数字,字符串,时间等,比较直观。
第二步:确定特定的类型,比如说 :数字里有TINYINT、SMALLINT、INT、LONGINT等,选择最合适的一个(更小通常更好)
第三步:如有必要,请为字段设置默认值。
当然,索引优化肯定是必不可少的,不过这属于设计表完成之后的优化范围了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易采站长站。










