高频面试题
文章平均质量分 63
高频面试题
keep.ac
天将降大任于斯人也...
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL为什么选择使用B+树作为索引结构?
而 Hash 索引是根据 hash 算法来定位的,难不成还要把 1 - 499 的数据,每个都进行一次 hash 计算来定位吗?哈希表是键值对的集合,通过键(key)即可快速取出对应的值(value),因此哈希表可以快速检索数据(接近 O(1))。本质也是一个二叉树(自平衡二叉树),在大数据量的情况下,层级比较深,会导致树的高度较高,检索速度慢。非叶子节点会存储数据,每页存储的键值对变少,导致树的层次变深,,从而增加I/O次数,使得效率低下。2.在分析别的数据结构的劣势(二叉树可能退化成链表,b树)原创 2024-12-26 03:06:39 · 687 阅读 · 0 评论 -
MySQL索引的最左前缀匹配原则是什么?
where a > 1, b = 2, c = 3 会停止匹配, 所谓的停止匹配指的是:a可以用上联合索引,但是b和c却不行。例如联合索引(a,b,c),MySql在进行查找时会先匹配a,然后依次是b和c,跳过最左侧的索引将无法使用该联合索引,MySql的最左前缀匹配原则是使用联合索引时,查询条件必须从联合索引的最左侧开始匹配,如果一个联合索引包含多列,则查询条件必须包含第一列,然后是第二列,依次类推。例如:联合索引(a,b,c) 正常使用联合索引的情况:where a=1,b=2,c=3。原创 2024-12-26 02:22:42 · 541 阅读 · 0 评论 -
MySQL三层B+树能存多少数据
每个节点就是一个页,页是MySql InnoDB引擎中最小的存储单元,一个页里面有一个页目录,存储的是多个 索引键和子节点指针的组合。原创 2024-12-26 00:42:25 · 1128 阅读 · 0 评论 -
MySQL 的索引类型有哪些?(多角度分类)
字段长度比较大时,如果创建普通索引,在进行like模糊查询时效率比较低,这时可以创建全文索引,基于倒排索引,类似于搜索引擎。指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。索引列中的值必须是唯一的,但是允许NULL值。在文本类型如BLOB、TEXT或者很长的VARCHAR列上创建索引时,可以使用前缀索引,数据量相比普通索引更小,可以指定索引列的长度,但是数值类型不能指定。MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和NULL值。原创 2024-12-25 00:34:17 · 356 阅读 · 0 评论 -
MySQL 的存储引擎有哪些?它们之间有什么区别?
InnoDB:像一个全面的“数据库管理员”,处理事务、维护索引,还支持崩溃后恢复。MyISAM:像一个“档案员”,专注于读取已有数据,不处理复杂的事务。Memory:像一个“临时演讲者”,快速回忆(缓存)但不持久,适合短期任务。InnoDB :MySQL5.5.5后默认引擎。MyISAM:MySQL5.5.5前默认引擎。MySQL8.4版本一共提供了10个引擎。原创 2024-12-25 00:23:04 · 366 阅读 · 0 评论 -
MySQL InnoDB 引擎中的聚簇索引和非聚簇索引相关面试题
什么是聚簇索引和非聚簇索引?(重点在于叶子节点存储上的差异,个数,应用场景) 聚簇索引:数据和索引存储在一起,叶子节点存储的是数据行,(非叶子节点存储的是索引键值指向子节点(即下一级页面)的指针)聚簇索引必须有,而且只能有一个非聚簇索引:数据和索引分开存储,叶子节点存储的是索引键的值和指向数据行的指针(如行ID或行位置),(存储的是索引键值和指向子节点(即下一级页面)的指针),查询数据时一般需要进行回表查询。非聚簇索引可以有多个。原创 2024-12-25 00:00:42 · 790 阅读 · 0 评论
分享