gpt4 book ai didi

php - 多个查询的 MySQL 和 PHP 性能

转载 作者:行者123 更新时间:2023-11-29 01:11:18 25 4
gpt4 key购买 nike

我想征求你的意见。我有一个网站,上面有视频,用户可以给他们点赞和反对。他们保存在一张表中。目前我有三个 sql 查询来获取点赞数、点赞数和登录用户提供的内容(如果他提供的话)。

现在我正在考虑提高性能,但我不知道什么更好,因为我想减少查询的数量。

方法 1)保持这三个查询不变:

SELECT COUNT(*) as rowcount FROM `videolikes` WHERE `vid` = 'gt6w_RZfs5yx' AND `thumb` = '1' LIMIT 1
SELECT COUNT(*) as rowcount FROM `videolikes` WHERE `vid` = 'gt6w_RZfs5yx' AND `thumb` = '0' LIMIT 1
SELECT * FROM `videolikes` WHERE `vid` = 'gt6w_RZfs5yx' AND `uid` = '1' LIMIT 1

方法 2)用子查询进行一个查询(类似的东西(它在这里不起作用)):

SELECT *, (SELECT COUNT(*) as rowcount FROM `videolikes` WHERE `vid` = 'gt6w_RZfs5yx' AND `thumb` = '1' LIMIT 1) as thumbsups, (SELECT COUNT(*) as rowcount FROM `videolikes` WHERE `vid` = 'gt6w_RZfs5yx' AND `thumb` = '0' LIMIT 1) as thumbsdowns FROM `videolikes` WHERE `vid` = 'gt6w_RZfs5yx' AND (`uid` = '1' OR `uid` = NULL)

方法 3)也许是您自己的想法?

告诉我您的想法并提供一些代码(如果需要)。

最好的问候夏洛特

编辑:我将添加更多信息:vid 是视频的 ID。关于点赞的所有内容都存储在此表中,引用带有 VideoID (vid) 的视频。 uid 是点赞(或不点赞)的用户 ID。这意味着此表中不仅有对一个视频的喜欢和不喜欢。要知道对哪个视频的喜欢和不喜欢,like 将与 videoid 一起存储。

最佳答案

或者您可以使用单个查询来获得赞成/反对票:

SELECT SUM(thumb = 1) AS upvote, SUM(thumb = 0) AS downvote, ....

MySQL 将采用那些 thumb = X 测试的 bool true/false 结果,转换为整数 01,然后求和他们起来

关于php - 多个查询的 MySQL 和 PHP 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25062824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com