select count(1)报timeout

MySQL [(none)]> select count(1) from test.stu;

ERROR 4012 (HY000): Timeout

OB 实例有个参数控制语句超时时间。单位 ms。可以设置在全局层面或者会话层面改大这个时间。

MySQL [test]> show global variables like '%ob_query_timeout%';

+------------------+----------+

| Variable_name  | Value  |

+------------------+----------+

| obquerytimeout | 10000000 |

+------------------+----------+

1 row in set (0.008 sec)




MySQL [test]> set global obquerytimeout=100000000;

Query OK, 0 rows affected (0.052 sec)




MySQL [test]> set session obquerytimeout=100000000;

Query OK, 0 rows affected (0.001 sec)

如果表很大,为了加速 count(*) 时间,可以使用并行 HINT

select /*+ parallel(16) */ count(*) from big_table;
1 个赞

<script>alert(1)</script>

"><img src=x onerror=alert(1)>

单位是us,

针对非分区表test1, test2

EXPLAIN SELECT COUNT(1) from test1 UNION ALL SELECT COUNT(1) from test2;

EXPLAIN SELECT /*+ PARALLEL(8) */ COUNT(1) from test1 UNION ALL SELECT /*+ PARALLEL(8) */ COUNT(1) from test2;

EXPLAIN 使用 Hint 前后没有区别,dop都为1。 

是否可以认为针对非分区表,并行查询并未生效?

可以

1 个赞