数据库问题记录

Published on with 0 views and 0 comments

1、mysql索引是什么数据结构?为什么选择这个数据结构?

B+树。
二叉树:如果数据是单边增长的情况 那么出现的就是和链表一样的数据结构了,树高度大。
1.png

红黑树:在二叉树的基础上多了树平衡,也叫二叉平衡树,不像二叉树那样极端的情况会往一个方向发展。但是如果数据量大了之后,树的高度就会很大。
2.png

B树:在红黑树的基础上,每个节点可以存放多个数据
3.png

B+树:B树变种,只在叶子节点上存数据,叶子节点之间的箭头是方便做范围查找。
4.png

2、MyISAM和InnoDB有什么区别?

MyISAM:一张表对应三个文件:表结构、表数据、表索引。他的索引是非聚集索引;
InnoDB :一张表对应两个文件:表结构、表数据+索引。他的索引是聚集索引,InnoDB的表须有主键,开发人员不设置主键,那会自动生成一列主键。建议InnoDB表使用自增数字为主键。

3、Hash索引的优缺点。

一对一查找快,但是范围查找很差。

4、为什么InnoDB表必须要有主键,并且推荐使用整型的自增主键?

InnoDB表数据文件本身就是按B+树组织的一个索引结构文件,必须要一个主键索引,不然没法存储,次级索引的叶子节点存的是主键值。B+树存储数据时需要排序,数字比较大小更快。使用自增的数字,在插入新数据时,直接加在树尾即可。


标题:数据库问题记录
作者:fyzzz
地址:https://fyzzz.cn/articles/2020/02/27/1582804618995.html