mysql四種索引類型 主鍵索引和唯一索引的區(qū)別面試題?
主鍵索引和唯一索引的區(qū)別面試題?主鍵是一種約束,唯一索引是一個索引。它們本質(zhì)上是不同的。創(chuàng)建主鍵后,它必須包含唯一索引,該索引不一定是主鍵。唯一索引列允許空值,但主鍵列不允許空值。創(chuàng)建主鍵列時,默認(rèn)情
主鍵索引和唯一索引的區(qū)別面試題?
主鍵是一種約束,唯一索引是一個索引。它們本質(zhì)上是不同的。
創(chuàng)建主鍵后,它必須包含唯一索引,該索引不一定是主鍵。
唯一索引列允許空值,但主鍵列不允許空值。
創(chuàng)建主鍵列時,默認(rèn)情況下它已經(jīng)是空值唯一索引。
主鍵可以被其他表引用為外鍵,但唯一索引不能。
一個表最多只能創(chuàng)建一個主鍵,但可以創(chuàng)建多個唯一索引。主鍵更適合那些不易更改的唯一標(biāo)識,如自動遞增列、ID號等
mysql索引問題?
少量數(shù)據(jù)測試不合適。
使用索引時,首先要考慮的是檢索效率,這與緩存命中率類似。
InnoDB的非主鍵索引在數(shù)據(jù)查詢期間還執(zhí)行兩次搜索。首先使用非主鍵索引查找對應(yīng)記錄的主鍵,然后使用主鍵查找數(shù)據(jù)。
現(xiàn)在,讓我們看看非主鍵索引的查詢效率。索引的存儲結(jié)構(gòu)是B-樹,因此樹的遍歷與實際數(shù)據(jù)密切相關(guān)。
例如,如果您的年齡字段有兩個15和兩個20,則在搜索15時,首先查找15,然后比較數(shù)據(jù)。實施過程是這樣的。
當(dāng)然,有時MySQL不一定會按照查詢優(yōu)化方案執(zhí)行查詢,因為它認(rèn)為這不是最佳方案。