首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库是瓶颈吗?高可伸缩性谈话

数据库是瓶颈吗?高可伸缩性谈话
EN

Software Engineering用户
提问于 2013-07-30 10:14:38
回答 3查看 4.8K关注 0票数 6

我在高可伸缩性网站上发现了一篇有趣的文章,其中谈到了EBay的可伸缩性,特别是有一篇文章给我留下了深刻的印象:

"(Ebay策略)...Move从数据库进入应用程序,因为数据库是瓶颈。Ebay做到了这一点。我们在其他体系结构中使用缓存和文件系统,但eBay甚至在应用程序中执行许多传统的数据库操作(比如联接)。“

以上所述是毫无疑问的,因为在同一篇文章中:

将cpu密集型工作从数据库层移到应用程序层:引用完整性、连接、在应用层进行排序!推理:应用服务器便宜,数据库是瓶颈。

对此有什么解释吗?如果以上是正确的,那么我应该只使用数据库来检索数据,并在编程逻辑中执行所有其他操作。

我总是被告知相反的情况:“数据库是为对数据的操作而优化的,复杂的选择,所以要使用它们”。

有洞察力吗?

EN

回答 3

Software Engineering用户

发布于 2013-07-30 10:48:42

“量,别猜”。

我们不能认为Ebay的瓶颈与我们的瓶颈是一样的。对于我所处理的特定应用程序,当瓶颈存在时,很少是数据库(或者如果是的话,这是因为优化得很差的查询)。我之所以知道这一点,是因为我们审查了性能不佳的实例,并分析了应用程序正常性能的性能。

票数 7
EN

Software Engineering用户

发布于 2013-07-30 11:08:14

是的,关系数据库在横向可伸缩性方面是瓶颈;在大多数情况下,为了扩展RDBMS服务器,您需要一台功能更强大的机器,这将导致限制。这是NoSQL数据库作为RDBMS的替代品出现的主要原因之一,通过交换ACID事务。如果将应用程序逻辑以存储过程的形式放入数据库中,则瓶颈甚至更大。

通过转移应用程序层中的处理能力,整个应用程序可以更容易地扩展,因为一个编写良好的应用服务器可以部署在多台机器服务器上。一个替代方案是使用上面提到的NoSQL数据存储来实现可伸缩性;NoSQL数据存储也可以轻松地部署到多个节点上。

请注意,正如您在问题中所指出的,这只会在高可伸缩性的演讲中产生sens。在大多数情况下,如果使用得当,数据库就不是真正的瓶颈,它们的工作做得非常好,就像他们几十年来所做的那样。

票数 6
EN

Software Engineering用户

发布于 2013-07-30 10:22:56

内存是快速和非持久的,而驱动器是缓慢和持久的。如果您从数据库中提取数据并将其弹出内存,那么访问它的速度将大大加快--缺点是,如果服务器失败,您将丢失数据。

数据库非常适合于大多数应用程序。只有一小部分应用程序具有谷歌( google )、推特( twitter )等的规模,尽管这些公司如何克服挑战总是令人着迷的,但尝试从“围棋”( go )这个词来实现它们的解决方案将是天真的。

票数 5
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/206502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档