两个条件都能走索引,它挑哪个

一条查询有两个条件,两列上都有索引。数据库通常会挑【0】。

开始练习 →

"选择性高"是什么意思

说一列的"选择性高",意思是【0】。

开始练习 →

数据库凭什么知道哪一列挑得更干净

数据库判断哪一列挑完剩得更少,靠的是【0】。

开始练习 →

⚠️ 两个条件,它挑了哪一份索引

下面这段给 price 和 cat 各建了索引,打出两个条件都给时它挑了哪一份、以及两个条件各自能命中多少行(三段,用 / 隔开)。 两张表 goods 400 行 id 主键|sup_id 1~20|cat 只有 A/B/C|pri

开始练习 →

⚠️ 统计没攒出来之前,它挑错了

另建一张小表:a 每一行都不一样,b 只有三种值。两列各建一份索引,两个条件一起给。下面这段打出攒统计之前挑了哪一份和攒完之后挑了哪一份(用 / 隔开)。 两张表 goods 400 行 id 主键|sup_id 1~20|cat 只

开始练习 →

自己写:量出一列的选择性

把下面的 TODO 补完,打出cat = "A" 命中几行和整张表有几行(用 / 隔开)。 两张表 goods 400 行 id 主键|sup_id 1~20|cat 只有 A/B/C|price = i*7%50

开始练习 →

自己写:让它在两份索引里挑一份

把下面的 TODO 补完:写一条同时给 price 和 cat 两个条件的查询,打出它挑了哪一份索引。 两张表 goods 400 行 id 主键|sup_id 1~20|cat 只有 A/B/C|price = i*7%500|na

开始练习 →

自己写:把"它凭什么这么挑"一次说清

把下面的 TODO 补完,打出它挑了哪份索引、那个条件命中几行、另一个条件命中几行(三段,用 / 隔开)。 两张表 goods 400 行 id 主键|sup_id 1~20|cat 只有 A/B/C|price = i*7%500|

开始练习 →

计划里多出来的那一行,多半在说什么

一条查询的计划有两行,第二行里写着"另外搭了一次架子"。这多半是因为【0】。

开始练习 →

怎么把那一行消掉

计划里"为了排序另外搭一次架子"那一行,通常可以靠【0】消掉。

开始练习 →