我在我的新应用程序中使用Laravel 5.1已经处于开始阶段,但我想在不久的将来它会是一个大型应用程序,每个用户都会询问大量数据和查询。
Laravel以某种方式使用mysql数据库字段的动态属性,例如你只需说
$role = new Role();
$role->slug = 'admin';
你没有定义像
这样的东西Class Role extends Model{
protected $_slug;
public function getSlug(){
return $this->_slug;
}
public function setSlug( $slug ){
$this->_slug = $slug;
return $this;
}
...
这(以旧的方式)所以说slug字段实际存在并且我正在使用它,你只是动态分配它,
我的问题是这个方案是否会影响大规模数据的应用速度或者无关紧要?
我应该定义每个表字段,以获得更好的性能吗?
答案 0 :(得分:0)
由于所有数据都被加载到$attributes
受保护的属性,因此Laravel方式不会扩展内存的复杂性 - 因此它们会保留在那里,这意味着它们需要相同的内存。
事实上,对于大型项目,我们可以解决计算复杂性和使用$this->entry
重新获取数据的时间问题 - 因为这是魔术__get()
方法中的操作。事实上,你不应该使用雄辩的大量数据 - 它肯定会杀死CPU。在大数据集中,Laravel不幸地变得毫无用处。