1. 程式人生 > >Innodb,MyIsam,聚集索引和非聚集索引

Innodb,MyIsam,聚集索引和非聚集索引

Innodb和Myisam是什麼和區別

Innodb和Myisam是兩種類型別,在navicat中可以看到,也可以修改。
在這裡插入圖片描述
下面介紹一下他們的區別:

區別 Innodb Myisam
事務 安全 非安全
行級 表級
效率
索引 聚集索引 非聚集索引
外來鍵 支援 不支援
使用環境 需要事務,大量增,改 多查詢,不需要事務




聚集索引和非聚集索引

如果想了解“聚集索引和非聚集索引”那麼可以先看看B樹和B+樹
下面說說他們的區別
聚集索引:1.屬於Innodb。
                  2.按照主鍵B+樹的排列方式存放,子節點存放的就是資料。(如果沒有主鍵,以第一列為聚集索引)
                  3.只有一個聚集索引。
                  4.普通索引指向聚集索引。
舉個栗子:
有一個人員表:主鍵為id,列為 name(索引),class,age。那麼他們的儲存方式為:
資料為:

id name class age
1 xiaohuang 1-1 11
2 xiaohong 2-1 12
3 xiaolv 3-1 13

聚集索引為
在這裡插入圖片描述

而也可能會有很多普通索引,普通索引的子節點指向聚集索引。例如當普通索引通過xiaohuang查到id為1後,再到聚集索引中繼續查詢到子節點,也就是說通過普通索引查詢會呼叫兩次索引。
在這裡插入圖片描述

非聚集索引:1.屬於MyIsam。
                      2.普通索引和非聚集索引沒什麼區別。
                      3.存放的是地址。
栗子:
在這裡插入圖片描述