Отношения Laravel медленные - PullRequest
       18

Отношения Laravel медленные

0 голосов
/ 09 февраля 2019

Я пытаюсь запустить этот код

Item::with('product_save')->whereHas('product_save', function($q){ 
    $q->where('user_id', 4);
});

с

paginate(20);

Модель товара:

    class Item extends Model
{
    protected $table = 'products';

    public function product_save()
    {
        return $this->hasOne('App\Product_save','product_id')->where('user_id', Auth::user()->id);
    }
}

, но слишком медленно моя база данных имеет более 1Мзаписи.

paroduct_saves таблица: enter image description here

спасибо

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019

Добавьте ниже отношение в вашей модели ProductSave:

use Illuminate\Database\Eloquent\Model;
class ProductSave extends Model
{
    protected $table='product_saves';
    public $primaryKey='id';


         public function product(){
         return $this->belongsTo('App\Product','product_id')->where('active',1);
    }

}

Теперь в вашем контроллере попробуйте это:

$products=ProductSave::where('user_id',4)->with('product')->paginate(20);
0 голосов
/ 09 февраля 2019

Создайте индекс на вашей таблице следующим образом:

CREATE INDEX index_name
ON table_name (column1, column2, ...);
...