当前位置:  开发笔记 > 后端 > 正文

字段大小会影响查询时间吗?

如何解决《字段大小会影响查询时间吗?》经验,为你挑选了2个好方法。

我的问题是关于MySQL,但我也想知道这会如何影响其他数据库.我有几个领域,varchar(255)但我的同事坚持,如果他们varchar(30)- 或任何较小的规模 - 然后查询会运行得更快.我不太确定,但如果是这样的话,我会承认.



1> acrosman..:

这取决于查询和数据,但你可能很快就会优化甚至担心.

对于SELECT查询,语句本身将在MySQL中以相​​同的速度运行,并且只要数据不会比在较小大小的字段中大,那么它将以快速传输.如果较小的字段强制您将信息存储在较小的空间中(您是否会使用额外的225个字符?),那么您将快速传输到其他程序.

对于INSERT查询,字段的大小不是问题,但使用可变长度字段将减慢完成的过程.具有固定长度行的INSERT明显更快(至少在MySQL 5.0及更早版本中).

通常,使用数据所需的大小.如果您不知道是否需要255个字符或30个字符,那么您可能很快就会优化.大数据领域是否会造成瓶颈?您是否编程遭受数据库性能问题?首先找到你的瓶颈,然后用他们解决问题.我猜你在这里看到的时间差异对于你要解决的问题并不重要.



2> Bill Karwin..:

这里的大多数其他答案都集中在VARCHAR以可变长度方式存储的事实,因此它存储您在给定行上输入的字符串的字节数,而不是字段的最大长度.

但是在查询期间,在某些情况下MySQL会将VARCHAR转换为CHAR - 因此大小会达到最大长度.例如,当MySQL在某些JOIN或ORDER BY或GROUP BY操作期间创建临时表时,就会发生这种情况.

告诉所有这样做的情况很复杂,因为它取决于优化器如何处理查询,它取决于您定义的其他表结构和索引,它取决于查询的类型,甚至取决于版本的MySQL因为每个版本都改进了优化器.

简短的回答是肯定的,无论你使用VARCHAR(255)还是VARCHAR(30),它都会有所不同.因此,根据您的需要定义列最大长度,而不是为了传统而定义像255这样的"大"长度.

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有