两个条件都能走索引,它挑哪个
一条查询有两个条件,两列上都有索引。数据库通常会挑【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】消掉。