जैसा कि मैनुअल द्वारा समझाया गया है:http://dev.mysql .com/doc/refman/5.6/hi/partitioning-overview.html
यह महीने के आउटपुट के हैश विभाजन द्वारा आसानी से संभव है।
CREATE TABLE ti (id INT, amount DECIMAL(7,2), tr_date DATE)
ENGINE=INNODB
PARTITION BY HASH( MONTH(tr_date) )
PARTITIONS 6;
ध्यान दें कि यह केवल महीने के हिसाब से विभाजन है और साल के हिसाब से नहीं, इस उदाहरण में केवल 6 विभाजन (इसलिए 6 महीने) हैं।
और मौजूदा तालिका को विभाजित करने के लिए (मैनुअल: https://dev.mysql.com/doc/refman/5.7/hi/alter-table-partition-operations.html ):
ALTER TABLE ti
PARTITION BY HASH( MONTH(tr_date) )
PARTITIONS 6;
पूरी तालिका से दोनों तरह से पूछताछ की जा सकती है:
SELECT * from ti;
या विशिष्ट विभाजनों से:
SELECT * from ti PARTITION (HASH(MONTH(some_date)));