Я запускаю MySQL 5.1.47 с АКТИВНЫМ плагином раздела.
Я создаю следующую таблицу:
CREATE TABLE IF NOT EXISTS `prova` (
`NE` varchar(8) NOT NULL,
`ASSERT` longtext NOT NULL
) ENGINE=MyISAM
PARTITION BY KEY(NE)
PARTITIONS 4;
Затем я вставляю 4 строки:
INSERT INTO prova values ('AAA','this assert is from AAA');
INSERT INTO prova values ('BBB','this assert is from BBB');
INSERT INTO prova values ('CCC','this assert is from CCC');
INSERT INTO prova values ('DDD','this assert is from DDD');
Я ожидаю найти 1 запись в каждом разделе, но:
mysql> explain partitions select * from prova where NE='AAA';
+----+-------------+-------+------------+--------+---------------+------+---------+------+------+-------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------------+--------+---------------+------+---------+------+------+-------+
| 1 | SIMPLE | prova | p2 | system | NULL | NULL | NULL | NULL | 1 | |
+----+-------------+-------+------------+--------+---------------+------+---------+------+------+-------+
1 row in set (0.00 sec)
mysql> explain partitions select * from prova where NE='BBB';
+---+-------------+-------+------------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------------+------+---------------+------+---------+------+------+-------------+
| 1 | SIMPLE | prova | p1 | ALL | NULL | NULL | NULL | NULL | 4 | Using where |
+----+-------------+-------+------------+------+---------------+------+---------+------+------+-------------+
1 row in set (0.00 sec)
mysql> explain partitions select * from prova where NE='CCC';
+----+-------------+-------+------------+--------+---------------+------+---------+------+------+-------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------------+--------+---------------+------+---------+------+------+-------+
| 1 | SIMPLE | prova | p0 | system | NULL | NULL | NULL | NULL | 1 | |
+----+-------------+-------+------------+--------+---------------+------+---------+------+------+-------+
1 row in set (0.00 sec)
mysql> explain partitions select * from prova where NE='DDD';
+----+-------------+-------+------------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------------+------+---------------+------+---------+------+------+-------------+
| 1 | SIMPLE | prova | p1 | ALL | NULL | NULL | NULL | NULL | 4 | Using where |
+----+-------------+-------+------------+------+---------------+------+---------+------+------+-------------+
1 row in set (0.00 sec)
Итак, мой вопрос: что я делаю неправильно? Почему 4 вставки не разбиты на 4 раздела? Почему BBB и DDD оказались в одном разделе?
Большое спасибо за Вашу помощь! Эван)