gpt4 book ai didi

PHP 和 PDO : Which is faster? 正在获取 COUNT(*) 或 rowCount()?

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

好的,我的问题是我有一个在每个页面上加载的脚本,它通过检查名为“banned”的列来检查登录用户是否被禁止,该列可以输出 0 (未禁止)或 1 (禁止)。我尝试过搜索这个,但没有找到哪个性能更好的绝对答案:

获取 COUNT(*) 条查询:

$query = $PDO->prepare("SELECT COUNT(*) FROM users WHERE id = :ID AND banned = 1");
$query->execute(array(":ID" => $USER_ID));
if ($query->fetchColumn() > 0) {
// USER IS BANNED! SHOW ERROR MESSAGE!
}

使用 rowCount() 而不是获取:

$query = $PDO->prepare("SELECT banned FROM users WHERE id = :ID AND banned = 1");
$query->execute(array(":ID" => $USER_ID));
if ($query->rowCount() > 0) {
// USER IS BANNED! SHOW ERROR MESSAGE!
}

最佳答案

我使用 20 万个随机生成的条目执行了基准测试,其中包含三列 id、名称和禁止。随机抽取 3467 名用户进行封禁。我在 AWS 微实例上使用以下配置:

PHP 7.0.30-0

Ubuntu 0.16.04.1

MySQL 5.7.22-0

基准结果:

COUNT(*) 执行花费了 0.00022506713867188 秒

rowcount() 执行花费了 0.00011420249938965 秒

rowcount() 是获胜者。

关于PHP 和 PDO : Which is faster? 正在获取 COUNT(*) 或 rowCount()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50451484/

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