-1
A
回答
1
Activerecord使用常规的SQL查询来执行任何您希望它执行的活动。显然,如果你使用activerecord来代表你的查询,那么它可能会选择一种效率较低的方法来实现,比你想的要好。
这是针对当前所有ORM的标准配置。
但是,原始sql和通过activerecord发出的相同查询将具有相同的性能影响,即使是明智的记忆。
1
如果你的问题是“在下面的例子中第二个需要明显更多的内存?”。
实施例1:
$query = $this->db->query("SELECT `id`,`somefield` FROM `some_table` WHERE `id` = $id Order by `somefield` DESC");
实施例2:
$query = $this->db
->select('id, somefield')
->from('some_table')
->where('id, $id)
->order_by('somefield', 'DESC');
->get();
答案是存储器差不显著。还有一些额外的记忆,但在事物的计划中,这并不是很多。
Active Record(自CI v3以来重命名查询生成器)的目的是构建查询语句字符串。活动记录示例将执行更多代码以组装第一个示例中定义的相同语句。在它构造声明之后,它实际上使得第一个例子所做的完全相同的调用。
如果正在加载Active Record类(由数据库配置设置确定),则分配内存以保存该代码,无论您是否使用该代码。
使用Active Record确实需要更多的输入。为什么如果查询很容易用简单的字符串表示?另一方面,在不同的查询语句可能有条件需要(即不同的字段集合,附加或不同的“where”条件,备用排序顺序等)的情况下,Active Record可以使您的生活更容易。例如。
$this->db
->select('id, somefield')
->from('some_table')
->where('id, $id);
if($need_another_where)
{
$this->db->where('other_field', $other);
}
if($reverse_sort)
{
$this->db->order_by('somefield', 'DESC');
}
else
{
$this->db->order_by('somefield', 'ASC');
}
$query = $this->db->get();
不可否认,通过有条件地连接字符串可以很容易地重新创建上述示例。但更复杂的情况可能很容易存在。
相关问题
- 1. 使用CodeIgniter Active Record转换MySQL查询
- 2. 如何在codeigniter Active Record表单中写入mysql查询?
- 3. codeigniter active record where,or_where?
- 4. MySQL Active Record问题
- 5. CodeIgniter Active-Record搜索与哪里,AND,或
- 6. Codeigniter Active Record HAVING/WHERE db.field = db.field
- 7. 使用CodeIgniter的Active Record
- 8. SQLite3,PDO,Active Record和CodeIgniter
- 9. Codeigniter Active Record Class插入从
- 10. 如何使用codeigniter Active Record查询将数据插入表中?
- 11. 如何编写一个查询中的CodeIgniter的Active Record
- 12. Active Record“where”从父资源查询
- 13. 笨的Active Record查询顺序
- 14. Active Record,CodeIgniter - “on子句不明确”
- 15. 用Codeigniter Active Record计算行总数
- 16. 如何写CodeIgniter的Active Record的
- 17. CodeIgniter Active Record - 获取返回的行数
- 18. 如何使用Active Record Codeigniter使用where_in?
- 19. 与继承的Active Record
- 20. 转换SQL查询到Rails的Active Record查询接口
- 21. Codeigntier Active Record加入
- 22. ACTIVE RECORD REGULAR EXPRESSION
- 23. Rails Active Record TimeZones
- 24. Active Record .where.find_each
- 25. CodeIgniter PHP查询MySQL查询
- 26. Active Record(Rails)MySQL安全连接
- 27. PHP MySQL Active Record条件总和
- 28. 存储过程与最新MySQL中的普通SQL查询?
- 29. 如何在Codeigniter Active记录中编写MYSQL查询!=?
- 30. 如何更改Mysql的插入连接查询到笨的Active Record