1、innodb儲存引擎
innodb相對來說屬於一種均衡性的儲存引擎,中規中矩,各方面都還不錯,最大的特點是支援事物
2、myisam儲存引擎
myisam的查詢效率很高,但是不支援事物
mysql5.5之後預設都使用innodb
索引:優化查詢
索引是優化查詢的,索引一般加在查詢機率大的字段上,但是如果有很多欄位的查詢機率都很大,就不要加了。因為索引的底層機制是乙個b+樹,每次新增或者刪除乙個資料,資料結構都要進行調整,如果乙個表加了20個索引,那麼加一條資料至少要提煉20個資料,會導致效能嚴重下降。所以,濫用索引會導致效能嚴重下降
b+樹是對b樹的一種變形樹,它與b樹的差異在於:
有k個子結點的結點必然有k個關鍵碼;
非葉結點僅具有索引作用,跟記錄有關的資訊均存放在葉結點中。
樹的所有葉結點構成乙個有序鍊錶,可以按照關鍵碼排序的次序遍歷全部記錄。
b和b+樹的區別在於,b+樹的非葉子結點只包含導航資訊,不包含實際的值,所有的葉子結點和相連的節點使用鍊錶相連,便於區間查詢和遍歷。
b+ 樹的優點在於:
由於b+樹在內部節點上不包含資料資訊,因此在記憶體頁中能夠存放更多的key。 資料存放的更加緊密,具有更好的空間區域性性。因此訪問葉子節點上關聯的資料也具有更好的快取命中率。
b+樹的葉子結點都是相鏈的,因此對整棵樹的便利只需要一次線性遍歷葉子結點即可。而且由於資料順序排列並且相連,所以便於區間查詢和搜尋。而b樹則需要進行每一層的遞迴遍歷。相鄰的元素可能在記憶體中不相鄰,所以快取命中性沒有b+樹好。
但是b樹也有優點,其優點在於,由於b樹的每乙個節點都包含key和value,因此經常訪問的元素可能離根節點更近,因此訪問也更迅速。
MySql儲存引擎和索引
mysql的儲存引擎表示的是mysql中資料庫表的儲存型別,不同儲存型別,表的儲存方式都不相同。檢視當前mysql版本支援哪些引擎,可以輸入以下命令 mysql show engines g 可以發現有很多儲存引擎,這裡只討論innodb myisam memory這三種。innodb innodb...
MySQL索引 事務 儲存引擎
索引建立的方法 建立索引的原則依據 檢視索引的方法 刪除索引的方法 事務的概念 事務的acid特點 事務控制語句 事務的控制方法 儲存引擎概念介紹 業選擇儲存引擎依據 修改儲存引擎 注 no unique為0 注 no unique為1 注 屬於唯一性索引的一種 直接建立索引 修改表結構方式新增索引...
MYSQL常用儲存引擎
一 innodb 儲存引擎 innodb 儲存引擎自 mysql 5.5 版本起被指定為預設的儲存引擎,用於完成事務 回滾 崩潰修復和多版本併發控制的事務安全處理。同時也是 mysql中第乙個提供外來鍵約束的表引擎,尤其對事務處理的能力,是 mysql 其他儲存引擎所無法與之比擬的。innodb 的...