0x01 benchmark 函数

BENCHMARK(count,expr)

BENCHMARK()函数重复countTimes次执行表达式expr,它可以用于计时MySQL处理表达式有多快。结果值总是0。

语句:select benchmark(10000000,sha(1));

  1. mysql> select benchmark(10000000,sha(1));
  2. +----------------------------+
  3. | benchmark(10000000,sha(1)) |
  4. +----------------------------+
  5. | 0 |
  6. +----------------------------+
  7. 1 row in set (3.59 sec)

0x02 sleep 函数

mysql 5.0.12以上版本支持

语句:select sleep(5);

  1. mysql> select sleep(5);
  2. +----------+
  3. | sleep(5) |
  4. +----------+
  5. | 0 |
  6. +----------+
  7. 1 row in set (5.00 sec)

0x03 笛卡尔积

这种方法又叫做heavy query,可以通过选定一个大表来做笛卡儿积,但这种方式执行时间会几何倍数的提升,在站比较大的情况下会造成几何倍数的效果,实际利用起来非常不好用。

注意:有大表的时候,不要连接那么多的表,不然会卡

语句一:SELECT count(*) FROM information_schema.columns A, information_schema.columns B;

语句二:SELECT count(*) FROM information_schema.columns A, information_schema.columns B, information_schema.tables C;

  1. mysql> SELECT count(*) FROM information_schema.columns A, information_schema.columns B;
  2. +-----------+
  3. | count(*) |
  4. +-----------+
  5. | 158432569 |
  6. +-----------+
  7. 1 row in set (3.46 sec)