mysql四種索引類型 主鍵與聚簇索引有什么聯(lián)系?
主鍵與聚簇索引有什么聯(lián)系?如果您使用的數(shù)據(jù)庫是mysql,則聚集索引是主鍵,不允許將非主鍵列設(shè)置為聚集索引。即使您不手動(dòng)設(shè)置主鍵,MySQL也會(huì)自動(dòng)創(chuàng)建一個(gè)隱藏列作為主鍵。如果使用SQL server
主鍵與聚簇索引有什么聯(lián)系?
如果您使用的數(shù)據(jù)庫是mysql,則聚集索引是主鍵,不允許將非主鍵列設(shè)置為聚集索引。即使您不手動(dòng)設(shè)置主鍵,MySQL也會(huì)自動(dòng)創(chuàng)建一個(gè)隱藏列作為主鍵。如果使用SQL server,則默認(rèn)主鍵是聚集索引,因?yàn)橐粋€(gè)表只能允許一個(gè)聚集索引,因此直接指定其他列作為聚集索引是不行的。此時(shí),如果需要使用其他列作為聚類索引,則需要先刪除主鍵約束,然后將其他列設(shè)置為聚類索引,最后恢復(fù)主鍵約束。
為什么數(shù)據(jù)庫中用主鍵搜索比用其他屬性快?
準(zhǔn)確地說,使用“聚集索引”(或英語中的“聚集索引”)應(yīng)該比使用一般索引更有效。然而,數(shù)據(jù)表的一般主鍵默認(rèn)為聚集索引,因此在大多數(shù)情況下都存在模糊性。對(duì)該索引效率的一般評(píng)價(jià)是,該索引的條目可以直接進(jìn)入數(shù)據(jù)存儲(chǔ)頁,而其他索引可能需要逐步定位多級(jí)鏈表才能找到最終的數(shù)據(jù)存儲(chǔ)頁;另一個(gè)表只能有一個(gè)聚集索引,因?yàn)樗饕?xiàng)的順序與實(shí)際數(shù)據(jù)的順序完全相同,而且之后數(shù)據(jù)會(huì)登陸磁盤,所以只有一個(gè)順序,很容易理解。