Innodb,MyIsam,聚集索引和非聚集索引
阿新 • • 發佈:2018-11-11
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.存放的是地址。
栗子: