两列的区分度差多少
比一比两列的区分度。输出四个数:cat 有几种值、v 有几种值、按 cat 挑碰几行、按 v 挑碰几行(用 / 隔开)。 t 表:200 行 id 1 ~ 200,主键 cat 只有 &qu
⚠️ 低区分度:索引生效了,也没省下什么
给只有两种值的 cat 建索引,看取数方式和碰的行数。输出三样:取数方式、碰了几行、这一列有几种不同的值(用 / 隔开)。 t 表:200 行 id 1 ~ 200,主键 cat 只有 &q
索引对写入的影响
一张表上建了三个索引。每插入一行,数据库要维护【0】。
什么样的列建了索引也没用
给某一列建了索引,取数方式确实变成了 SEARCH,但几乎没快多少。这一列很可能【0】。
自己写:把覆盖的三种情况一次量齐
这一节的收官:同一个 (cat, v) 索引,三条查询各量一次——覆盖的、不覆盖的、用不上索引的。输出三样(用 / 隔开)。 t 表:200 行 id 1 ~ 200,主键 cat 只有 &
自己写:给两列的查询建覆盖索引
让 SELECT cat, v FROM t WHERE v = 99 被覆盖。输出两样:USING 后面那个词、以及查出来几行(用 / 隔开)。 t 表:200 行 id 1 ~ 200,主键
自己写:让一条查询被覆盖
给一条只取 v 的查询建一个能覆盖它的索引。输出 USING 后面那个词。 t 表:200 行 id 1 ~ 200,主键 cat 只有 "A" 和 "B&qu
覆盖和不覆盖,碰的行数一样吗
还是那个索引,两条查询各数一次碰了多少行。输出两个数(用 / 隔开)。 t 表:200 行 id 1 ~ 200,主键 cat 只有 "A" 和 "B"
⚠️ 多取一列,覆盖就没了
建一个 (cat, v) 的索引,一次只取索引里有的列,一次多取一列 note。输出两次的取数方式全句(用 / 隔开,只取 USING 后面那部分的第一个词)。 t 表:200 行 id 1 ~
覆盖索引的代价是什么
为了让索引覆盖更多查询,把更多列塞进索引。代价是【0】。