У меня есть таблица, которая содержит данные на 50 ГБ, теперь я пытаюсь разбить столбец datetime ниже, это детали.как разбить таблицу в столбце non primary key (MYSQL)
CREATE TABLE EDR2 (id varchar(255),appKey varchar(255),clickedTime datetime ,ettId bigint(20),primary key(id),Key `ettId` (ettId),Key `clickedTime_index` (`clickedTime`))
PARTITION BY RANGE (day(clickedTime))
(PARTITION p01 VALUES LESS THAN (2) ,
PARTITION p02 VALUES LESS THAN (3) ,
PARTITION p03 VALUES LESS THAN (4) ,
PARTITION p04 VALUES LESS THAN (5) ,
PARTITION p05 VALUES LESS THAN (6) ,
PARTITION p06 VALUES LESS THAN (7) ,
PARTITION p07 VALUES LESS THAN (8) ,
PARTITION p08 VALUES LESS THAN (9) ,
PARTITION p09 VALUES LESS THAN (10) ,
PARTITION p10 VALUES LESS THAN (11) ,
PARTITION p11 VALUES LESS THAN (12) ,
PARTITION p12 VALUES LESS THAN (13) ,
PARTITION p13 VALUES LESS THAN (14) ,
PARTITION p14 VALUES LESS THAN (15) ,
PARTITION p15 VALUES LESS THAN (16) ,
PARTITION p16 VALUES LESS THAN (17) ,
PARTITION p17 VALUES LESS THAN (18) ,
PARTITION p18 VALUES LESS THAN (19) ,
PARTITION p19 VALUES LESS THAN (20) ,
PARTITION p20 VALUES LESS THAN (21) ,
PARTITION p21 VALUES LESS THAN (22) ,
PARTITION p22 VALUES LESS THAN (23) ,
PARTITION p23 VALUES LESS THAN (24) ,
PARTITION p24 VALUES LESS THAN (25) ,
PARTITION p25 VALUES LESS THAN (26) ,
PARTITION p26 VALUES LESS THAN (27) ,
PARTITION p27 VALUES LESS THAN (28) ,
PARTITION p28 VALUES LESS THAN (29) ,
PARTITION p29 VALUES LESS THAN (30) ,
PARTITION p30 VALUES LESS THAN (31) ,
PARTITION p31 VALUES LESS THAN MAXVALUE);*
и я получаю сообщение об ошибке: -
***ERROR 1503 (HY000): A PRIMARY KEY must include all columns in the table's partitioning function***
Я не могу создать составной первичный ключ (ид, clickedTime) и не может удалить первичный ключ, так как это позволит duplicate records, Я не хочу ничего менять в своем коде. , пожалуйста, предложите.
Хммм. Вы не можете разбивать столбец, если он не является частью первичного ключа (и всех других уникальных ограничений). Следовательно, вы не можете делать то, что хотите. Вы можете просмотреть документацию по этому адресу: http://dev.mysql.com/doc/refman/5.7/en/partitioning-limitations-partitioning-keys-unique-keys.html. –
Привет, сэр, все в порядке. Но я все еще смущен тем, что они не разрешали использовать не первичный ключевой столбец для раздела или проблемы с моим требованием к разделению. Благодарю. –
. , Если вы хотите использовать ключ раздела, то он должен быть частью первичного ключа. Понимание этого требует глубокого погружения в секционирование. Вы можете скопировать таблицу в другую структуру, в которой есть ключи, которые вам нужны, а также разделы. Это требует времени, но оно выполнит то, что вы хотите. –