TIDB SQL优化
两处标红的需要注意下:
- 如果去除第一个红框框里面的语句 DESC SQL语句可以发现执行过程发生改变:
可以发现 t3,t4两张表的userId关联没有走索引。
/*+ TIDB_INLJ(t3,t4) */
上面这句其实是 TiDB Index Lookup Join 算法 详情:https://segmentfault.com/a/1190000015411838
- 如果去除第二个红框框里面的语句 DESC SQL语句可以发现执行过程发生改变:
我们可以发现红框中也没有走索引,原因是两张表的userId一个是Int类型还有一个是varchar类型的,所以需要将字符类型转换下。
本文只讲了这两个方面,其他的TIDB语句优化与Mysql相差不大,处理好索引的使用查询速度都是毫秒级的(生产使用)。