当前位置:  开发笔记 > 编程语言 > 正文

数据库可变长度文本字段应该是2的幂吗?

如何解决《数据库可变长度文本字段应该是2的幂吗?》经验,为你挑选了3个好方法。

我的一位朋友声称,在典型的数据库中,使用(例如)nvarchar[256]将比页面分配的粒度更好nvarchar[200]或更好地提供性能nvarchar[250].

这有什么道理吗?

谢谢!



1> Sean Reilly..:

这不是真的.表以8k页的形式分配在磁盘上.从磁盘读取表时,将在一个IO操作中读取整个页面并将其存储在内存中.因此,列的长度根本不会影响内存对齐.实际上,对于非可变长度数据类型,更短的肯定更好:nchar(200)列将允许每页比nchar(256)列更多的行.这允许每个物理IO读取更多行,这可能对数据库性能产生巨大影响.



2> MusiGenesis..:

不,没有.



3> Rob Walker..:

如果由于分配开销可能更糟糕的话.当您分配nvarchar(256)时,数据库可能包含两个字节的长度,因此存储要求实际上可能是258.

这里有很多层次的抽象,你不会看到任何好处,试图在顶部优化只在最底层的事情,你可能会让事情变得更糟!

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