, когда я использую запрос к массиву MySQL, это очень медленно.Есть ли какие-нибудь хитрости, которые делают это быстрее?
Например:
SELECT * FROM posts WHERE type IN ('1','2','5') ORDER BY id ASC
занимает намного больше времени, чем другие запросы.
Здесь вам нужно посмотреть две вещи: во-первых, ('1', '2', '5') это строка, а не целое число, должно быть (1,2,5) .Во-вторых, вы можете применять индексы к полю type .
Есть несколько способов ускорить запросы, которые я бы рассмотрел при поиске следующего:
Нормализация. Возможно, структура ваших таблиц не самая эффективная?
индексирование. Это улучшит время запроса, если вы ЗНАЕТЕ, что вы хотите искать.
EXPLAIN расскажет вам, почему ваш запрос медленный.Исходя из этого, вы можете внести изменения в свой запрос или структуру таблицы, чтобы решить проблему.В этом случае используйте его так:
EXPLAIN
EXPLAIN SELECT * FROM posts WHERE type IN (1,2,5) ORDER BY id ASC
Если type имеет тип integer, удалите апострофы:
type
integer
WHERE type IN (1, 2, 5)
Если нет - измените тип type на integer