gpt4 book ai didi

php - Codeigniter:常用函数。与多个功能。数据库查询性能

转载 作者:搜寻专家 更新时间:2023-10-30 22:08:44 25 4
gpt4 key购买 nike

对于这个问题,我希望得到基于Codeigniter的经验和知识的解答。假设我在数据库中有 10 个表,我想在同一个 Controller 中同时查询 10 个表中的所有行。有两种方法可以做到这一点,

案例01 - 使用如下常用查询函数,

Controller

sample_function(){
'table1_data' => $this->common_model->get_table( 'table1' ),
'table2_data' => $this->common_model->get_table( 'table2' ),
...
'table9_data' => $this->common_model->get_table( 'table9' ),
'table10_data' => $this->common_model->get_table( 'table10' )
}

然后在 common_model 中

function get_table( $table_name ){
$this->db->select()->from( $table_name );
$sql_stmt = $this->db->get();
return $sql_stmt->result();
}

所以在这种情况下,get_table( $table_name ) 将运行 10 次。

案例 02 - 如下所示,为每 10 个表使用单独的函数,

Controller

sample_function(){
'table1_data' => $this->common_model->get_table1(),
'table2_data' => $this->common_model->get_table2(),
...
'table9_data' => $this->common_model->get_table9(),
'table10_data' => $this->common_model->get_table10()
}

这样 common_model 就会像这样,这里我们有 10 个函数,不像在 Case01 中使用相同的函数

function get_table1()
{
$this->db->select()->from( 'table1' );
$sql_stmt = $this->db->get();
return $sql_stmt->result();
}
function get_table2()
{
$this->db->select()->from( 'table2' );
$sql_stmt = $this->db->get();
return $sql_stmt->result();
}
....
function get_table9()
{
$this->db->select()->from( 'table9' );
$sql_stmt = $this->db->get();
return $sql_stmt->result();
}
function get_table10()
{
$this->db->select()->from( 'table10' );
$sql_stmt = $this->db->get();
return $sql_stmt->result();
}

在这种情况下,10 个单独的函数各运行一次。

很明显,当我们考虑代码可用性时,案例 01 是最好的,但我的疑问是当我们考虑性能时,

  1. Codeigniter 中哪个案例最好?

  2. 对于Case 01,get_table会同时运行还是一个一个运行?

  3. 哪种情况在 CI 中的性能最好?

谢谢

最佳答案

根据多年的后端开发经验大胆猜测:两者的运行速度一样快/慢,具体取决于您的表中有多少行。

由于您已经有了代码,只需使用合适的基准测试一下即可。让这两个例程运行几千次并取平均值。

关于php - Codeigniter:常用函数。与多个功能。数据库查询性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40001580/

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