本文详细介绍Mysql入门系列:选择MYSQL列的类型
2.3 选择列的类型
上一节描述了各种可供选择的MySQL的列类型及其属性,以及它们可存储的各种值,所占用的存储空间等等。但是在实际创建一个表时怎样决定用哪些类型呢?本节讨论在做出决定前应考虑的各种因素。最“常用”的列类型是串类型。可将任何数据存储为串,因为数和日期都可以串的形式表示。但是为什么不将所有列都定义为串从而结束这里的讨论呢?让我们来看一个简单的例子。假定有一些看起来像数的值。可将它们表示为串,但应该这样做吗?这样做会发生什么事?
有一桩事不可避免,那就是可能要使用更多的空间,因为较串来说,数的存储更为有效。我们可能已经注意到,由于数和串处理方式的不同,查询结果也有所不同。例如,数的排序与串的排序就有所不同。数2 小于数11,但串“2”按字典顺序大于“ 11”。可用如下数值内容的列来搞清这个问题:

将零加到该列强制得出一个数值,但是这样合理吗?一般可能不合理。将该列作为数而不是串具有几个重要的含义。它对每个列值实施串到数的转换,这是低效的。而且将该列的值转换为计算结果妨碍MySQL使用该列上的索引,降低了以后的查询速度。如果这些值一开始就是作为数值存储的,那么这些性能上的降低都不会出现。采用一种表示而不用另一种的简单选择实际上并不简单,它在存储需求、查询效率以及处理性能等方面都会产生重要的影响。
前面的例子说明,在选择列类型时,有以下几个问题需要考虑:
■ 列中存储何种类型的值?这是一个显而易见的问题,但必须确定。可将任何类型的值表示为串,尤其当对数值使用更为合适的类型可能得到更好的性能时(日期和时间值也是这样)。可见,对要处理的值的类型进行评估不一定是件微不足道的事,特别在数据是别人的数据时更是如此。如果正在为其他人建立一个表,搞清列中要存储的值的类型极为重要,必须提足够多的问题以便得到作出决定的充足的信息。
责编:豆豆技术应用
- 教你轻松的掌握 连接字符集和校对
- 轻松掌握字符串文字字符集和校对
- 校对确定 较为复杂的一些特殊情况
- 带你轻松的接触用于Mysql元数据的UTF8
- 教你轻松了解MySQL数据库中的CONVERT()
- 教你轻松了解MySQL数据库中的结果字符串
- 带你轻松接触Mysql校对效果的示例
- Windows下对MySQL安装的故障诊断与排除
- 快速掌握怎样选择准备安装的MySQL版本
- 教你轻松掌握MaxDB和MySQL之间的协同性