2010-06-17 52 views
3

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

+0

我不是db专家,所以我不会留下任何答案,但......无论您是将100个表放在一个数据库中,还是将100个表放入100个数据库中,都无关紧要。我能想到的拥有多个数据库的唯一好理由是将需要更安全的数据(密码列表)与不包含数据的数据分开。防爆。如果有人从您的媒体上传器管理成功的sql注入并截断所有表,他们将不会触摸密码条目列表。 – 2010-06-17 23:25:43

+6

如果你自己承认“不是技术人员,现在[原文如此]肯定它是如何工作的”,那么使用多少数据库有什么不同? – Ken 2010-06-17 23:31:10

+0

如果一个黑客得到足够的影响力的账户凭证,那么同一实例上的多个数据库就没有实际意义。保护用于访问数据库的帐户的权限。 – 2010-06-17 23:58:49

回答

0

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

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

2

简单的答案,一如既往,是尽可能少

稍微更复杂的答案是,一旦你开始把你的服务器的限制,并开始考虑多个服务器与主/从复制,然后你可能会想你的频繁写入表从很少写分离这将降低主从更新要求。

0

除非你正在开发一个真正的BIG网站,否则一个数据库是继续进行的方式(顺便说一下,你是否考虑过使用各种数据库时可能引发的问题?)。

如果您担心性能问题,可以随时在多个存储设备上配置不同的表空间以提高时序。

如果你担心安全,只是增加它(好密码,没有直接root登录,没有端口转发,避免隧道等)

0

我不是一个高科技的人只是做了功能分析,但我拥有该项目,所以我需要监督技术团队。我有多个数据库的原因是安全性和性能。

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

由于没有太多资金,因此我希望我的投资能够第一时间做到这一点,因此数据库可以很好地工作,直到收入进入实际投资中。当然,这也许可能需要6个月的时间,也可以说还有100万用户。

哦&有计划添加分段/生产模式也这样分开或相同的数据库?

+0

托马斯,而不是给出一个“答案”,你应该编辑自己的问题,添加额外的信息。 – 2010-06-18 01:07:43

+1

如果您无法承担“强大的安全性”或备份,多个数据库不会帮助您。当社交网站丢失除登录名和密码以外的所有用户数据时,他们不会回来。并习惯于第一次做错,因为世界上最聪明的头脑无法预测复杂系统的性能。好消息是,除非每15秒获得一位新用户,否则在6个月内你不会达到1M用户 - 你有更多的时间。 :-) – Ken 2010-06-18 03:55:10

1

如果你开始使用单独的数据库,你也可以运行你的备份/恢复策略。如果您有5个数据库并全部备份了5个数据库,那么当您需要恢复其中一个数据库时会发生什么,那么您是否需要恢复全部五个数据库?

我会选择最少数量的数据库。

1

您希望拥有多个数据库的原因是为了扩展到多台机器。在大量/高可用性成为关注的“社交应用”中。如果您预计需要扩展到多台机器来处理大量数据,那么表格的突破应该是那些逻辑上需要保持在一起的数据。

因此,例如,您可能希望将与某个特定主题区域(可能是状态更新)相关的表格一起保存在一个数据库中,以及与其他主题区域(比如用户的图片库)相关的其他表格一起保存不同的数据库。

将表保存在单独的物理或逻辑数据库中存在逻辑和性能原因。

0

你会很好地坚持使用一个数据库。您的开发人员可以通过使用数据库架构来隔离/分离应用程序数据。使用多个数据库可以迅速成为一个痛苦世界的旅程,除非它绝对至关重要,否则应该避免。