我有一个应用程序,通过PHP以10秒的间隔将数据从android发布到某些MySQL表。同一个PHP文件在同一个数据库中的某些其他表上执行大量查询,并在应用程序中下载和处理结果(使用DownloadWebPageTask)。
我通常以这种方式连接20到30个客户端。每个客户端查询的大多数数据与所有其他客户端的数据相同。如果30个客户端每10秒运行相同的查询,则将运行180个查询。事实上,每个客户端都运行多个查询,其中一些查询在循环中运行(循环遍历另一个查询的结果)。
我的问题是:如果我以某种方式生成包含相同数据的文本文件,并且每x秒更新一次该文本文件,并让所有客户端读取此文件而不是自己运行查询 - 这是一种更好的方法吗?它会减少服务器负载吗?
答案 0 :(得分:1)
在我看来,你应该考虑使用memcache。
它允许您将数据存储在内存中,这比磁盘上的文件或mysql查询更快。
它还将减少数据库的负载,这样您就可以使用相同的服务器/数据库设置为更多用户提供服务。
Memcache非常易于使用,互联网上有很多教程。
这是一个让你入门的人:
http://net.tutsplus.com/tutorials/php/faster-php-mysql-websites-in-minutes/
答案 1 :(得分:0)
您需要的是缓存。您可以缓存来自数据库的数据,也可以缓存页面本身。下面你可以找到几个关于如何在PHP中做同样的链接:
http://www.theukwebdesigncompany.com/articles/php-caching.php http://www.addedbytes.com/articles/for-beginners/output-caching-for-beginners/
是的。这将大大减少DB服务器负载。