SqlServer中创建非聚集索引和非聚集索引
聚集索引与非聚集索引,其实已经有很多的文章做过详细介绍。
非聚集索引
简单来说,聚集索引是适合字段变动不大(尽可能不出现Update的字段)、出现字段重复率小的列,因为聚集索引是对数据物理位置相同的索引,所以一张表中只能出现一个聚集索引。
聚集索引的特征:代表全部数据存储的位置索引,不能经常去更新这个字段,最好不出现重复。
聚集索引
非聚集索引也有很多人叫法上细分为唯一索引、全文索引、普通索引,我们在进项条件查询时,作为条件过滤的字段通常被设置为非聚集索引,这样就不需要去读取原始记录,直接查询索引将大大的节省时间。
非聚集索引的特征:不影响数据存储的物理顺序,对字段的修改、删除、新增来说影响不大,这样我们就可以把常错做的字段并且有需要快速查询的字段定位非聚集索引
不正确建聚集索引的影响:可能会导致每次插入数据都要重新编排索引位置,导致数据的写入极慢。
创建聚集索引
Use log CREATE CLUSTERED INDEX 索引名 on 表名(字段名)--创建聚集索引
创建非聚集索引
Use log--使用的库 CREATE NONCLUSTERED INDEX 索引名称 --创建非聚集索引名称 ON 表名(字段名) --为LogSearch表的Keywords字段创建索引 WITH FILLFACTOR = 30 --填充因子为30% GO
最后这个填充因子主要是在一些字段中我们可以根据读写比例来灵活调整,以便更大的发挥出索引的特性。
填充因子可以参考:
低更改的表(读写比率为100:1):100%的填充因子
高更改的表(写超过读):50-70%的填充因子
读写各一半的:80-90%的填充因子
略懂,略懂....