Есть тупая до ужаса таблица
CREATE TABLE `price_detail` (
`accomodation` int(11) NOT NULL,
`date` datetime NOT NULL,
`price` int(11) NOT NULL,
`room_id` int(11) NOT NULL,
KEY `idx_price_price` (`price`),
KEY `idx_price_date` (`date`),
KEY `idx_price_accomodation` (`accomodation`)
)
Предположим, что у нас в ту таблицу закладывается 3 миллиона строк на день. То есть нормально, чтобы уже сегодня нам пришдется работать с 3*365=1095 миллионов записей на будущий год. Причем в базе данных это — единственная таблица с таким количеством записей.
К таблице будут приходить простейшие запросы типа
SELECT
`price`
FROM
`price_detail`
WHERE
`accomodation`=1
AND
`date` BETWEEN '2008-01-01 12:00:00.000' AND '2008-01-15 12:00:00.000'
80% запросов охватывают период до двух недель.
Изначально наша идея была разбить таблицу на partitions понедельно. Разбили. Приведеный запрос отрабатывает за время от 20 секунд (MacBook Pro, 2 GB RAM, настройки mysql сервера почти не менялись). А нужно — менее секунды
Собственно вопрос

А что делать-то
1. Может лучше использовать merge table?
2. Поможет ли cover index по колонкам (date, accomodation, price) (или в другом порядке)
3. Что подкрутить в настройках?
В общем, на РСДН уповаю