Я не эксперт в области SQL, у меня есть SQL заявление:SQL: Как уменьшить время выполнения инструкции?
SELECT * FROM articles WHERE article_id IN
(SELECT distinct(content_id) FROM contents_by_cats WHERE cat_id='$cat')
AND permission='true' AND date <= '$now_date_time' ORDER BY date DESC;
Таблица contents_by_cats
имеет 11000 строк.
Таблица articles
имеет 2700 строк.
Переменные $now_date_time
и $cat
являются переменными php.
Этот запрос занимает около 10 секунд, чтобы вернуть значения (я думаю, потому что он имеет вложенные операторы SELECT), а 10 секунд - большое количество времени.
Как я могу достичь этого по-другому? (Виды или ВСТУПЛЕНИЕ)?
Я думаю, что JOIN поможет мне здесь, но я не знаю, как правильно использовать его для оператора SQL, о котором я упоминал.
Заранее спасибо.
Да, я пробовал, потребовалось 12 секунд, что вы подразумеваете под индексом? –
Хммм, увеличившись с 10 до 12 секунд, не подходит для вас? :-) –
Создание индекса - очень простая часть настройки базы данных. Любая колонка, которую вы будете использовать для регулярного просмотра чего-либо, выиграет от создания индекса в этом столбце. Это похоже на наличие нескольких карточек (строк) и их размещение в алфавитном порядке, чтобы ускорить вашу способность находить их. Что вы используете для настройки своей базы данных? phpMyAdmin или прямой SQL или что? –