月薪5万的大厂MySQL面试题,80%的人答不上来!你敢试吗?| 附详细解答
某大厂面试题:
索引,用于提升数据库的查找速度。哈希(hash)比树(tree)更快,为什么我们一般使用B树索引呢?
加速查找速度的数据结构,常见的有两类:
1、哈希,例如HashMap,查询 / 插入 / 修改 / 删除的平均时间复杂度都是O(1);
2、树,例如平衡二叉搜索树,查询 / 插入 / 修改 / 删除的平均时间复杂度是O(lg(n));
可以看到,不管是读请求,还是写请求,哈希类型的索引,都要比树型更快一些。
那为什么,索引结构要设计成树型呢?
使用树型索引,和数据库的查询需求相关。
对于这样一个单行查询的SQL需求:
select * from user where name='孙悟空'
确实是哈希索引更快,因为每次都只查询一条记录。
但是对于这样一些查询需求:
分组:group by
排序:order by
比较:<、>
-
…
哈希型的索引,时间复杂度会退化为O(n),而树型的“有序”特性,依然能够保持O(log(n)) 的高效。
比如,对于以下常见的查询,哈希型索引都需要遍历所有记录才能得出结果。
查询价格大于10元的所有商品:
select * from goods where price>10
查询考试分数在60-80分之间的学生:
select * from student where grade>60 and grade<80
如果对于某一列的查询都是等值查询,可以使用哈希索引
例如:用户表里的password,通常,我们只会这样查询:
select * from user where password='xxxx'
这时hash索引可以更快速的命中。
本文测试于 MySQL 5.6
MySQL天天都用,然而,一到面试或升职答辩,就...
从年薪20万到年薪100万,
要想实现大跨越,MySQL必须要整透!
互联网大厂数据库实践,真实案例
亿级海量数据MySQL架构设计
前迅雷大数据CTO - 张海剑
为你解析架构师级MySQL最佳实践
百万年薪架构师必备能力
升职加薪,跳槽面试必知必会!
和其他课程不同,我们着眼于实战。通过讨论MySQL工程实践中最常见的痛点问题,构成课程主线。课程中的很多主题,都是我们在10多年的实际工作中积累的真实案例。从这些高频问题出发,用诙谐生动的方式,带你掌握MySQL的最佳实践。
如果你正在使用MySQL,CRUD写得很溜,却不知道这个语句是不是最优的?
如果你听说过一些数据库的最佳实践,却不知道为什么要这样?
如果你的数据库偶尔会“发飙”,你却不知道如何定位、排查问题......
那么,这门课就是你要找的课程!
MySQL高性能读写的秘密
你真的知道索引吗?(上)
你真的知道索引吗?(下)
你知道怎么给字符串字段加索引吗?
建了索引,为什么查询还这么慢?
MySQL为什么会选错索引?
表数据删掉一半,为什么表文件大小不变?
不小心误删了数据,除跑路还能怎么办?
count(*)为啥这么慢?怎么破?
MySQL最佳实践:到底可不可以用join?
用户中心,1亿用户,数据库怎么设计?
订单中心,10亿数据,怎么整?
更多...
原价199的课程,限时0.99
(限前200名)
报名方法1:
▼ 长按二维码,加课程顾问小姐姐
报名方法2:
关注后,添加客服小姐姐报名
立即学习,获取高薪!