【发布时间】:2013-01-17 17:38:29
【问题描述】:
列长度的乘数是否会以某种方式影响数据库性能?
也就是说,下面两张表的表现有什么区别:
TBL1:
- CLMN1 VARCHAR2(63)
- CLMN2 VARCHAR2(129)
- CLMN3 VARCHAR2(250)
和
TBL2:
- CLMN1 VARCHAR2(64)
- CLMN2 VARCHAR2(128)
- CLMN3 VARCHAR2(256)
我们是否应该始终尝试使列的长度达到2 的某个幂,还是只考虑最大大小?
一些开发人员声称数据库中列长度的乘法因子之间存在某种联系,因为它影响 Oracle 如何在磁盘上分配和保存数据以及共享其在内存中的缓存。有人可以证明或反驳这一点吗?
【问题讨论】:
-
你试过性能测试了吗?
-
没有。我想知道如果存在差异,理论上的解释是什么。因为很多时候开发人员喜欢分配二进制供电的列长度(64、128 ...)。我想知道为什么?它真的会以某种方式影响吗?
-
您认识的开发人员可能正在考虑哈希分区it's recommended that the number of partitions is a power of 2
-
@Ben 谢谢你,这是一篇有价值的文章。但我还不明白:这个分区和列长度之间有什么联系吗?
-
无@Andremoniy,这就是为什么这不是答案。我猜您认识的开发人员可能将分区与列长度混淆,因此(我没有对此进行测试或看到任何表明它是对/错的东西,尽管我相信 i> 这是错误的)
标签: oracle database-design database-performance