Som forklaret i manualen:http://dev.mysql .com/doc/refman/5.6/da/partitioning-overview.html
Dette er nemt muligt ved hash-partitionering af månedens output.
CREATE TABLE ti (id INT, amount DECIMAL(7,2), tr_date DATE)
ENGINE=INNODB
PARTITION BY HASH( MONTH(tr_date) )
PARTITIONS 6;
Bemærk, at dette kun opdeles efter måned og ikke efter år, også er der kun 6 partitioner (altså 6 måneder) i dette eksempel.
Og til partitionering af en eksisterende tabel (manual: https://dev.mysql.com/doc/refman/5.7/en/alter-table-partition-operations.html ):
ALTER TABLE ti
PARTITION BY HASH( MONTH(tr_date) )
PARTITIONS 6;
Forespørgsel kan udføres både fra hele tabellen:
SELECT * from ti;
Eller fra specifikke partitioner:
SELECT * from ti PARTITION (HASH(MONTH(some_date)));