2009-11-23 106 views
0

首先,我是一名自学者,所以我没有很好的了解优化和东西。我创建了一个社交网站。需要关于优化的帮助

它现在包含29个表格。我想通过添加诸如黄页,事件等来扩展其功能,使其更像门户网站。

现在的问题是我应该简单地在同一个数据库中添加表还是应该使用不同的数据库?

而且,如果我创建一个新的数据库,我还希望用户能够评论商业清单等评论。因此,我将如何能够取消条目,因为评论将在一个数据库和其他用户的详细信息。

是否可以在两个不同的数据库上连接表?

+0

你真的需要优化吗? 29张桌子听起来不像是一个巨大的数额。这些表有多大,你有多少个并发用户? – 2009-11-23 13:04:43

+0

这就是我不知道如果应该在同一个数据库中完成或不。目前只有2MB的数据库。但由于它是一个社交网站,我想从开始本身进行优化。一直有大约20个并发用户,预计它会在两个月内达到1000个左右。所以请回答基于1000.谢谢 – 2009-11-23 13:07:16

+0

我目前正在开发一个项目,其中每个表格的容量均超过120GB - 我认为您不会遇到任何技术限制。 – nickf 2009-11-23 13:12:20

回答

2

您可以通过完全验证名称来将数据表连接到单独的数据库中,但真正的问题是您为什么要将信息放在单独的数据库中?如果所存储的信息全部关联在一起,则应该将其存储在一个数据库中,除非有令人信服的(通常与性能相关的)原因。

我看到将你的YellowPages分开的主要原因是你希望有一个YellowPages可以访问几个不同的非互动网站。也就是说,你可能不想在列表中发表相关评论,因此评论需要存储在网站数据库中,而不是YellowPages数据库中。这听起来像是一场维护噩梦。

2

不要优化,直到你需要。

如果性能没问题,去最容易维护解决方案。

监控您的网站的性能,如果它开始变慢,请确切指出是什么导致放缓并只关注该部分的性能。

1

您绝对可以查询并连接来自两个不同数据库的表格 - 您只需要以dbname.tablename格式指定表格即可。

SELECT a.username, b.post_title 
FROM dbOne.users a INNER JOIN dbTwo.posts b USING (user_id) 

但是,它可能会使管理和维护对您来说变得更加复杂。例如,您必须跟踪哪个表属于哪个数据库,并且将不断需要将数据库名称添加到所有查询中。当需要备份数据时,您的工作也会随之增加。 MySQL数据库可以很容易地包含数百个表格,所以我看不出分割它的好处 - 只需坚持一个。

1

你可以证明算法是最快的。 math.h和C库自从半个世纪以来非常优化,其他优化方面的其他进展也是perl结构。请避免将所有内容放在线上,以便调试。有约定,尽量让团队中的每个程序员遵循相同的约定。哪一个惯例是“正确的”比最终的和一致的最优化要少。性能是你做的最后一件事,安全性和可理解性是最重要的。阅读有关ordo符号的信息仅取决于软件,而次优软件可能比相对不同硬件的最佳软件更快。没有结构的完全buginfested意大利面代码可以比最成熟的最佳软件相关硬件响应快许多倍。