如大家所了解的,SQL( Structured Query Language )是一门在开发者中使用覆盖率超50%的数据库结构化查询语言。
不可否认,无论是常年与数据打交道的数据分析师和数据科学家,经常需要管理和维护数据库的数据库管理员,还是是需要了解嵌入式数据库的移动开发工程师,都免不了与SQL打交道。
而对于后端程序员来说,MySQL也是技术面试过程中的高频考点之一。那么,在后端的技术面试中,有哪些常见的MySQL考题呢?
哈希范围查询很慢,链表要遍历,剩下的就是树。广为人知的有,二叉搜索树,AVL 树,红黑树,B树等等。
- 二叉搜索树会退化为链表,层数可能也会很多
- AVL 树层数依然过多
- 红黑树只是优化了插入、更新,弱化了平衡,在更新和搜索中取了折中,但层数过多的问题没有解决。
- B 树,层数变少了,但如果访问下一页需要回到父节点到兄弟节点
- B+ 树,将叶子节点用链表串联起来了,子节点中包含了父节点的信息——解决 B 树访问下一页需要先回到父节点的问题;同时非叶子节点不保存具体的数据,而只保存关键字的索引,具体数据保存在叶子结点中——相对于 B 树,减少了非叶子结点(索引)的数据量,所以相同的内存空间能保存更多的索引,从而减少 io 次数。
好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!