Amazon Aurora RDS 查询似乎很慢 - 想法?
Amazon Aurora RDS queries seem very slow - ideas?
我正在考虑将应用程序移动到 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 的结果,但在亚马逊服务器上为 0.03。
事务 table 大约有 750k 行,并且已正确编入索引...
我重新启动了两个 MySql 个实例以获得有效读数
我还注意到,如果我故意放慢查询,例如
SELECT * from transactions where hash != '1'
它似乎占用了 Amazon 服务器,以至于它不会接受或处理任何其他查询,除非我重新启动它。
Amazon aurora 好用吗,还是我应该去别的地方看看?我原以为它开箱即用...
这里的瓶颈很可能是网络。 Aurora 并没有声称可以提供更好的延迟,它声称可以提供更好的吞吐量。如果您针对 Aurora 集群对同一查询进行基准测试,您很可能会在 Aurora 中看到更高的 TPS。您应该能够通过添加更多副本来进一步扩大规模。
我并不是说 Aurora 是更好的选择,只是说您没有评估产品的强项。
关于这一点,
对于您报告的数据大小,您看到的查询时间差异确实令人惊讶。考虑做以下实验:
1. 运行查询几次来预热缓冲池
2. 在几个实例类型上尝试相同的查询(考虑到数据大小,我认为这不会有任何区别)。
3. 在 2 个设置之间尝试 运行 sysbench,看看效果如何。
希望这对您有所帮助。
我正在考虑将应用程序移动到 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 的结果,但在亚马逊服务器上为 0.03。
事务 table 大约有 750k 行,并且已正确编入索引...
我重新启动了两个 MySql 个实例以获得有效读数
我还注意到,如果我故意放慢查询,例如
SELECT * from transactions where hash != '1'
它似乎占用了 Amazon 服务器,以至于它不会接受或处理任何其他查询,除非我重新启动它。
Amazon aurora 好用吗,还是我应该去别的地方看看?我原以为它开箱即用...
这里的瓶颈很可能是网络。 Aurora 并没有声称可以提供更好的延迟,它声称可以提供更好的吞吐量。如果您针对 Aurora 集群对同一查询进行基准测试,您很可能会在 Aurora 中看到更高的 TPS。您应该能够通过添加更多副本来进一步扩大规模。
我并不是说 Aurora 是更好的选择,只是说您没有评估产品的强项。
关于这一点, 对于您报告的数据大小,您看到的查询时间差异确实令人惊讶。考虑做以下实验: 1. 运行查询几次来预热缓冲池 2. 在几个实例类型上尝试相同的查询(考虑到数据大小,我认为这不会有任何区别)。 3. 在 2 个设置之间尝试 运行 sysbench,看看效果如何。
希望这对您有所帮助。