从0开始
查看执行计划: explain select * from t ;
例如
看懂执行计划,需要了解以下:

explain 后面加 analyze 会显示物理执行信息(上图第一个执行计划就是例子):
这使我想起了oracle的 dbms_sqltune.report_sql_monitor ,里面有一列是评估行数,还有一列是实际行数。同样的,tidb的计划里的count就是评估行数,而rows是实际行数。
进一步想伪造一些数据,当前表结构:

老方法 insert into t select * from t;
但是表有唯一索引约束。
就想用rownum来避开,但是tidb又没有,搜了一个小技巧:
-
insert into t select @rn:=@rn+1 as row_num,b,c,d
-
from (select @rn:=(select count(0)+100 from t))r,t;
看看这个怎么实现的

难为优化器了。
查看表上索引
查看环境变量: show varables like '%';
例如:
阅读(1876) | 评论(0) | 转发(0) |