我有一个Grails的应用程序。我使用Hibernate访问数据库(根据标准的grails规则),我使用MySql,站点工作稳定(6个月)。
我正在做负载测试,最近发现数据库在负载下会拒绝连接。
使用MySQL Server5,我可以看到连接的线程在20左右徘徊,我想我在11 - 30之间跳跃。
mysql> show status like '%con%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-----
我对这个简单的MySQL查询有问题:
select sender as id from message where status=1 and recipient=1
其中发件人表有数百万行。
当我在SequelPro上运行它时,它第一次运行非常慢,~4秒或更长,下一个执行它运行得非常快,~0.018秒。然而,如果我在几分钟后再跑一次,它会再次做同样的事情。
我试着使用SQL_NO_CACHE,但是它仍然给了我同样的结果。
DB引擎是innoDB,DB是MySQL Percona XtraDB集群。以下是解释结果:
|id|select_type|table |type|possible_ke