tiflash什么情况下会走索引?
现在发现绝大部分情况下,tiflash都是走 TableFullScan 。即使表上建了索引也会视而不见。
tiflash本身就用不了索引吧,发现过有用到索引的时候吗
1 个赞
有,聚簇索引。
那用不了索引的话,是个bug,大表聚合会很慢
这不能算是 bug 吧,tilash 并不同步索引数据
你需要了解一下列存。tiflash使用的就是列存。
套用食神的一句话,那就是在列存中,根本没有什么索引,或者说列列都有索引。
tiflash走啥索引,它是列存数据库,相当于每一列上都有自己的索引
建索引也只是在tikv上创建了,而不是在TiFlash里,TiFlash都是表扫跟传统行存不一样的。
ok。那为什么有时候会走TableRangeScan?正常都是TableFullScan啊
well 确实有,在where条件里加上主键的范围查询,例如
mysql> explain select /*+ read_from_storage(tiflash[t]) */ * from t where uid > 1;
+------------------------+---------+--------------+---------------+----------------------------------+
| id | estRows | task | access object | operator info |
+------------------------+---------+--------------+---------------+----------------------------------+
| TableReader_7 | 1002.00 | root | | data:TableRangeScan_6 |
| └─TableRangeScan_6 | 1002.00 | cop[tiflash] | table:t | range:(1,+inf], keep order:false |
+------------------------+---------+--------------+---------------+----------------------------------+
2 rows in set (0.01 sec)
1 个赞
没有用到索引
在tiflash上,通常索引比不上fullscan
索引失效了
是的,tiflash一般是不会走索引的,虽然是全表扫描,但是速度杠杠滴~
这个应该对你也有帮助
1 个赞
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。