gpt4 book ai didi

php - 只进行一次查询并将其存储在数组中或每次都进行查询是否更有效?

转载 作者:行者123 更新时间:2023-11-29 09:44:53 26 4
gpt4 key购买 nike

我想知道哪种方法更有效,是只进行一次查询并将结果存储在一个数组中,然后使用 PHP 中的 in_array 函数检查该数组,还是每次需要检查值时都进行 MySQL 查询?

例如:我创建了这个函数来将查询存储在一个数组中,因此这个查询只会进行一次。

 private function carregaPermissoes(){
$query = mysql_query("SELECT permissao_nome FROM sisgrupopermissoes WHERE id_grupo = ".$this->getGid().";");
if (mysql_num_rows($query) > 0){
$array_permissoes = array();
while ($row = mysql_fetch_array($query)){
array_push($array_permissoes, $row["permissao_nome"]);
}
return $array_permissoes;
}
}

然后每次我需要检查它时我就使用这个函数:

public function checkPermissao($permissao){
$this->setPermissao($permissao);
if (in_array($this->getPermissao(), $this->getGrupoPermissao())){
return true;
}else{
return false;
}
}

这是一个好方法吗?还是每次需要检查时都进行查询更好?

最佳答案

SQL 查询,通常是继查询之后最常见的瓶颈网络。您的功能可以简化为:

public function checkPermissao($permissao)
{
// The following line smells...
$this->setPermissao($permissao);
return in_array($this->getPermissao(), $this->getGrupoPermissao());
}

如果您担心 in_array (本质上使用顺序搜索)引入的开销,您可以 flip haystack 数组并使用 array_key_exists相反。

关于php - 只进行一次查询并将其存储在数组中或每次都进行查询是否更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55853686/

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