1、mysql索引是什么数据结构?为什么选择这个数据结构? B+树。 二叉树:如果数据是单边增长的情况 那么出现的就是和链表一样的数据结构了,树高度大。 红黑树:在二叉树的基础上多了树平衡,也叫二叉平衡树,不像二叉树那样极端的情况会往一个方向发展。但是如果数据量大了之后,树的高度就会很大。 B树:在红黑树的基础上,每个节点可以存放多个数据 B+树:B树变种,只在叶子节点上存数据,叶子节点之间的箭头是方便做范围查找。 2、MyISAM和InnoDB有什么区别? MyISAM:一张表对应三个文件:表结构、表数据、表索引。他的索引是非聚集索引; InnoDB :一张表对应两个文件:表结构、表数据+索引。他的索引是聚集索引,InnoDB的表须有主键,开发人员不设置主键,那会自动生成一列主键。建议InnoDB表使用自增数字为主键。 3、Hash索引的优缺点。 一对一查找快,但是范围查找很差。 4、为什么InnoDB表必须要有主键,并且推荐使用整型的自增主键? InnoDB表数据文件本身就是按B+树组织的一个索引结构文件,必须要一个主键索引,不然没法存储,次级索引的叶子节点存的是主键值。B.... 数据库问题记录 待分类