使用正确数据类型的性能优势

时间:2016-04-12 14:36:45

标签: mysql performance optimization

使用列所需的确切数据类型是否有任何性能优势?或者只是存储优化?

例如,我正在创建一个用户表,我确信总共只有200个用户。当我操作服务器中的数据时,执行一些select / update / insert / delete,对于users_id列使用TINYINT - UN或仅使用INT之间是否有任何性能差异?

这同样适用于用户的名字。我知道,目前,名字长度最长的用户是48,但我不知道将来是否会有一个新用户插入名称长度为65个字符的表中。目前使用VARCHAR(48)仅保留所需的长度是否有任何性能优势,或者我是否可以避免不断检查每个新用户的列允许长度并仅使用VARCHAR(255)

1 个答案:

答案 0 :(得分:2)

两种情况都没有什么优势。

对于这个数字,您确实获得了轻微的性能优势。通常,整数为4,tinyint为1个字节。因此,如果您有多个较小的字段,那么您的记录将会更小。较小的记录意味着更少的数据页面,最终的查询速度稍快。当你开始有大量记录时会显示。

对于varchar,你甚至不具备这种优势。 varchar(48)varchar(255)都占用相同的空间(长度大于255时,有一个加法字节)。值确定此数据类型的空间。

在其他情况下,它可以产生很大的不同。特别是,将日期存储为本机格式通常很重要,既可以利用日期/时间功能,也可以更好地利用索引。