Вы можете повысить производительность для этого запроса, если переупорядочите столбцы в индексе:
approved, topcat1, topcat2, topcat3, id
Было бы полезно узнать, как выглядит таблица и почему у вас три столбца с такими именами.Может быть проще организовать хороший запрос, если у вас есть вспомогательная таблица для хранения значений topcat со ссылкой на основную таблицу, но не зная, почему он настроен таким образом, трудно понять, будет ли это целесообразно.
Можете ли вы опубликовать CREATE TABLE
?
Редактировать в ответ на сообщение пользователя
Ваш стол не выглядит хорошо продуманным.Следующий дизайн был бы лучше: добавьте две новые таблицы, Category
и Category_Recipe
(таблица перекрестных ссылок).Category
будет содержать список ваших категорий, а Category_Recipe
будет содержать два столбца, один внешний ключ для Category
и один внешний ключ для существующей таблицы Recipe
.В строке Category_Recipe
указано «этот рецепт в этой категории».После этого вы сможете очень просто написать запрос, который будет искать рецепты в данной категории.У вас также есть возможность поместить рецепт в произвольное количество категорий, а не ограничиваться 3. Найдите «нормализация базы данных» и «внешние ключи».