1.Innodb和Myisam是什么和区别
Innodb和Myisam是两种类类型,在navicat中可以看到,也可以修改。
下面介绍一下他们的区别:
区别 | Innodb | Myisam |
事务 | 安全 | 非安全 |
锁 | 行级 | 表级 |
效率 | 低 | 高 |
索引 | 聚集索引 | 非聚集索引 |
外键 | 支持 | 不支持 |
使用环境 | 需要事务,大量增,改 | 多查询,不需要事务 |
2.聚集索引和非聚集索引
如果想了解“聚集索引和非聚集索引”那么可以先看看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.存放的是地址。
栗子: