1

我已经开发一个网站已经有一段时间了,到目前为止一切都很快而且很好,尽管那是一个活跃的用户。我不知道有多少人会在第一周、第一个月或第一年使用我的网站。

我一直在研究缩放意味着什么以及如何实现它,而缓存似乎是其中的重要组成部分。所以我开始寻找缓存我的内容的方法。目前我刚刚在 XAMPP 中开发了网站。我使用 MySQL 作为数据库,使用简单的 PHP 和 MySQLi 来编辑数据。我还使用 OS X Mountain Lion 中的内置系统消息应用程序做一些简单的日志记录。所以我正在考虑使用Memcache进行缓存。

这是一个好方法吗?

我如何测试它才能真正看到差异?

我怎么知道即使有更多用户它也能很好地工作?

有没有好的基准测试应用程序?

4

2 回答 2

3

有很多方法可以确保数据库能够很好地扩展,但我认为最重要的部分是为表定义适当的索引。至少作为外键的字段应该定义一个索引。

例如,如果您有一个大型论坛,您可能有一个如下所示的主题表:

topic_id | name
---------+--------------------------------
       1 | "My first topic!"
       2 | "Important topic"
       3 | "I really like to make topics!"
     ... | ...
 7234723 | "We have a lot of topics!"

然后是另一个表格,其中包含主题中的实际帖子:

post_id  | user       | topic_id
---------+------------+---------
       1 | "Spammer"  | 1
       2 | "Erfa"     | 2
       3 | "Erfa"     | 1
       4 | "Spammer"  | 1
     ... | ...        | ...
87342352 | "Erfa"     | 457454

当您在应用程序中加载主题时,您希望加载与主题 ID 匹配的所有帖子。在这种情况下,您无法查看所有数据库行,因为实在太多了!幸运的是,您不必做太多事情来确保完成,您只需为字段 topic_id 创建一个索引就可以了。

这是使您的数据库良好扩展的非常基本的事情,但是由于它如此重要,我真的认为应该有人提及它!

于 2012-10-23T19:20:08.307 回答
2

获取和使用jMeter

使用 jMeter,除了确认当前没有任何错误发生外,您还可以测试返回的响应速度以及页面加载方式。这样你就可以模拟大量的负载;在进行调整(例如使用 memcache)时看到实际的性能更新。

于 2012-10-23T19:10:13.883 回答