数据库表 - 有多少个数据库?

3

一个社交网站需要多少个数据库?我有一个技术团队正在开发一个社交网站,但是他们所有的表都在一个数据库中。我想为用户数据、临时表等创建单独的表集,并考虑可能只有一个单独的数据库用于重要数据等,但我不是技术人员,不确定如何操作?该网站将成为一个本地评论网站。

答:通常情况下,一个数据库足以支持社交网站的运行。但是,为了更好地管理和维护数据,你可以考虑使用多个数据库。例如,你可以将用户数据存储在一个数据库中,将评论和其他非关键数据存储在另一个数据库中。另外,你也可以使用一个数据库作为主数据库,并将重要数据存储在单独的表或架构中,以提高数据安全性。无论如何,建议在数据库设计方面寻求专业帮助,以确保你的网站能够顺利运行。

我不是数据库专家,所以我不会给出答案,但是......将100个表放在一个数据库中与将1个表放在100个数据库中并没有太大关系。我能想到的唯一好的理由是将需要更安全的数据(密码列表)与不需要的数据分开。例如,如果有人从您的媒体上传程序成功进行了SQL注入并截断了所有表格,他们不会触及密码条目列表。 - Evan Plaice
6
如果你承认自己“不是技术人员,不确定这是如何工作的”,那么使用多少个数据库有什么区别? - Ken
如果黑客能够获得足够权限的帐户凭据,同一实例上使用多个数据库也没有意义。因此,必须保护访问数据库所使用的帐户的权限。 - OMG Ponies
8个回答

2

警告:将像这样的答案标记为社区维基。那些没有幽默感的人可能会给你投反对票,但是对于社区维基答案(赞成或反对),您的声望不会受到影响。否则,请使用评论。 - OMG Ponies

2
简单的答案总是“尽可能少”。
稍微复杂一点的答案是,一旦您开始推动服务器的极限并开始考虑具有主/从复制的多个服务器,那么您可能希望将您的频繁写入表格与您的不经常写入表格分开,这将降低主-从更新要求。

1

如果您开始使用分开的数据库,您还可能遇到备份/恢复策略的问题。如果您有5个数据库并备份所有五个,当您需要恢复其中一个时,您是否需要恢复全部五个?

我建议尽可能少地使用数据库。


1
你需要多个数据库的原因是为了将负载分散到多台机器上。在“社交应用”中,大容量/高可用性是一个问题。如果你预计需要扩展到多台机器来处理高容量,则表格的拆分应该是那些逻辑上需要保持在一起的表格。
例如,也许你想将与特定主题相关的表格(比如状态更新)放在一个数据库中,而将与不同主题相关的其他表格(比如用户图片库)放在另一个数据库中。
将表格放在单独的物理或逻辑数据库中有逻辑和性能方面的原因。

0

目前使用一个数据库会更好。你的开发者可以通过利用数据库架构来隔离/分离应用程序数据。使用多个数据库可能会很快变成一场痛苦之旅,除非绝对必要,否则应避免。


0

你想要在不同的数据库中使用的原因是什么?

你可以将所有表格放在一个数据库中,而不会出现问题,即使有多个开源软件包的安装。在这种情况下,你可以使用表格前缀。


0

除非您正在开发一个非常大的网站,否则一种数据库就足够了(顺便问一下,您是否考虑过使用多个数据库时可能出现的问题?)。

如果您担心性能问题,可以在几个存储设备上配置不同的表空间以改善时间。

如果您担心安全问题,只需增强安全性(更好的密码、禁止直接root登录、禁止端口转发、避免隧道等)。


0

我不是技术人员,只是进行功能分析,但我拥有这个项目,所以我需要监督技术团队。我选择使用多个数据库的原因是出于安全和性能考虑。

由于这将是一个新的创业公司,没有资金投入强大的安全性或完美的数据库设计。此外,目前还没有备份策略,因此: 1)我想要分离关键数据,如用户密码/基本配置文件信息,然后分离用户媒体(他们在个人资料上上传的照片),然后是用户内容。然后分离系统内容。当前设计是具有两层表:整个系统的主表和每个单独模块的模块表。 2)性能:正在设计许多模块,并且这是一个数据密集型社交网站,内置了许多报告/分析,因此有很多读/写操作。也许更好地根据目的分布负载在数据库中?

由于没有太多资金,因此我希望第一次就做对我的投资,以便数据库可以扩展并正常工作,直到收入足以真正投资于正确的数据库设计。当然,这可能需要6个月的时间,而且可能还需要100万个用户。

哦,还有计划添加分阶段/生产模式,因此是单独的数据库还是相同的数据库?


Thomas,你应该编辑自己的问题,添加额外的信息,而不是给出一个“答案”。 - Federico Cristina
1
如果你负担不起“强大的安全性”或备份,多个数据库也无法帮助你。当一个社交网站除了登录名和密码之外失去了用户的所有数据,他们就不会再回来了。而且要习惯第一次就出错,因为即使是世界上最聪明的人也无法预测复杂系统的性能。好消息是,除非你每15秒钟就有一个新用户,否则你不会在6个月内达到100万用户——你有更多的时间。 :-) - Ken

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接