Seperti yang dijelaskan oleh manual:http://dev.mysql .com/doc/refman/5.6/en/partitioning-overview.html
Ini dapat dilakukan dengan mudah dengan mempartisi hash dari keluaran bulan.
CREATE TABLE ti (id INT, amount DECIMAL(7,2), tr_date DATE)
ENGINE=INNODB
PARTITION BY HASH( MONTH(tr_date) )
PARTITIONS 6;
Perhatikan bahwa ini hanya partisi berdasarkan bulan dan bukan berdasarkan tahun, juga hanya ada 6 partisi (jadi 6 bulan) dalam contoh ini.
Dan untuk mempartisi tabel yang ada (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;
Query dapat dilakukan baik dari seluruh tabel:
SELECT * from ti;
Atau dari partisi tertentu:
SELECT * from ti PARTITION (HASH(MONTH(some_date)));