Хорошо, у меня 2 миллиона строк.У каждого есть дата выставления счета.я пытаюсь разделить это к тому времени.Я сделал разделы.Я проверил / var / lib / mysql, и там есть файлы соответствующего размера, чтобы я мог видеть, что что-то работает.Однако, когда я делаю выбор разделов explian, он все равно говорит мне, что использует все разделы.Я делаю что-то не так с тем, как я построил стол?Запросить таблицу?Индексы?
CREATE TABLE `billing_bil` (
`id_bil` mediumint(9) unsigned NOT NULL AUTO_INCREMENT,
`bill_date_bil` date NOT NULL
PRIMARY KEY (`id`,`bill_date_bil`),
KEY `bill_date_bil` (`bill_date_bil`),
KEY `type_bill_date_bil` (`type_bil`,`bill_date_bil`)
) ENGINE=MyISAM AUTO_INCREMENT=2310168 DEFAULT CHARSET=latin1
/*!50100 PARTITION BY RANGE ( YEAR(bill_date_bil))
(PARTITION p0 VALUES LESS THAN (2008) ENGINE = MyISAM,
PARTITION p1 VALUES LESS THAN (2009) ENGINE = MyISAM,
PARTITION p2 VALUES LESS THAN (2010) ENGINE = MyISAM,
PARTITION p3 VALUES LESS THAN (2011) ENGINE = MyISAM,
PARTITION p4 VALUES LESS THAN (2012) ENGINE = MyISAM,
PARTITION p5 VALUES LESS THAN (2013) ENGINE = MyISAM,
PARTITION p6 VALUES LESS THAN (2014) ENGINE = MyISAM,
PARTITION p7 VALUES LESS THAN MAXVALUE ENGINE = MyISAM) */
EXPLAIN PARTITIONS SELECT SQL_NO_CACHE id_bil FROM billing_bil WHERE bill_date_bil < '2010'
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE billing_bil p0,p1,p2,p3,p4,p5,p6,p7 index bill_date_bil PRIMARY 6 (NULL) 2310167 Using where; Using index
Я ожидал, что этот запрос будет использовать только p0 и p1, но он использует все из них.