色块布局网站首页模板,好的公司网站有什么用,discuz图片网站模板,免费wap自助建站火星建站1.二叉树#xff0c;红黑树#xff0c;B 树#xff0c;B树
二叉树#xff1a;就是每个节点最多只能有两个子节点的树#xff1b;
红黑树#xff1a;就是自平衡二叉搜索树#xff0c;红黑树通过一下五个规则构建#xff1a;
1.节点只能是红色或黑色#xff1b;
2.根…1.二叉树红黑树B 树B树
二叉树就是每个节点最多只能有两个子节点的树
红黑树就是自平衡二叉搜索树红黑树通过一下五个规则构建
1.节点只能是红色或黑色
2.根节点只能是黑色
3.不能有连续的红色节点
4.叶子节点为黑色
5.从任意节点到其所有叶子节点的路径上黑色节点数相同黑稿平衡
B 树多路平衡搜索树所有节点都存储数据
B树非叶子节点只存键数据全部存在叶子节点 2.索引的底层数据结构了解过嘛 ?
索引的底层数据结构采用了 B树加双向链表的形式实现N 阶 B 树其实就是每个节点最多存储 N - 1 个键值对和 N 个指针指向某个键值对的一边而 N 阶 B 树其实就是每个节点最多存储 N - 1 个键和 N 个指针 只有叶子节点才存储键值一旦一个节点存储的 Key 大于 N中间元素会向上分裂
而在索引中的 B 树就是在叶子节点之间构成一个双向链表用于范围查询。 3.什么是聚簇索引什么是非聚簇索引 ?
聚簇索引一个表只能有一个聚簇索引聚簇索引的叶子节点直接存储行数据主键默认是聚簇索引如果没有主键则隐式构建 ROWID优点是通过索引就可以获取到数据避免了回表查询缺点是插入速度依赖主键顺序
非聚簇索引就是索引的叶子节点只存主键值而非完整的数据一个表可以有多个非聚簇索引通过索引找到主键后需要回到聚簇索引获取完整数据。 4.知道什么是回表查询嘛 ?
回表查询是查询数据时通过非聚簇索引进行查询查询出来的只是数据的主键还需要通过主键去查询聚簇索引才能得到完整的数据。 5.索引创建原则有哪些
1.高频查询字段whereonorder bygroup by 等高频使用的字段
2.高区分度字段使用由高区分度的字段ID身份证而不是性别
3.短字段优先使用整型而不是 VARCHAR;
4.覆盖索引优化高频查询字段可以建立联合索引覆盖查询字段达到不用回表查询的目的
5.范围查询字段放最后将范围查询字段放最后避免索引失效
6.最左前缀匹配原则只能最左前缀匹配避免中间断开 6.知道什么是左前缀原则嘛 ?
如果索引了多列联合索引要遵守最左前缀法则。最左前缀法则指的是查询
从索引的最左列开始并且不跳过索引中的列。如果跳跃某一列索引将会部分
失效(后面的字段索引失效)。 7.知道什么叫覆盖索引嘛 ?
覆盖索引是指查询使用了索引并且需要返回的列在该索引中已经全部能够找到 。 8.索引是越多越好嘛? 什么样的字段需要建索引, 什么样的字段不需要?
索引并不是多多益善索引越多维护索引结构的代价也就越大会影响增删改的效率。针对于数据量较大且查询比较频繁的表建立索引。
针对于常作为查询条件where、排序order by、分组group by操作的字段建立索引。
不适合创建索引的字段 更新频繁字段不适合创建索引若是不能有效区分数据的列不适合做索引列(如性别男女未知最多也就三种区分度实在太低)对于那些查询中很少涉及的列重复值比较多的列不要建立索引。比如省会城市、月份对于定义为text、image和bit的数据类型的列不要建立索引