SQL Server索引的四个高级特性
作者:网络转载 发布时间:[ 2013/3/28 11:30:03 ] 推荐标签:
Include Column组合索引数据存储结构示例:
.png)
SQLServer管理器的SQL优化自动索引推荐经常看到推荐Include Column方式。
MySQL:不支持,只能用组合索引代替
Oracle:不支持,只能用组合索引代替
三、聚集索引(Cluster Index)
数据库通常用两种存储方式,一种是堆表,即表中的数据是基本无序的,像往一个房间(数据块)堆箱子(记录)一样,只要有空间往里面放,放满了准备一个新房间再放。

另外一种是聚集存储,数据按表中一个或几个字段排序存储,如下图所示。

由于要排序,需要索引来保证效率,所以聚集存储和聚集索引存储通常指一个意思。
SQLServer
如果表没有主键默认为堆表,如果有主键默认为按主键聚集存储。SQLServer支持非主键索引聚集存储,这个特性非常有意义,比如订单表有订单ID(主键)和会员ID,如果按订单ID聚集存储,由于订单ID一般都是随机访问,返回单条记录,所以对按订单ID查询没有什么性能提高。假设需按会员ID查询,一个会员有许多订单,分页一次返回20条,那需要20次离散数据访问。
如果可以按会员ID聚集存储,那用会员ID查询可能只需要1次离散数据访问可以,性能可以提升很多,这种方式对订单插入有一些性能影响,如果订单插入不多,按会员查询频繁,那按会员ID建聚集索引给用订单ID聚集效果很好。

sales@spasvo.com