Массив в PHP-запросе MySQL - PullRequest
       1

Массив в PHP-запросе MySQL

0 голосов
/ 30 октября 2011

, когда я использую запрос к массиву MySQL, это очень медленно.Есть ли какие-нибудь хитрости, которые делают это быстрее?

Например:

  SELECT * 
    FROM posts
   WHERE type IN ('1','2','5')
ORDER BY id ASC

занимает намного больше времени, чем другие запросы.

Ответы [ 4 ]

0 голосов
/ 13 мая 2012

Здесь вам нужно посмотреть две вещи: во-первых, ('1', '2', '5') это строка, а не целое число, должно быть (1,2,5) .Во-вторых, вы можете применять индексы к полю type .

0 голосов
/ 30 октября 2011

Есть несколько способов ускорить запросы, которые я бы рассмотрел при поиске следующего:

Нормализация. Возможно, структура ваших таблиц не самая эффективная?

индексирование. Это улучшит время запроса, если вы ЗНАЕТЕ, что вы хотите искать.

0 голосов
/ 30 октября 2011

EXPLAIN расскажет вам, почему ваш запрос медленный.Исходя из этого, вы можете внести изменения в свой запрос или структуру таблицы, чтобы решить проблему.В этом случае используйте его так:

EXPLAIN SELECT * FROM posts WHERE type IN (1,2,5) ORDER BY id ASC

0 голосов
/ 30 октября 2011

Если type имеет тип integer, удалите апострофы:

WHERE type IN (1, 2, 5)

Если нет - измените тип type на integer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...