SQLSTATE[HY000]: General error: 9002 TiKV server timeout

张映 发表于 2021-03-02

分类目录: tidb

标签:,

程序连tidb,概率性报SQLSTATE[HY000]: General error: 9002 TiKV server timeout和SQLSTATE[HY000]: General error: 9002 TiKV server timeout,并且都是同一张表,并且都是select报错。单独把sql copy出来到命令行下运行,非常非常的慢,但是能跑出来。

举例说明:

mysql> desc test;
+-------+-----------------+------+------+---------+----------------+
| Field | Type            | Null | Key  | Default | Extra          |
+-------+-----------------+------+------+---------+----------------+
| id    | int(4) unsigned | NO   | PRI  | NULL    | auto_increment |
| ids   | varchar(4)      | NO   |      | 0       |                |
+-------+-----------------+------+------+---------+----------------+
2 rows in set (0.00 sec)

mysql> select * from test;
+----+-----+
| id | ids |
+----+-----+
|  1 |   1 |
|  2 |   2 |
|  3 |   3 |
+----+-----+
3 rows in set (0.00 sec)

mysql> select * from test where ids in (2,3);    //非常慢
mysql> select * from test where ids in ('2','3');  //快

select * from test where ids in (2,3); 这个非常慢。

估计是in里面的值当成了int型,而表字段是varchar型,在执行过程中,做了类型转换,in里面的值越多越慢。
估计是in里面的值当成了int型,而表字段是varchar型,在执行过程中,做了类型转换,in里面的值越多越慢。
估计是in里面的值当成了int型,而表字段是varchar型,在执行过程中,做了类型转换,in里面的值越多越慢。



转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/tidb/2505.html