WEB开发网
开发学院数据库MySQL Mysql入门系列:选择MYSQL列的类型 阅读

Mysql入门系列:选择MYSQL列的类型

 2006-12-31 10:47:37 来源:WEB开发网   
核心提示: 2.3.3 性能与效率问题列类型的选择会在几个方面影响查询性能,如果记住下几节讨论的一般准则,Mysql入门系列:选择MYSQL列的类型(8),将能够选出有助于MySQL有效处理表的列类型,1. 数值与串的运算数值运算一般比串运算更快,如果存储的值长度永远不会超过6 4 K B,使用BLO

2.3.3 性能与效率问题

列类型的选择会在几个方面影响查询性能。如果记住下几节讨论的一般准则,将能够选出有助于MySQL有效处理表的列类型。

1. 数值与串的运算

数值运算一般比串运算更快。例如比较运算,可在单一运算中对数进行比较。而串运算涉及几个逐字节的比较,如果串更长的话,这种比较还要多。如果串列的值数目有限,应该利用ENUM 或SET 类型来获得数值运算的优越性。这两种类型在内部是用数表示的,可更为有效地进行处理。例如替换串的表示。有时可用数来表示串值以改进其性能。例如,为了用点分四位数(d o t t e d - q ua d)表示法来表示IP 号,如19 2 . 16 8 . 0 . 4,可以使用串。但是也可以通过用四字节的UNSIGNED 类型的每个字节存储四位数的每个部分,将IP 号转换为整数形式。这即可以节省空间又可加快查找速度。但另一方面,将IP 号表示为INT 值会使诸如查找某个子网的号码这样的模式匹配难于完成。因此,不能只考虑空间问题;必须根据利用这些值做什么来决定哪种表示更适合。

2. 更小的类型与更大的类型

更小的类型比更大的类型处理要快得多。首先,它们占用的空间较小,且涉及的磁盘活动开销也少。对于串,其处理时间与串长度直接相关。一般情况下,较小的表处理更快,因为查询处理需要的磁盘I/O 少。对于定长类型的列,应该选择最小的类型,只要能存储所需范围的值即可。例如,如果MEDIUMINT 够用,就不要选择B I G I N T。如果只需要FLOAT精度,就不应该选择D O U B L E。对于可变长类型,也仍然能够节省空间。一个BLOB 类型的值用2 字节记录值的长度,而一个LONGBLOB 则用4 字节记录其值的长度。如果存储的值长度永远不会超过6 4 K B,使用BLOB 将使每个值节省2 字节(当然,对于TEXT 类型也可以做类似的考虑)。

上一页  3 4 5 6 7 8 9 10  下一页

Tags:Mysql 入门 系列

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接