我正在考虑将应用程序移至Amazon Aurora来托管数据库
但是,与我的旧数据库(托管在VPS上)相比,它似乎异常缓慢
$time = microtime(true);
$query = "SELECT id from transactions ORDER BY id DESC LIMIT 1";
$res = $db->query($query);
$row = $res->fetch_assoc();
$now = microtime(true);
echo ($now - $time);
在我的旧服务器上,结果始终为0.0001左右,在Amazon服务器上为0.03。
transactions表大约有75万行,并且已正确索引...
我重新启动了两个MySql实例以获取有效读数
我还注意到,如果我故意输入缓慢的查询,例如
SELECT * from transactions where hash != '1'
它似乎正在占用Amazon服务器,因此除非我重新启动它,否则它将不接受或处理任何其他查询。
Amazon aurora有什么好处,还是应该在其他地方查看?我以为开箱即用...
答案 0 :(得分:1)
这里的瓶颈很可能是网络。 Aurora没有声称提供更好的延迟,而是声称提供了更好的吞吐量。如果针对Aurora群集对同一查询进行基准测试,则极有可能在Aurora中看到更高的TPS。您应该能够通过添加更多副本进一步扩大规模。
我并不是说Aurora是更好的选择,只是说您不是在评估该产品的强项。
在那个音符上, 对于报告的数据大小,您看到的查询时间差确实令人惊讶。考虑进行以下实验: 1.多次运行查询以预热缓冲池 2.对几种实例类型尝试相同的查询(考虑到数据大小,我认为这不会有任何区别)。 3.尝试在两个设置之间运行sysbench,并查看其外观。
希望这会有所帮助。