#### 1. 前言 ---- 簡(jiǎn)單描述 MySQL 中,索引,主鍵,唯一索引,聯(lián)合索引 的區(qū)別,對(duì)數(shù)據(jù)庫(kù)的性能有什么影響(從讀寫兩方面) 這是一道非常經(jīng)典的 MySQL 索引面試題,意在看面試者是否了解索引的幾種類型以及索引的優(yōu)點(diǎn)和存在的弊端 #### 2. 幾種索引類型的區(qū)別 --- 索引是幫助數(shù)據(jù)庫(kù)高效獲取數(shù)據(jù)的一種數(shù)據(jù)結(jié)構(gòu),索引文件中記錄著對(duì)數(shù)據(jù)表數(shù)據(jù)的引用指針 主鍵是一種特殊的唯一索引,在一張表中只能有一個(gè)主鍵索引,主鍵索引用于唯一標(biāo)識(shí)一條記錄 唯一索引用于確保某一列只包含各不相同的值,也就是說(shuō),唯一索引可以保證數(shù)據(jù)記錄的唯一性 聯(lián)合索引是指通過(guò)多個(gè)列建立的索引,比如有: 聯(lián)合主鍵索引,聯(lián)合唯一索引 #### 3. 索引讀寫方面對(duì)數(shù)據(jù)庫(kù)性能的影響 --- 讀: 索引可以極大的提高數(shù)據(jù)查詢速度,建立索引后會(huì)生成索引文件,所以索引本質(zhì)上是以空間換時(shí)間 寫: 索引會(huì)降低插入,刪除,更新的速度,是因?yàn)楫?dāng)數(shù)據(jù)發(fā)生改變后,會(huì)重新建立索引,那么就會(huì)重新構(gòu)建索引文件,導(dǎo)致增刪改操作變慢