Zoals uitgelegd in de handleiding:http://dev.mysql .com/doc/refman/5.6/en/partitioning-overview.html
Dit is eenvoudig mogelijk door hash-partitionering van de maanduitvoer.
CREATE TABLE ti (id INT, amount DECIMAL(7,2), tr_date DATE)
ENGINE=INNODB
PARTITION BY HASH( MONTH(tr_date) )
PARTITIONS 6;
Houd er rekening mee dat dit alleen per maand is ingedeeld en niet per jaar, ook zijn er in dit voorbeeld slechts 6 partities (dus 6 maanden).
En voor het partitioneren van een bestaande tabel (handleiding: 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;
Query's kunnen zowel vanuit de hele tabel worden gedaan:
SELECT * from ti;
Of van specifieke partities:
SELECT * from ti PARTITION (HASH(MONTH(some_date)));