6 个解决方案
#1
如果你select出来的列中没有含有index中包含的列的话,会进行全表扫描,速度就会很慢。
难道你的表格没有PK列?如果有PK列,会对PK列自动生成index,select *的时候包含PK列,应该不会慢,除非数据量很大。
难道你的表格没有PK列?如果有PK列,会对PK列自动生成index,select *的时候包含PK列,应该不会慢,除非数据量很大。
#2
字段大PAGE就多,扫描时间就会长。
#3
每个索引页固定大小为8K,字段大,那么就要更多的索引页来存放,而影响索引速度的其中一个最重要的因素是B树的层级,索引页越多,层次越多,需要查找、扫描的范围就广。自然影响性能。这个解释仅仅针对你的count问题,字段大还有其他一系列的问题,如维护成本的增加、碎片增加的速度等。
#4
我的理解是索引页不是和记录条数有关吗,跟每条记录的大小没关系吧?
#5
首先要看你的索引是什么类型,聚集索引存放的其实是整个数据表,字段宽了,索引自然就大了。的确和行数有关系,我现在是假定同样的行数下,字段越宽,每页存放的数据就越少,需要的索引页就越多
#6
非常感谢。
#1
如果你select出来的列中没有含有index中包含的列的话,会进行全表扫描,速度就会很慢。
难道你的表格没有PK列?如果有PK列,会对PK列自动生成index,select *的时候包含PK列,应该不会慢,除非数据量很大。
难道你的表格没有PK列?如果有PK列,会对PK列自动生成index,select *的时候包含PK列,应该不会慢,除非数据量很大。
#2
字段大PAGE就多,扫描时间就会长。
#3
每个索引页固定大小为8K,字段大,那么就要更多的索引页来存放,而影响索引速度的其中一个最重要的因素是B树的层级,索引页越多,层次越多,需要查找、扫描的范围就广。自然影响性能。这个解释仅仅针对你的count问题,字段大还有其他一系列的问题,如维护成本的增加、碎片增加的速度等。
#4
我的理解是索引页不是和记录条数有关吗,跟每条记录的大小没关系吧?
#5
首先要看你的索引是什么类型,聚集索引存放的其实是整个数据表,字段宽了,索引自然就大了。的确和行数有关系,我现在是假定同样的行数下,字段越宽,每页存放的数据就越少,需要的索引页就越多
#6
非常感谢。