Я слышал, что JOINS более эффективны, но когда я пытаюсь реализовать его, SELECT застревает в выполнении.
Я использую MySQL, и у меня есть две таблицы, заполненные 100 000 записей сloop.
CREATE TABLE `offers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY(`id`)
);
CREATE TABLE `files` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`path` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`object_id` int(11) NOT NULL,
PRIMARY KEY(`id`)
);
И для выполнения следующего запроса требуется 0,3 с:
SELECT o.id, (SELECT f.path FROM `files` AS f WHERE f.object_id = o.id LIMIT 1) as path FROM `offers` AS o;
Но этот запрос работает, когда таблица файлов практически пуста точно так же.Но когда я заполняю таблицу файлов, выполнение так и не завершается.
SELECT o.id, f.path FROM `offers` o LEFT OUTER JOIN `files` f ON f.object_id = o.id
Что я делаю не так?