innodb作為事務(wù)型數(shù)據(jù)庫(kù)的首選引擎,支持ACID事務(wù),支持行級(jí)鎖定,支持外鍵。并且InnoDB默認(rèn)地被包含在MySQL二進(jìn)制分發(fā)中,已經(jīng)成為絕大多數(shù)OLTP系統(tǒng)的直選存儲(chǔ)引擎。
索引作為數(shù)據(jù)庫(kù)開(kāi)發(fā)的一個(gè)重要方面,對(duì)于訪(fǎng)問(wèn)性能以及能否支持高并發(fā),高tps的應(yīng)用,起著決定性作用。Innodb存儲(chǔ)引擎支持B+樹(shù)索引以及自適應(yīng)哈希索引,其中后者是由innodb引擎根據(jù)表的使用情況自動(dòng)生成,無(wú)法進(jìn)行人為創(chuàng)建。
B+樹(shù)索引是目前關(guān)系型數(shù)據(jù)庫(kù)中最常見(jiàn)最有效的索引,是基于二分查找而形成的一棵平衡術(shù)結(jié)構(gòu)。我們來(lái)逐步了解。
MySQL就普遍使用B+Tree實(shí)現(xiàn)其索引結(jié)構(gòu)
索引的主要作用:
1、快速定位記錄
2、避免排序和使用臨時(shí)表
3、可以將隨機(jī)IO變?yōu)轫樞騃O