2011-03-18 46 views
1

我有一个MySQL服务器运行,将定期通过php前端查询。我稍微担心服务器负载,因为会有相当数量的人访问网页,每个会话都定期查询数据库。查询的结果,实质上网页对于所有用户都是相同的。MySQL查询,以减少服务器负载

有没有办法查询数据库一次,并输出数据/结果到网页,所有用户连接并查看?基本上为连接到网页的所有用户运行查询,而不是每个用户查询数据库。

任何建议表示赞赏。

谢谢

回答

3

您不必担心。
为此设计的数据库。

世界上大多数站点的运行方式完全相同:运行MySQL服务器将通过php前端定期查询。没什么不好的。

调整好的SQL服务器和正确设计的查询将比您想象的要多得多。 您需要特别高的流量才能开始担心这种情况。
不要忘记,MysQL有它自己的查询缓存

另外请注意,没有用户“连接”到网页。他们连接,获取页面内容并断开连接。

+0

在这种情况下不会在用户屏幕上打开页面时定期刷新数据。与ajax类似,但目前有点像javascript bodge。 – steve 2011-03-18 11:33:23

+0

@steve仍然没有连接。您目前是否遇到服务器负载的任何问题? – 2011-03-18 11:39:38

+0

Theres可能大约每分钟处理200个查询。你怎么看? – steve 2011-03-18 14:35:35

2

你应该给服务器一个尝试。如果服务器超载,您可以随时尝试使用Memcached工具。它可以通过PHP或MySQL直接使用。它可以让您免去查询类似查询的数据库服务器的麻烦,即服务器的负载将大大降低。

0

如果网页对于所有用户都是相同的,为什么你甚至需要有一个MySQL后端?

我认为最好的解决方案是定期运行一个独立的脚本(例如作为cron),为您的网页生成静态HTML。这样,用户无需查询数据库,无论何时他们最终都会看到完全相同的页面。

+0

因为结果是有效的基于时间,并从定期变化的数据库中提取数据。我喜欢cron的想法,我会研究它。干杯。 MySQL中的 – steve 2011-03-18 11:30:51

-2

如果它带有连接的大查询可以在mysql中使用查询数据创建视图并查询视图,并在数据更改时更新视图。

+2

视图不包含查询的结果,只包含查询的定义。 – Ronnis 2011-03-18 23:15:11