CodeIgniter MySQL 视图 VS 查询

4
我正在使用Codeigniter进行开发,当涉及到复杂的数据库查询时,我会使用。
$this->db->query('my complicated query');

然后使用$query->result();将其转换为对象数组。
到目前为止,这非常好和有用。
现在我的问题是什么?
  1. what if I want to create mysql view and select from it? Will

    $this->db->from('mysql_view')
    

    take the mysql view as it's a table or not?

  2. And if I do that will be any difference in performance are views faster than normal database query?

  3. What would be best practice with Codeigniter and MYSQL database dealing with complicated queries as I understand that ActiveRecord is just query builder and as some tests it's even a little slower

提前感谢您的建议。
1个回答

5
  1. MySQL视图与表格以相同的方式查询,需要注意的是,你不能让一个表格和一个视图使用相同的名称。
  2. 视图的查询取决于你在视图中使用的查询语句,长期来看,视图可以被内部缓存,因此它们更快。
  3. 在这种情况下,最好的做法是使用你自己和团队发现易于使用的方法,我个人喜欢使用$this->db->query();,因为我发现将这种简单查询更改为一些高级功能(如子查询或其他难以或不可能使用CI查询构建器完成的功能)更容易。我的建议是坚持一种查询方式 - 如果你使用->query(),那么在任何地方都使用它们,如果你使用查询构建器,则尽可能使用它来实现结果。

感谢@Vlakardos的回复,我只是想确认$this->db->from('')通常是否会接受视图名称? - Ahmed Gaber
1
CodeIgniter的ActiveRecord没有任何魔法,它只是为您构建一个查询字符串,所以是的,它会。 - Sergey Telshevsky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接