mysql如何創(chuàng)建索引 mysql設(shè)置主鍵還要設(shè)置索引嗎?
mysql設(shè)置主鍵還要設(shè)置索引嗎?不,主鍵有索引功能。當(dāng)您創(chuàng)建或設(shè)置主鍵時(shí),MySQL會(huì)自動(dòng)添加一個(gè)與主鍵對(duì)應(yīng)的唯一索引,不需要額外添加。如果查詢條件中未使用主鍵,則可以將查詢字段設(shè)置為索引。如果要在
mysql設(shè)置主鍵還要設(shè)置索引嗎?
不,主鍵有索引功能。當(dāng)您創(chuàng)建或設(shè)置主鍵時(shí),MySQL會(huì)自動(dòng)添加一個(gè)與主鍵對(duì)應(yīng)的唯一索引,不需要額外添加。如果查詢條件中未使用主鍵,則可以將查詢字段設(shè)置為索引。如果要在主鍵上設(shè)置索引,則主鍵具有索引功能。擴(kuò)展數(shù)據(jù):1。主鍵必須是唯一索引,因此它不一定是主鍵。
2. 一個(gè)表中可以有多個(gè)唯一索引,但只能有一個(gè)主鍵。
3. 主鍵列不允許空值,而唯一索引列允許空值。
4. 主鍵也可以由多個(gè)字段組成,形成復(fù)合主鍵,復(fù)合主鍵也是唯一的索引。
MySQL聯(lián)合索引默認(rèn)會(huì)包含主鍵么?
首先,主鍵索引實(shí)際上是數(shù)據(jù)本身。它的葉頁包含主鍵和所有相應(yīng)的行數(shù)據(jù)。不僅聯(lián)合索引,而且所有非主鍵索引(輔助索引)的葉頁都將包含主鍵。即使您的表沒有主鍵,MySQL也會(huì)在表上創(chuàng)建一個(gè)隱式主鍵,您的次索引也會(huì)包含它。當(dāng)使用次索引進(jìn)行查詢時(shí),首先獲取次索引葉頁上的數(shù)據(jù)和對(duì)應(yīng)的主鍵,然后通過主鍵搜索主鍵索引,得到其他列的數(shù)據(jù)。也就是說,當(dāng)?shù)诙饕凰阉鲿r(shí),索引將被搜索兩次。因此,在選擇主鍵時(shí),應(yīng)盡量使用較小的主鍵。如果主鍵太大,則次索引將相對(duì)較大。