mysql 函数与CPU 利用率

来源:互联网 发布:java算法基础 编辑:程序博客网 时间:2024/06/16 10:56
 mysql> select version();
+----------------------+
| version()            |
+----------------------+
| 5.1.60-community-log |
+----------------------+
1 row in set (0.00 sec)

 

对mysql做压力测试,400并发时cpu使用率达到90%左右。

使用下述SQL,观察数据库的状态:
select * from information_schema.`PROCESSLIST`   where INFO is not null

发现有大量的SQL在等待,基本上是同一条SQL.这些SQL有一个共性就是使用到了一个获取一个小时前时间的函数。

 

BEGIN DECLARE compareTime datetime default sysdate(); select ADDtime(SYSDATE(), '-01:00:00') into compareTime; RETURN compareTime;END



在sql中把有函数获取时间,改为传固定的时间。用相同的并发去测试,发现cpu使用率下降了30%。

最后把这个取时间函数的功能放到程序里实现。

 

数据库中慎用函数,尤其是系统函数,切记。

原创粉丝点击