索引最有用的場景 位圖索引使用場景
關(guān)系數(shù)據(jù)庫依賴于主鍵,它是數(shù)據(jù)庫物理模式的基礎(chǔ)。主鍵在物理級別上只有兩個用途:唯一標(biāo)識行。作為外鍵可以有效引用的對象。索引是一種特殊的文件(InnoDB數(shù)據(jù)表上的索引是表空間的一部分),它包含指向數(shù)據(jù)
關(guān)系數(shù)據(jù)庫依賴于主鍵,它是數(shù)據(jù)庫物理模式的基礎(chǔ)。
主鍵在物理級別上只有兩個用途:唯一標(biāo)識行。作為外鍵可以有效引用的對象。索引是一種特殊的文件(InnoDB數(shù)據(jù)表上的索引是表空間的一部分),它包含指向數(shù)據(jù)表中所有記錄的引用指針。以下是主鍵和索引之間的一些區(qū)別和關(guān)系。
1. 主鍵必須是唯一索引,唯一索引不一定是主鍵。主鍵是可以唯一標(biāo)識表中行的屬性或?qū)傩越M。一個表只能有一個主鍵,但它可以有多個候選索引。因?yàn)橹麈I可以唯一地標(biāo)識一行記錄,所以它可以確保在更新或刪除數(shù)據(jù)時不會出現(xiàn)錯誤。除了上述功能外,主鍵通常與外鍵形成引用完整性約束,以防止數(shù)據(jù)不一致。主鍵在數(shù)據(jù)庫設(shè)計(jì)中起著重要的作用。主鍵可以保證記錄的唯一性,主鍵字段不為空。數(shù)據(jù)庫管理系統(tǒng)自動為主鍵生成一個唯一的索引,因此主鍵也是一個特殊的索引。
2. 一個表可以有多個唯一索引,但只能有一個主鍵。
3. 主鍵列中不允許有空值,而唯一索引列中允許有空值。
4. 索引可以提高查詢速度。實(shí)際上,主鍵和索引都是鍵,但是主鍵是邏輯鍵,索引是物理鍵,這意味著主鍵實(shí)際上不存在,而索引實(shí)際上存在于數(shù)據(jù)庫中。通常需要構(gòu)建主鍵,主要是為了避免表中有相同的記錄。一般來說,索引是不能建立的,但是如果需要查詢表,最好建立索引,這樣可以加快檢索速度。