J'ai une table avec le champ qui est action_time clé primaire et le type est datetimepartitionnement de MySQL ne fonctionne pas
J'essaie de le casser sur les partitions
ALTER TABLE foo PARTITION BY RANGE (MONTH(action_time))
(
PARTITION p01 VALUES LESS THAN (02) ,
PARTITION p02 VALUES LESS THAN (03) ,
PARTITION p03 VALUES LESS THAN (04) ,
PARTITION p04 VALUES LESS THAN (05) ,
PARTITION p05 VALUES LESS THAN (06) ,
PARTITION p06 VALUES LESS THAN (07) ,
PARTITION p07 VALUES LESS THAN (08) ,
PARTITION p08 VALUES LESS THAN (09) ,
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 pmaxval VALUES LESS THAN MAXVALUE
);
dans phpmyadmin je vois des partitions avec des lignes mais quand j'exécute
explain partitions select * from foo where action_time between '2017-01-01 20:34:08' and '2017-01-21 20:34:08';
ou
explain partitions select * from foo where action_time > '2017-01-01 20:34:08' && action_time < '2017-01-21 20:34:08'
elle frappe toutes les partitions (P01, P02, P03, P04, P05, P06, P07, P08, P09, P10, P11, P12, pmaxval)
ce que je fais mal?
J'essaie aussi de cette façon le même résultat
ALTER TABLE foo
PARTITION BY RANGE( YEAR(action_time))
SUBPARTITION BY HASH(MONTH(action_time))
SUBPARTITIONS 12 (
PARTITION p2015 VALUES LESS THAN (2016),
PARTITION p2016 VALUES LESS THAN (2017),
PARTITION p2017 VALUES LESS THAN (2018),
PARTITION p2018 VALUES LESS THAN (2019),
PARTITION p2019 VALUES LESS THAN (2020),
PARTITION p2020 VALUES LESS THAN (2021),
PARTITION p2021 VALUES LESS THAN (2022),
PARTITION p2022 VALUES LESS THAN (2023),
PARTITION p2023 VALUES LESS THAN (2024),
PARTITION p2024 VALUES LESS THAN (2025),
PARTITION p2025 VALUES LESS THAN (2026),
PARTITION p2026 VALUES LESS THAN (2027),
PARTITION p2027 VALUES LESS THAN (2028),
PARTITION p2028 VALUES LESS THAN (2029),
PARTITION p2029 VALUES LESS THAN (2030),
PARTITION pmax VALUES LESS THAN MAXVALUE
);
J'ai besoin de briser la table par année et par mois pour améliorer le temps de sélection, quand je sélectionne entre les dates qu'il sholdn't recherche dans tablée il devrait chercher dans les partitions pertinentes. Comment puis-je faire ceci?
il y a d'autres règles comme type = '...' et m_id = '...' cette table est énorme et elle est remplie avec beaucoup d'enregistrements quotidiens Je pensais que le partitionnement accélèrent sélectionnez – David
Et, avec votre nouvelle édition, vous avez trouvé un exemple de pourquoi je dis que «SUBPARTITION» est inutile. –
J'ai ajouté "Pourquoi le PARTITIONNEMENT n'accélère pas les requêtes simples" à ma réponse. –