MsSQL   发布时间:2022-05-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了sql – 基于列的顺序查询速度大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
数据库中列类型的顺序对查询时间有任何影响吗?

例如,具有混合排序(INT,TEXT,VARCHAR,INT,TEXT)的表与具有连续类型(INT,TEXT)的表相比,查询速度较慢

解决方法

答案是肯定的,它是重要的,它可以很重要,但通常不会太多.

所有I / O都是在页面级别(通常为2K或4K,取决于您的操作系统)完成.行的列数据彼此相邻存储,除非页面变满,在这种情况下,数据将写入另一个(通常是下一个)页面.

列之间的列(基于表定义)所选列所需的磁盘数据空间越大,所选列的数据(有时)(有时)在不同页面上的机会就越大.在不同的页面上可能会导致额外的I / O操作(如果在其他页面上没有选择其他行).在最坏的情况下,您选择的每个列可能位于不同的页面上.

这里有一个例子:

@R_772_2102@ bad_layout (
num1 int,large1 varchar(4000),num2 int,large2 varchar(4000),num3 int,large3 varchar(4000)
);

@R_772_2102@ better_layout (
num1 int,large3 varchar(4000)
);

比较:
从bad_layout中选择num1,num2,num3;
从better_layout中选择num1,num3;

因为对于bad_layout,每个num列基本上都在不同的页面上,每行都需要3个I / O操作.相反,对于better_layout,num列通常位于同一页面上.

bad_layout查询可能需要大约3倍的时间才能执行.

良好的表布局可以大大改善查询性能.您应该尝试将通常选择在一起的列尽可能靠近表格布局中的彼此.

大佬总结

以上是大佬教程为你收集整理的sql – 基于列的顺序查询速度全部内容,希望文章能够帮你解决sql – 基于列的顺序查询速度所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。