请教一个 MySQL 的问题

查看 44|回复 4
作者:dumbbell5kg   
这有两条 SQL 与各自稳定的执行时间,表记录是 1000w 条,平均单条记录大小 700b
SELECT * FROM `user_operation_log`           LIMIT 1000000, 1; 0.3s
SELECT user_id FROM `user_operation_log` LIMIT 1000000, 1; 0.5s
为什么 SELECT user_id 比 select * 快这么多?
两者执行计划的 type 都是 all 。
期待大佬答复。
dumbbell5kg
OP
  
我认为两者的时间是花在了扫描前 100w 条记录上,扫描过程中把完整的数据页读到内存的,这个读数据页的过程对于两 SQL 来说是一样的,不明白为什么差了这么多。
iminto   

对于 SQL 这种相对黑盒,你这差距不到 50%,没必要浪费时间纠结。
当有几倍或者几十,几百倍差距的时候,才是值得你去思考的时候。
dumbbell5kg
OP
  
@iminto 面向面试纠结....
Sawyerhou   
没明白哪个快,时间标的是 * 快,问题描述说 user_id 快,
mysql 底层对 * 有优化吧,一般情况下没加 index 时 * 应该快一点?
您需要登录后才可以回帖 登录 | 立即注册

返回顶部