【学习笔记】选择标识符

来源:互联网 发布:ubuntu 查看系统日志 编辑:程序博客网 时间:2024/05/16 09:12

本文属于读书笔记,大部分内容摘抄于《高性能MYSQL》,摘抄内容版权属于原作者。


为标识列选择合适的数据类型非常重要。一般来说更可能用标识列与其他值进行比较(例如股关联操作中),或者通过标识列寻找其他列。标志列也可能在另外的表中作为外键使用,所以为标识列选择数据类型时,应该选择跟关联表中的对应列一样的类型。

  • 整数类型通常是标识列最好的选择,因为它们很快并且可以适用AUTO_INCREMENT。如果只是少数的状态标识符可以选用TINYINT。
  • ENUM和SET类型通常是一个糟糕的选择,尽管对某些只包含固定状态或者类型的静态“定义表”来说可能是没有问题大。ENUM和SET列适合存储固定信息,这样就相对限制了可扩展性
  • 如果可能应该尽量避免使用字符串类型作为标识列,因为他们很耗空间,并且通常比数字类型慢。

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