Несколько запросов к большой таблице MySQL - PullRequest
1 голос
/ 05 августа 2011

У меня есть таблица с столбцами ID (int), Number (десятичное число) и Date (int только отметка времени).Есть миллионы строк.Есть индексы по ID и дате.

На многих моих страницах я четыре или пять раз запрашиваю список номеров в указанном диапазоне дат (диапазон различен для каждого запроса).

Как:

select number,date where date < 111111111 and date >111111100000

Я запрашиваю эти наборы данных для размещения на нескольких разных графиках.«Сегодня против вчерашнего дня», «Этот месяц против прошлого месяца», «Этот год против прошлого года».

Будет ли запрашивать максимально возможный набор результатов с помощью оператора sql, а затем использовать мой язык программирования для фильтрации запросачерез отсортированный и склеенный массив лучше, чем ждать завершения каждого из этих 0,3-секундных запросов?

Есть ли что-то еще, что можно сделать, чтобы ускорить это?

Ответы [ 2 ]

3 голосов
/ 05 августа 2011

Это зависит от набора результатов и скорости выполнения ваших запросов.На этот вопрос нет окончательного ответа.

Вы должны сравнить и рассчитать результаты, если вам действительно нужно ускорить процесс.

Но имейте в виду, что преждевременная оптимизация следует избегать того, что в вашем коде будет реализована уже реализованная логика, которая может содержать ошибки и т. д. и т. д.

2 голосов
/ 05 августа 2011

Хотя это может привести к ускорению выполнения запроса, вы должны спросить себя о потенциальном воздействии на память, если попытаетесь загрузить весь диапазон записей, а затем агрегировать его программно.

Скорее всего,что оптимизация MySQL на основе индекса будет работать лучше, чем все, что вы могли бы придумать, так что это звучит как плохая идея.

...