У меня есть две таблицы: table_car и table_order:
Улучшение MySQL скорость запроса с условием длиной даты диапазона
table_order имеет составной ключ (id_type, date)
SELECT "September" AS `Range`,
SUM(IF(id_type IN(1,2), items,0)) AS 'RedandBlue_items',
SUM(IF(id_type IN(3,4), items,0)) AS 'YellowandGreen_items',
SUM(IF(id_type IN(1,2), items,0)) AS 'RedandBlue_amount',
SUM(IF(id_type IN(3,4), items,0)) AS 'YellowandGreen_amount'
FROM table_order
WHERE id_type IN(1,2,3,4) AND `date` >= "2015-09-01" AND `date` <= "2015-09-30"
UNION
SELECT
"August" AS `Range`,
SUM(IF(id_type IN(1,2), items,0)) AS 'RedandBlue_items',
SUM(IF(id_type IN(3,4), items,0)) AS 'YellowandGreen_items',
SUM(IF(id_type IN(1,2), items,0)) AS 'RedandBlue_amount',
SUM(IF(id_type IN(3,4), items,0)) AS 'YellowandGreen_amount'
FROM table_order
WHERE id_type IN(1,2,3,4) AND `date` >= "2015-08-01" AND `date` <= "2015-08-31"
Есть ли другие способы быстрого запроса э? Скажем, у меня есть таблица с миллиардами записей и может выполнять запрос длинного диапазона дат в состоянии, например date> = "2015-01-01" и дата < = "2016-01-01".
Вы можете найти образец здесь: http://sqlfiddle.com/#!9/1787e/1
уверен, де-нормировать. – Drew
Не могли бы вы объяснить больше? – sontd
Что такое тип данных 'date' – Drew