非聚集索引
聚集索引是适合字段变动不大,尽量不要出现Update中使用的字段、出现字段重复率小的列,因为聚集索引是对数据物理位置相同的索引,所以一张表中只能出现一个聚集索引。
[聚集索引的特征]:代表全部数据存储的位置索引,不能经常去更新这个字段,最好不出现重复。
聚集索引
非聚集索引叫法上细分为唯一索引、全文索引、普通索引,我们在进项条件查询时,作为条件过滤的字段通常被设置为非聚集索引,这样就不需要去读取原始记录,直接查询索引将大大的节省时间。
[非聚集索引的特征]:不影响数据存储的物理顺序,对字段的修改、删除、新增来说影响不大,这样我们就可以把常错做的字段并且有需要快速查询的字段定位非聚集索引
**不正确建聚集索引的影响:**可能会导致每次插入数据都要重新编排索引位置,导致数据的写入极慢;
创建索引举例
CREATE CLUSTERED INDEX [ID] --创建聚集索引
ON [dbo].CodeAPN (ID)
WITH FILLFACTOR = 30 --填充因子为30%
–为[CodeAPN表的ID字段创建聚集索引
CREATE NONCLUSTERED INDEX [Name] --创建非聚集索引
ON [dbo].CodeAPN
WITH FILLFACTOR = 30 --填充因子为30%
–为[CodeAPN表的Name字段创建索引
修改索引
ALTER INDEX ALL ON CodeAPN
REBUILD WITH (FILLFACTOR=60,
SORT_IN_TEMPDB=ON,
STATISTICS_NORECOMPUTE=ON)
–更新CodeAPN表所有的索引
–填充因子 FILLFACTOR
–创建或重新生成索引时,通过将SORT_IN_TEMPDB选项设置为 ON,可以将SQL Server数据库引擎定向到使用tempdb来存储用于生成索引的中间排序结果。
–STATISTICS_NORECOMPUTE=ON:过时的统计信息不会自动重新计算,STATISTICS_NORECOMPUTE=OFF:启用自动统计信息更新。
填充因子参考
填充因子主要是在一些字段中我们可以根据读写比例来灵活调整,以便更大的发挥出索引的特性。
1、低更改的表(读写比率为100:1):100%的填充因子
2、高更改的表(写超过读):50-70%的填充因子
3、读写各一半的:80-90%的填充因子