美团面试被问到了主键查询还是索引查询快?

如题,面试时遇到了这样一个数据库问题,以下是我的思考和疑惑:
主键也是一种索引,普通索引一般使用B-Tree结构来实现,查找时间复杂度是O(log n)级别的,
然而不知道主键查询是扫描全表呢?还是像b-tree一样有特别的数据结构支持呢?
还是说,在数据量小的时候,主键查询会比索引查询快,而数据量大的时候,索引查询优势很大?
谢谢~~
全部评论
innodb不是索引是查到底是主键值然后再去主键索引查具体数据么...应该是主键索引快吧
点赞
送花
回复
分享
发布于 2018-03-14 00:29
这个不同的数据库引擎有所区别, 这里我推荐一篇博客给你(我自己觉得这篇博客写的不错):https://www.cnblogs.com/bonelee/p/6225211.html
点赞
送花
回复
分享
发布于 2018-03-14 08:41
滴滴
校招火热招聘中
官网直投
他的问题应该是主键索引查找快,还是二级索引快?感觉这个问题应该分引擎回答,如果是MyISAM中,主键索引和二级索引是一样快的,在InnoDB中,主键索引快,因为二级索引找到主键后,还要在主键索引中再找一遍,
点赞
送花
回复
分享
发布于 2018-03-14 13:20
索引查询快。主键查询实际上是变相的全表扫描
点赞
送花
回复
分享
发布于 2018-03-14 00:22
主键自带索引属性
点赞
送花
回复
分享
发布于 2018-03-14 13:24
看的我都头大,索引先在辅助索引查找所在页,再装入内存页才真正开始查询。。。
点赞
送花
回复
分享
发布于 2018-03-14 13:48
对于innodb来说那肯定是主键查询快呀,他的数据直接时间是在叶子上😂
点赞
送花
回复
分享
发布于 2018-03-14 23:08

相关推荐

#美团#项目1、支付超时取消功能---如果刚好十分钟的时候支付完成与延时队列中的取消同时到了的话怎么办? 八股2、RocketMQ的架构组成3、消费者消费消息的两种方式和区别4、如何保证同一个topic下面的消息都具有顺序性5、什么是消息积压 6、消息积压是否会造成内存问题(举例 十个消费组都要消费同一个topic是否会产生内存问题----我以为是会因为某个消费组消费问题出现堵塞 导致都卡在这无法消费下一个问题  实际要问的是消费进度原理)7、mysql存储引擎及区别8、如何查看一条语句执行快慢 写的好不好9、索引失效问题10、联合索引最左匹配问题(假设有联合索引(a,b,c)select where b=? and a=?是否会走联合索引? select where a>? and b=? 是否会走)11、mysql事务隔离级别? 可重复读如何实现? MVCC具体流程?12、当前读和快照读13、redis分布式锁14、redis持久化及区别 AOF重写问题 AOF写回策略15、redis过期key的删除策略16、redis查询所有key命令17、原生redis刚部署完之后 默认有多少个db18、java线程状态19、执行线程的start和run方法区别20、线程池的参数和流程 jdk有哪几种 为什么要自定义线程池21、synchronized锁升级过程22、如何使用synchronized23、Threadlocal底层原理(1.7和1.8的区分?)24、Autowired和Resource的区别25、Spring事务 事务失效场景算法手撕:leetcode64(矩阵最小路径和)面试官人很好,说错了等你说完之后还会跟你讲下,讲解下正确流程,但我是fw。
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务