主鍵索引:會(huì)進(jìn)行主鍵約束啄枕,并且是唯一索引膀值,生成的索引是主鍵索引桶唐;
唯一索引:主鍵是特殊的唯一索引,但是唯一索引可以為空值茉兰,主鍵不允許為空尤泽,也是二級(jí)索引
普通索引:普通索引可以重復(fù),是二級(jí)索引规脸;
查詢情況下:
- 普通索引:分兩種情況坯约,一種是查詢的參數(shù)在頁(yè)尾,這樣匹配后還需要查詢下一個(gè)是否滿足條件莫鸭;
- 唯一索引:直接匹配后就可以停止檢索闹丐;
總結(jié):查詢的差異影響并不大
更新情況下:
更新:插入、刪除被因、更新卿拴;
change buffer:innodb引擎的內(nèi)存,從buffer pool獲取梨与,用與存取當(dāng)前的更新變化堕花,【減少磁盤io】;
應(yīng)用場(chǎng)景:
- 普通索引且目標(biāo)頁(yè)不在內(nèi)存時(shí)粥鞋,使用change buffer進(jìn)行臨時(shí)存儲(chǔ)缘挽,當(dāng)訪問更新的數(shù)據(jù)時(shí)、后臺(tái)定時(shí)刷新時(shí)呻粹、數(shù)據(jù)庫(kù)正常關(guān)閉時(shí)進(jìn)行merge操作壕曼;
- 唯一索引的情況下并不起作用,因?yàn)榇嬖谖ㄒ凰饕枰x取磁盤數(shù)據(jù)到內(nèi)存等浊,并判定唯一性腮郊,這樣直接可以在內(nèi)存修改,用不上change buffer筹燕;
- 對(duì)于歷史庫(kù)伴榔,使用機(jī)械硬盤的纹蝴,寫多讀少的情況下可以起較大作用;