关于大公司如何建立数据库

关于大公司如何建立数据库

我想知道处理大型数据库请求的公司如何设置其基础设施。我最近创建了一些 Python 应用程序,它们将数据存储在 PostGres 中,并且读取/写入请求需要时间;因为它们不存储在 RAM 中,并且是速度的巨大瓶颈。如果用户数量少于 10,它仍然可以工作,即使有 100 个用户排队,它也可以工作,但如果有数千个请求,数据是如何存储的,因为它会在读取和写入过程中变慢。

在我最近正在开展的一个网站项目中,我有一个想法,读取整个数据库并将其存储在 pandas 中,并定期将其更改的条目写入数据库。这种方法在操作系统崩溃并必须重新启动的情况下似乎很危险,这会导致数据丢失。

这是大公司的方法吗?他们将整个数据库读到 RAM 中吗?如果不是,您能否建议我可以用什么可能的方法处理博客网站的大数据,从而减少读/写时间。

即使你能给我指出一些可以让我进一步了解它的页面,也足够了。谢谢

答案1

即使是相对较小的服务器也能够每秒执行数百个查询。

因此我认为首先,主要的瓶颈是由于 Postgres 实例的调整不当造成的。有大量可调参数,请跳至PGtune以获得良好的起始曲调。

然后,查看您的查询。您是否有涵盖大多数查询的索引?使用explain(例如在 pgAdmin 中)运行您的查询,看看它们的效率如何

然后,查看您的查询是否返回适当的数据集大小。如果您只需要 1 条记录,则无需返回整个表。在这种情况下,请优化您的查询。

你看,有一个很多在转向更奇特、更复杂且通常更脆弱的技术之前,您可以这样做。

关于你的评论:特别是对于 postgres维基百科有一些有趣的信息。无论如何,阅读这本精美的手册也很重要。数据库引擎是精细的工程作品,您应该了解其内部发生的事情,以便真正管理好它们。还有一些坏消息:调整数据库高度依赖于数据库的大小、访问数据库的方式和效率,在现实世界中,您将不断关注数据库的执行情况以及哪些操作可以改善这种情况。我们使用保格獾用于许多分析任务。

相关内容