【发布时间】:2011-03-18 11:21:03
【问题描述】:
我有一个 MySQL 服务器正在运行,它将通过 php 前端定期查询。我有点担心服务器负载,因为会有相当多的人访问该网页,每个会话都会定期查询数据库。查询的结果,本质上网页对于所有用户来说都是一样的。
有没有办法查询一次数据库,并将数据/结果输出到网页,所有用户都可以从该网页连接和查看?基本上是为所有连接到网页的用户运行查询,而不是每个用户查询数据库。
任何建议表示赞赏。
谢谢
【问题讨论】:
我有一个 MySQL 服务器正在运行,它将通过 php 前端定期查询。我有点担心服务器负载,因为会有相当多的人访问该网页,每个会话都会定期查询数据库。查询的结果,本质上网页对于所有用户来说都是一样的。
有没有办法查询一次数据库,并将数据/结果输出到网页,所有用户都可以从该网页连接和查看?基本上是为所有连接到网页的用户运行查询,而不是每个用户查询数据库。
任何建议表示赞赏。
谢谢
【问题讨论】:
您不必担心。
用于此的数据库。
世界上大多数站点的运行方式完全相同:MySQL 服务器运行,将通过 php 前端定期查询。没什么不好的。
经过良好调整的 SQL 服务器和设计合理的查询将提供比您想象的更多的服务。
您将需要非常高的流量才能开始担心这些事情。
不要忘记 MySQL 有它自己的查询缓存。
另外请注意,没有用户“连接”到该网页。他们连接,获取页面内容并断开连接。
【讨论】:
您应该尝试一下服务器。如果服务器超载, 您可以随时尝试 Memcached 工具。它可以通过 PHP 或 MySQL 直接使用。它将使您免于使用类似查询查询数据库服务器,即服务器上的负载将大大减少。
【讨论】:
如果网页对所有用户都一样,为什么还需要 MySQL 后端?
我认为最好的解决方案是让一个独立的脚本定期运行(例如,作为一个 cron),它会为您的网页生成静态 HTML。这样一来,用户就无需查询数据库,因为他们最终会得到完全相同的页面。
【讨论】:
如果它是一个带有连接的大型查询,您可以在 mysql 中使用查询的数据创建一个视图并查询该视图,并在数据更改时更新该视图。
【讨论】: