Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 优化数据库请求数量的最佳实践_Php_Mysql - Fatal编程技术网

Php 优化数据库请求数量的最佳实践

Php 优化数据库请求数量的最佳实践,php,mysql,Php,Mysql,我正在开发喜欢/不喜欢的系统php+ajax+mysql。 我的系统按此处推荐的方式制作:。所以我对数据库有很多请求,例如: 当用户在数据库中放入like insert时 从数据库中选择此帖子的所有喜欢项 另外,当用户尝试放置like时,数据库中有checks标志。 如果用户两次尝试为这篇文章添加like,请再次通过db检查标志。 这只是一篇文章,但我也有评论,用户可以喜欢。 是否有一种通过数据库进行此操作的良好做法,或者最好使用缓存/会话或类似的方法。如果希望在会话之间保持此操作,则必须将其保

我正在开发喜欢/不喜欢的系统php+ajax+mysql。 我的系统按此处推荐的方式制作:。所以我对数据库有很多请求,例如:

当用户在数据库中放入like insert时 从数据库中选择此帖子的所有喜欢项 另外,当用户尝试放置like时,数据库中有checks标志。 如果用户两次尝试为这篇文章添加like,请再次通过db检查标志。 这只是一篇文章,但我也有评论,用户可以喜欢。
是否有一种通过数据库进行此操作的良好做法,或者最好使用缓存/会话或类似的方法。

如果希望在会话之间保持此操作,则必须将其保存到某种数据库中

您可以通过使用主从数据库来提高效率,而从数据库只执行读操作,而主数据库只执行写操作


根据规格,有更多的方法可供选择。

谢谢您的回答。是的,我考虑过这种方式,但我真的不知道与db谈论这么多是否有困难,或者这是一种简单的做法?将每次投票分别存储为a+1或a-1;然后,您可以进行简单的投票以轻松获得总分。是的,这应该是在一个数据库开始,你总是可以从那里优化。你的意思是存储所有喜欢一个职位在一个表?如果是这样的话,怎么检查男人是否已经放好了呢?如果是这样的话,我认为最好的方法是制作2个表,其中包含id\u user和votebool,因此当用户放入like时,它会插入/更新到第2个表中,并对post\u id和sum\u喜欢的主表进行+1投票?哦,我明白了。我只需要1个表,其中包含user\u id、post\u id和投票,因此每次投票都会在db中创建新行,然后为这篇文章选择sum,这里将有许多用户ID,大Thaaanks,非常简单,非常棒!