查询 RDS 与查询 S3(ListObject) 的性能

Querying to RDS vs Querying to S3(ListObject) regarding performance

我正在使用 RDS(远程数据库)、S3(远程存储)和 EC2 实例。

每当获取用户的头像时,确定该成员是否有头像,我的应用程序正在做:

  1. 使用ListObject判断avatar文件夹是否存在,如果存在则获取头像。(不能使用Head请求,因为filename(key)是随机数

    VS

  2. 我想更改使用 RDS(db) 获取头像的方式。每当用户上传头像时,文件名存储在DB中,我可以通过查询DB来确定头像是否存在,如果存在,则从S3获取头像。

所以两种方式的区别是使用 Listobeject 查询 S3 与查询 RDS 是否存在用户头像。

哪种方式在性能和成本方面更好?

我不完全了解 ListObject,但是,我认为它可能使用 file_exist、opendir、readdir、closedir 来列出对象,因此查询 DB 是更好的方法。不过没信心。

如有任何提示,我们将不胜感激。谢谢你。祝你有个好的一天! :)

您总是最好查询数据库。这是因为数据库 设计 用于查询,而 Amazon S3 设计用于存储数据。不一定那么快。

据推测,您的应用程序会在用户登录时从数据库中检索有关用户的信息,因此它也可以简单地检索此信息(不需要其他数据库访问权限)。