个人理解能力有限, 这本书看的总是感觉很多话理解不了
图中, 大部分时间花在数据拷贝上 什么意思啊? 然后什么缓存负载非常重要? 什么啊? 蒙了!
我看了半天认为 在查询字段有主键的时候, 二级索引可以做到覆盖到主键, 但图中第二句还是看不懂在说什么, 怎么就二次查询了??
这句话感觉就是从天而降的一句话, 完全看不懂, 什么条件就为假了 看的晕乎?
个人理解能力有限, 这本书看的总是感觉很多话理解不了
图中, 大部分时间花在数据拷贝上 什么意思啊? 然后什么缓存负载非常重要? 什么啊? 蒙了!
我看了半天认为 在查询字段有主键的时候, 二级索引可以做到覆盖到主键, 但图中第二句还是看不懂在说什么, 怎么就二次查询了??
这句话感觉就是从天而降的一句话, 完全看不懂, 什么条件就为假了 看的晕乎?
覆盖索引这块儿,楼主就按照@auntyellow的答案理解就行了,
理解到这个程度,如果你不是立志于成为DBA,说实话足够了。
这本书写得不错,但是我觉得不太适合数据库新手来看,因为里面有些语句晦涩难懂,如果对概念再不熟悉,容易被引入歧途,
我建议你看这本《MongoDB权威指南》,虽然这本讲解MongoDB,但是数据库都是想通的,比如这个“覆盖索引”还有你上午问的“列的选择性”,在这本书上都有详细并且易于理解的描述,看完这本你再来看高性能会好一些。
5 回答3.4k 阅读✓ 已解决
3 回答3.7k 阅读✓ 已解决
5 回答1.4k 阅读
2 回答2.1k 阅读
3 回答2.1k 阅读
1 回答3.6k 阅读
4 回答1.3k 阅读
举个用户表的栗子:
现在主键是id,索引是username,对于InnoDB来说实际上有两个索引:
如果你这么查:
SELECT id FROM user WHERE username = ...
,那么MySQL只会查UK,而不会去查PK;如果你这么查:
SELECT id, password FROM user WHERE username = ...
,那么MySQL会查一次UK,得到id后再查一次PK。如果你要优化第二句,可以多加一个索引:
这样就有:
如果你再这么查:
SELECT id, password FROM user WHERE username = ...
,MySQL就只需要查IDX,而不用再查PK和UK了。