在 MySQL 中,索引是提高數(shù)據(jù)庫查詢效率的重要手段之一,而唯一索引和聯(lián)合索引則是其中兩個比較常用的類型。
唯一索引是指,在數(shù)據(jù)表中某個列上建立一種類型的索引,該列的值不能重復(fù)出現(xiàn),即唯一性約束。唯一索引可以保證數(shù)據(jù)的完整性,避免出現(xiàn)重復(fù)數(shù)據(jù),提高數(shù)據(jù)的查詢速度。
CREATE TABLE student ( id INT NOT NULL, name VARCHAR(20) NOT NULL, age INT NOT NULL, PRIMARY KEY (id), UNIQUE INDEX (name) );
以上代碼中,我們在 student 表的 name 列上創(chuàng)建了唯一索引,保證了 name 列的值不重復(fù)。
而聯(lián)合索引則是指,在數(shù)據(jù)表中多個列上建立索引,以實現(xiàn)聯(lián)合查詢。聯(lián)合索引可以提高數(shù)據(jù)的查詢效率,避免全表掃描。
CREATE TABLE score ( id INT NOT NULL, student_id INT NOT NULL, course_id INT NOT NULL, score INT NOT NULL, PRIMARY KEY (id), INDEX idx_student_course (student_id, course_id) );
以上代碼中,我們在 score 表的 student_id 和 course_id 列上創(chuàng)建了聯(lián)合索引,以提高查詢效率。
需要注意的是,雖然唯一索引和聯(lián)合索引都可以提高數(shù)據(jù)查詢效率,但在實際使用時,需要根據(jù)具體情況進(jìn)行選擇和應(yīng)用。