我们正在对许多服务器进行基准测试,以便迁移我们当前的网站。
我们已经针对当前设置测试了两个配置,使用mysqlslap测试并在表上运行具有相同数据的sql查询并使用php microtime进行测量。 mysqlslap测试如下:
然而,我对microtime结果的结果感到困惑,因为除了其中一项测试外,当前服务器的速度最快。当前服务器在运行较小的查询时似乎更快,而对于大型查询则更慢。这是一个基准案例的例子(以防万一我做了些蠢事!):
$t1 = microtime(TRUE);
for($i=1; $i<10; $i++)
{
$sql = 'SELECT a.ref, a.code, a.expiry
FROM payment a
WHERE a.Amount >0
AND a.type = "card"
AND a.user_id = '.$i.'
AND a.result = "success"
AND a.amount > 0
AND a.code = (SELECT b.code
FROM payment b
WHERE b.user_id = a.user_id
AND b.type="Card"
AND b.amount > 0
ORDER BY date DESC LIMIT 1
)
ORDER BY a.date DESC LIMIT 1';
mysql_query($sql);
}
$t2 = microtime(TRUE);
$t = $t2-$t1;
echo $t.'s';
所以我有两个问题:
更新:我通过mysqlslap运行与microtime测试中使用的相同的sql查询作为自定义查询,现在新配置的速度要快得多。在运行microtime测试时,我们使用实时数据库来检查常见请求 - 可能是结果已经在内存中了吗?