ActiveRecord
Ruby on Rails框架的核心ORM组件,利用method_missing等元编程特性动态生成数百个查询方法,是Ruby代码库导航困难的典型案例
时间轴 (近 90 天)
Rails 的数据库查询可能产生 N+1 问题,例如遍历 100 个用户并逐一读取其文章,会触发 1 次用户查询加 100 次文章查询。
ActiveRecord 是 Rails 内置的 ORM 层,提供迁移、关联、查询链式 API、回调和校验等能力。
Rails 的 ActiveRecord::Base.transaction 嵌套底层同样通过 SAVEPOINT 实现
主流框架内置的ORM包括Django的ORM、Rails的ActiveRecord、Laravel的Eloquent
ActiveRecord 的 instrumentation 会拦截 SQL 查询,自动创建包含 db.system、db.statement、db.name 等属性的 Span
Hibernate、Entity Framework、Django ORM、ActiveRecord 等 ORM 框架允许开发者用面向对象的方式操作数据库,将表映射为类、行映射为对象
全部知识事实 (6)
Rails 的数据库查询可能产生 N+1 问题,例如遍历 100 个用户并逐一读取其文章,会触发 1 次用户查询加 100 次文章查询。
50%待验证ActiveRecord 是 Rails 内置的 ORM 层,提供迁移、关联、查询链式 API、回调和校验等能力。
50%待验证Rails 的 ActiveRecord::Base.transaction 嵌套底层同样通过 SAVEPOINT 实现
50%待验证主流框架内置的ORM包括Django的ORM、Rails的ActiveRecord、Laravel的Eloquent
50%待验证ActiveRecord 的 instrumentation 会拦截 SQL 查询,自动创建包含 db.system、db.statement、db.name 等属性的 Span
50%待验证Hibernate、Entity Framework、Django ORM、ActiveRecord 等 ORM 框架允许开发者用面向对象的方式操作数据库,将表映射为类、行映射为对象
50%