需要有关优化的帮助

时间:2009-11-23 13:00:33

标签: php mysql optimization

首先,我是一个autodidact,所以我不知道如何优化和东西。我创建了一个社交网站。

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

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

如果我创建一个新数据库,我也希望用户能够像评论一样评论商家信息等。那么我将如何能够提取条目,因为评论将在一个数据库和其他用户的详细信息上。

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

4 个答案:

答案 0 :(得分:2)

在您需要之前不要进行优化。

如果性能良好,请选择最简单的维护解决方案。

监控您网站的效果,如果网站开始变慢,请确切了解导致速度放缓的原因,并仅关注该网站的效果。

答案 1 :(得分: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数据库可以很容易地包含数百个表,因此我认为将其拆分没有任何好处 - 只需坚持使用一个。

答案 3 :(得分:1)

你可以证明算法是最快的。自从半个世纪以来,math.h和C库都得到了非常优化,并且在优化时其他非常先进的是perl结构。只需避免将所有内容放在网上以简化调试。有惯例,尝试让团队中的每个程序员遵循相同的约定。哪种约定是“正确的”使得不太合理而不是结果和一致。性能是您做的最后一件事,安全性和可懂度顶级prios。关于ordo符号的读取仅取决于软件,而次优软件可能比最佳相对不同的硬件更快。一个没有结构的完全buginfested意大利面条代码可以比最经过验证的最佳软件相对硬件响应快许多倍。