我正在考虑优化我的类似 reddit 的网站。如果您需要描绘它,只需考虑Reddit。
至于现在我有 3 个表:USER、POST 和 USER_CHAN
因此,对于每个用户,您在 USER_CHAN 中都有他订阅的 chan(像 irc 一样思考)
USER_CHAN
user_id chan_id
所以我在这样的请求中做了一个联合:
SELECT post.* FROM post JOIN user_chan ON user_chan.user_id = {$session[id]} AND post.chan_id = user_chan.chan_id
然后我将结果缓存到一个像这样命名的文件中:
sort-list_of_chans-page.html
例如,它看起来像这样:
hot-1,2,5,6-1.html
(按热排序,用户订阅了chan 1,2,5和6,结果的第1页)
或者
last-1,5,7,8-4.html
然后,jquery
在加载缓存后,查询每个结果 ($('box').each) 以显示应用了哪种投票(默认情况下不应用投票)
我希望每个人都一直关注我直到这里!
(当它超过第 20 页时,我也不缓存任何内容,我认为很少有用户会访问这些页面)
问题是,我不知道这个优化是否真的“好”,而且我还有这个新想法:
如果我将这种结果缓存为JSON
或表格 格式,比如说 20 页。
然后我用 加载这个缓存的东西PHP
,检查PHP
每个结果以应用投票(然后我可以做一个大请求和多个请求),然后显示结果。
不使用jquery
,缓存文件会更小,我可以使用reddit的“隐藏”功能......你怎么看?我应该使用JSON
还是其他东西来实现这个?