我制作了一个进度表,其中 1-30 个用户将在一天中不断更新。它由 PHP 和 jQuery 控制,所有数据都存储在 mySql 数据库中。
实时服务器上的速度很慢,因为我重新查询搜索和过滤器。我想知道存储结果的最佳位置在哪里,因为我只需要最新的更新,但不需要不断过滤和更新。
是否可以将此类数据存储在会话中,或者我还可以存储谁来避免每次更改/搜索或页面更改时的完整查询?
我确实研究了 memcached,但我最终重新设计了它。
我使用 jQuery 对匹配的数据属性使用 hide() 和 show() 过滤记录,而不是使用“LIKE '%Darren%'” SQL 查询。这会将负载放在与我的服务器相反的用户终端上(尝试将动画保持在最低限度,以保持较低的内存使用率)。
然后我在 HTML 中存储用户终端上最后一次更新的时间戳,然后定期运行“SELECT id FROW progress WHERE updated > '2014-02-20 16:54:30' LIMIT 1”查询。如果我得到 1 条记录,我会使用 Ajax 进行全面更新,并使用新的 HTML 刷新所需的区域。
这样做使它变得更快,更顺畅。
我这有什么帮助,如果您需要更多信息,请告诉我!