聚集索引和非聚集索引
?指的是聚集索引,索引可分聚集和非聚集索引,這兩者區(qū)別比較多,但是最主要的區(qū)別是:
????一個(gè)表的聚集索引只能有一個(gè),是因?yàn)閿?shù)據(jù)行在保存的時(shí)候,是按聚集索引的順序保存的,你可以把它簡單的理解成物理存儲(chǔ)的位置,這里涉及到頁面的概念,你可以查查看。就是物理磁盤上分很多頁面,一個(gè)有聚集索引的表,他的頁面鏈?zhǔn)前淳奂饕帕械?#xff0c;舉個(gè)例子,如果一個(gè)頁面已經(jīng)寫滿了數(shù)據(jù),你要插入一行,如果是非聚集索引,sql會(huì)隨便找個(gè)地方保存,把地址記錄進(jìn)索引,但是如果是聚集索引,會(huì)把數(shù)據(jù)插入到這個(gè)頁面,而后面的數(shù)據(jù)同時(shí)會(huì)往后移動(dòng)(用頁面拆分的辦法),看上去速度要慢,但是聚集索引在搜索時(shí),速度會(huì)比非聚集索引快,因?yàn)樗麄兪俏锢砼判虻摹?/p>
? ?????PRIMARY KEY 或 UNIQUE 約束創(chuàng)建聚集或非聚集索引。PRIMARY KEY 約束默認(rèn)為 CLUSTERED;UNIQUE 約束默認(rèn)為 NONCLUSTERED。如果表中已存在聚集約束或索引,那么在 ALTER TABLE 中就不能指定 CLUSTERED。如果表中已存在聚集約束或索引,PRIMARY KEY 約束默認(rèn)為 NONCLUSTERED。
總結(jié)
以上是生活随笔為你收集整理的聚集索引和非聚集索引的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: There is no Action m
- 下一篇: 部署MongoDB集群