我正在为我的MySQL数据库尝试Amazon Aurora。当我运行mysqldump时,我的数据库大约是600 GB。我有一个在本地运行的实例,一个在我的VPS中,一个在Aurora上(我在过去24小时内上传)。
当我运行"从员工中选择sql_no_cache *;"在这三种环境中的每一种环境中,我都看到Aurora需要更长的时间来返回超过100万条记录。我想尽可能地比较苹果和苹果。我在MySQL Workbench和终端上运行了这个查询。结果是本地大约3.5秒,Aurora上的VPS到214s。
在我放弃Aurora之前,任何想法为什么我都会看到性能上的结果,我认为这种技术的性能比标准MySQL高出5倍?正在查询我的Aurora数据库,就像我的MySQL数据库(使用Workbench或终端)对性能进行不切实际的测试一样?我是否需要进行一些进一步的配置或调整?
我相信Aurora很快,所以我一定做错了。如果从我的结尾查询这个很慢,那么我希望如果我的应用程序要查询它,它会是类似的。
答案 0 :(得分:7)
是的,测量单个select sql_no_cache * from employees;
查询的响应时间是从连接到RDS Aurora实例的本地工作站上的Workbench / Terminal客户端返回100万条记录,这是一种不切实际的性能测试。它不仅不是一个苹果对苹果的比较,而且当你的应用程序在生产中查询数据库时,它也没有(或者不应该)表现得类似。
首先,比较苹果与苹果:
r3.8xlarge
)进行比较。其次,要运行类似于您的应用程序查询数据库时的预期测试:
sysbench
是一个标准的数据库基准测试工具,可以启动一系列并发查询并测量请求数/秒。sysbench
中的OLTP(在线事务处理)基准测试提供了与典型Web应用程序工作负载类似的set of queries。长期运行的全表扫描类型查询在Amazon Redshift等数据仓库产品上得到了更好的优化。r3.8xlarge
实例类型有32个CPU,并且在Aurora的优化方面表现更好。要重现亚马逊使用的确切性能基准,您可以按照Amazon Aurora Performance Benchmarking Guide中的粗略设置细节进行操作。
对于5x性能声明背后的具体数字,请参阅Verbitski等。 (2017),"Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relational Databases":
对于每个更高的实例大小,Aurora的性能提高了一倍,r3.8xlarge的性能提高了121,000次/秒和600,000次读取/秒,这是MySQL强度的5倍,最高为20,000 [写入] /秒和125,000 [读取] /秒。