gpt4 book ai didi

sql - 为大型 Web 应用程序选择什么数据库策略

转载 作者:可可西里 更新时间:2023-11-01 11:13:57 25 4
gpt4 key购买 nike

我必须重写一个运行在 32 台服务器上的大型数据库应用程序。硬件是最新的,每台机器都有两个四核 Xeon 和 32 GByte RAM。

数据库是 Multi-Tenancy 的,每个客户都有自己的文件,每个大约 5 到 10 GB。我在这个硬件上运行了大约 50 个数据库。该应用程序对网络开放,所以我无法控制在负载上。没有真正复杂的查询,因此如果有更好的解决方案,则不需要 SQL。

数据库每天午夜通过 FTP 更新。数据库是只读的。C# 是我最喜欢的语言,我想使用 ASP.NET MVC。

我考虑了以下选项:

  • 使用两台运行 SQL Server 2012 的大型 SQL 服务器为 32 台服务器提供数据。在 32 台运行 IIS 托管的服务器上提供 REST 服务。

  • 对数据库进行非规范化处理,并在每个网络服务器上使用 Redis。使用 booksleeve 作为 Redis 客户端。

  • 结合使用 SQL Server 和 Redis

  • 将 SQL Server 2012 与 Hadoop 结合使用

  • 在没有 SQL Server 的情况下使用 Hadoop

对于只读数据库来说,在不失去可维护性的情况下获得最佳性能的最佳方法是什么?在这种情况下,Map-Reduce 是否有意义?

重写的原因是,使用 ISAM 技术用 C++ 编写的旧应用程序太慢,界面陈旧,不适合从网站使用,尤其是在使用 ajax 时。

该应用程序使用包含许多表的关系数据模型,但可以编写一个加速器表,在该表上执行所有查询,并通过简单的键查找获得其他表中的所有其他信息。

最佳答案

几个问题。您在重写此代码时遇到了什么问题?查询模式是什么样的?听起来您最喜欢使用 SQLServer + 缓存 (memcached) 来解决导致您重写它的任何问题。 Redis 很好,但您不需要数据库处理查询的数据结构功能,如果它仅用作缓存,则不需要持久性。在不知道更多关于这个问题的情况下,我想我会看看 MongoDB 来处理数据分片、冗余存储和缓存,所有这些都在一个解决方案中。此设置中没有特殊机器,可以配置冗余,并且负载应该很好地平衡。

关于sql - 为大型 Web 应用程序选择什么数据库策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11277530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com