-
索引与表
这里以汉语字典为例,将一个数据表想像成一本字典。
字典是拼音顺序编排印刷每个汉字的详细解释的,这里拼音相当于字典这个表的聚集索引。由于与物理存储相关,显然表只能有一个聚集索引。
字典目录中笔画顺序就是一种非聚集索引,每个笔画顺序记录了对应汉字的详细解释的页码。
-
使用索引不一定就快
对手的评价才更客观。从反方向理解索引的作用。
当数据表中的数据行很少,或读取的数据量超过总量的50%以上,很可能查找索引就显得多余了,还不如直接访问数据表来得快。
当数据列的重复值较多时,建立索引提高查找速度也就不大可能了。这让我联想到拼音或五笔输入法中遇到了重码太多的情形。
-
底层查询基本方式
注:创建索引时,使用Include语句,可以将常用的数据列的缓存到索引。
-
底层查询优化机制
查询优化分析器 Query Optimizer: 当我们执行查询命令时,查询优化器自动选择合理的底层查询基本方式。
注: SELECT * FROM TABLE WITH(INDEX(Index_Name))强制使用索引。
-
更多内容
Sql Server 2017 非聚集的 索引的最大键长度为 1700 个字节
创建索引时,收到SQLSERVER 2017 警告:非聚集的 索引的最大键长度为 1700 个字节。为XXX创建的索引的最大长度为 XXXX 个字节。
以上