php查询是否存在,php - 性能,检查值是否存在数组或查询

我需要检查数据库中是否存在值

我有一个表,每个用户都有一个唯一的代码。例如:5h27f。

这些值和用户加起来非常快。所以很快我可能会有+2000个唯一代码。检查值是否唯一的最佳,最快和最有效的方法是什么?foreach ($users as $user) {

$is_unique = FALSE;

while ($is_unique == FALSE) {

$code = unique_code();

$query = "SELECT * FROM unique_code_table WHERE code='$code';";

$res = $mysqli->query($query);

if ($res->num_rows > 0 {

} else {

$is_unique = TRUE;

}

}

}

要么

$query = "SELECT code FROM unique_code_table;";

$res = mysqli->query($query);

$codes = array();

$i = 0;

while ($row = $res->fetch_object()) {

$codes[$i] = $row->code;

$i++;

}

$code = unique_code();

while (in_array($code, $codes) {

$code = unique_code();

}

(此代码可能不是100%准确,我只是为了解释问题的目的编写了此代码。)

最佳答案

我想说一次查询数据库(可能要超过2000次)的效果明显更好。第二个脚本将明显更快。

在第一个代码中,LIMIT 1会产生奇迹,但是与第二个查询相比,就基准而言,它显得苍白。

将以下内容放在脚本的底部,以进行微调和基准测试:

PHP 5.4以上$sParseTime = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];

echo $sParseTime;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值