Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
$model = Torrents::findOne(['forum_id' => $data[0], 'topic_id' => $data[2]]); убрать за цикл и сделать полный фетч. Причем лучше без AR, массив должен состоять из ключей forum_id + '_' + topic_id, и значений true, например$exists = [];
while (($row = $reader->read()) {
$exists[$row['forum_id '] . '_' . $row['topic_id']] = true;
}
IGNORE if($model !== null) continue; на if (isset($exists[$data[0] . '_' . $data[2]])) continue;if(!isset($data[0]) || !isset($data[1]) || !isset($data[2]) || !isset($data[3]) || !isset($data[4]) || !isset($data[5]) || !isset($data[6]))
count($data) > 1, и проверять if (!array_key_exists(6, $data)) { $data[6] = 0 } Бывает, что у некоторых топиков не бывает даты.Я считаю, что mysql для этого избыточна.
Собственный поиск по раздачам rutracker.org – реализация на Yii2