1

好的,我已经看到了很多问题,但没有一个真正解决了我的“问题”。

简单地说。可以这么说,我有某种可以“喜欢”的对象。如果有人喜欢它,则运行脚本(通过 AJAX)以 likes=likes+1 更新 db 中的字段。但是,如果很多人在线并且喜欢它意味着每个喜欢我都会得到 1 个查询,这对我的数据库连接有很大影响。因此,我得到了 APC。但我希望它将这些喜欢存储在缓存中,并且每个“喜欢”它实际上将某个变量增加 1,但在从缓存中删除变量之前,我希望将其插入数据库中。这个过程的最佳实践是什么?

谢谢

编辑

好的,抱歉缺乏信息。好吧,实际上我有 dedi 服务器,还有一些类似 twitter 的网站。发生的情况是访问者数量每天都在增加,并且我开始收到超出我的 sql 连接限制的错误日志。在使用共享主机之前,我遇到了繁重的 php 脚本(尤其是选择)的问题,而且我几乎没有缓存。所以我想尝试 APC 来最小化 mysqli 连接的数量,最常见的 sql 任务之一就是喜欢/不喜欢。它只会增加一个值。我也会缓存选择,但我不在乎他们的时间是否过期,因为没有信息丢失......

我没有任何触发器,但我觉得通过某种缓存可以更简单地完成 - 增加“喜欢”,每 50 个喜欢,进行 1 次 sql 更新。有时在线人数超过 500 人,每个人都喜欢一些评论/帖子,所以这就是为什么我猜它会产生很多查询。

如果你们认为更新不是那么重,我不会为此烦恼太多,并且只会涵盖重度选择。

我有一个简单的结构:

表1-帖子:列:1.ID 2.text 3.likes 4.dislikes... 表2-评论:列:1.ID 2.text 3.Posts_ID,4.likes...

关于代码,它尽可能简单:

if( Mr.smith already liked){
    do nothing with database
}
else {
    mysqli->query("Update Posts set likes = likes+1");
}

任何提示都非常感谢。

4

0 回答 0