Philyu 最近的时间轴更新
Philyu

Philyu

V2EX 第 485959 号会员,加入于 2020-04-24 14:21:18 +08:00
Philyu 最近回复了
ZmVpcWlfeXU=
2020-05-19 16:13:46 +08:00
回复了 qmzhixu 创建的主题 MySQL 关于覆盖索引的问题
聚簇索引的一个典型例子就是主键,它直接存储数据字段,比如 id ;如果你要查 select id from xxxx where id>n
这个当然不用回表;
如果 id 是主键,另外建立了 age 的普通索引,那么 select age from xxx where id>n,是可以索引覆盖,不需要回表。
2020-05-15 17:27:38 +08:00
回复了 qmzhixu 创建的主题 MySQL 关于覆盖索引的问题
age 不在索引里面,mysql 先找到索引 id=1,然后回表去找 age,当然没有索引覆盖。
2020-05-15 17:21:27 +08:00
回复了 noble4cc 创建的主题 MySQL mysql 索引工作的原理
我明白 lz 的意思,其实没有你想象的那么多 IO,首先索引是有序的,可以连续读取;就算 key 很分散,IO 次数也还跟 key 的数量在一个量级;查询到的记录再多,还是成片的,可以连续读取。
2020-05-15 17:02:41 +08:00
回复了 noble4cc 创建的主题 MySQL mysql 索引工作的原理
正常是这样,而且 mysql 会将部分用到的索引加载到内存,4 次或 1 次都很快;如果 in 里面是连续的值,大概率会被优化器优化。
2020-05-15 16:49:18 +08:00
回复了 noble4cc 创建的主题 MySQL mysql 索引工作的原理
mysql 的索引基础结构是 B+树,如 id in ( 1,2,3,4 ),那么会将 id 列的索引加载到内容,分布找到对应 id=1,2,3,4 的四行数据的偏移量,最少只需要一次 IO 。具体几次,涉及到你这表每一行的数据大小,因为磁盘读取,一次 IO 是 64K,有可能这 4 条数据都在了。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2742 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 12:16 · PVG 20:16 · LAX 04:16 · JFK 07:16
Developed with CodeLauncher
♥ Do have faith in what you're doing.