Я использую паравинацию laravel (v-5.6). У меня есть две таблицы: размер таблицы 1 ~ 1,6 миллиона строк и размер таблицы 2 ~ 0,8 миллиона строк. Я выполняю операцию соединения на основании какого-либо условия. Мой запрос выглядит следующим образом -
$results = $connection->table('table1' as db1")
->select('db1.id as kuchikomi_id','db1.comment as splitted_kuchikomi','db1.kuchikomi_sentiment','db1.status as kuchikomi_status','db2.id','db2.hotel_id','db2.comment','db2.post_date','db2.ota_name','db2.negative_comment','db2.positive_comment','db2.language')
->Join('table2' as db2", 'db1.kuchikomi_id', '=', 'db2.id')
->where('db1.kuchikomi_language', $language)
->whereIn('db1.id', $splitted_id))
->paginate(100);
здесь $ splitted_id - это набор из ~ 0,6 миллионов идентификаторов. Когда я выполняю этот запрос, он занимает более 12 минут и завершается из-за превышения максимального времени выполнения.
индексы table1 -
- db1.kuchikomi_language
- db1.id
Мой вопрос: подходит ли операция объединения для таблиц такого размера? Если да, как я могу улучшить время выполнения? Нужна помощь, чтобы выяснить эти сомнения. Спасибо.