存储引擎的对比
| 对比项 | MyISAM | InnoDB |
|---|---|---|
| 主外键 | 不支持 | 支持 |
| 事务 | 不支持 | 支持 |
| 行表锁 | 表锁,即使操作一条记录也会锁住整个表,不适合高并发的操作 | 行锁,操作时,只锁某一行,不对其他行有影响,适合高并发的操作 |
| 缓存 | 只缓存索引,不缓存真实数据 | 不仅缓存索引还要缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响 |
| 表空间 | 小 | 大 |
| 关注掉 | 性能 | 事务 |
| 默认安装 | y | y |
索引
索引是什么
索引是帮助MySQL高校获取数据的数据结构
简单的来说索引就是排好序的快速查找数据结构
数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引。 我们一般使用的就是B树和B+树。
什么是B树和B+树
B树,简单的来说就是排序树,就是我们按照中序遍历的方式,可以得到一个有顺序的排队数据。这有什么问题呢,这没什么问题。有问题可以在评论区讨论,我回你了这是人情,我没回你这是事故,总而言之就是人情世故。那么问题来了,B数长什么样子呢?
我来带大家看一下吧!

B树不是二叉树,是多叉树。
我们只要对这个树进行中序遍历,于是我们就得到了BCDFGHJKLMNPQRSTVWXYZ这样的有序的字符串。
那么什么是B+树呢,
简单的来说
- B+树就是所有的叶子结点中包含了全部关键字的信息,及指向这些关键字记录的指针,且叶子结点本身依赖关键字的大小自小而大的顺序连接 (而B 树的叶子节点并没有包括全部需要查找的信息)
- 所有的非终端结点可以看成是索引部分,结点中仅含有其子树根结点中最大(或最小)关键字。 (而B 树的非终节点也包含需要查找的有效信息)
1万+

被折叠的 条评论
为什么被折叠?



