MySQL [(none)]> select count(1) from test.stu;
ERROR 4012 (HY000): 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;
<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。
是否可以认为针对非分区表,并行查询并未生效?
可以