Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL तालिका विभाजन महीने के अनुसार

जैसा कि मैनुअल द्वारा समझाया गया है: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)));


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. प्रमाणीकरण प्लगइन 'caching_sha2_password' लोड नहीं किया जा सकता

  2. MySQL CAST बनाम CONVERT

  3. MySQL में सेलेक्ट INTO और INSERT INTO के बीच अंतर

  4. Xampp:वेब ब्राउज़र लोकलहोस्ट पेज नहीं दिखाएगा

  5. (mysql, php) डेटा डालने से पहले auto_increment फ़ील्ड मान कैसे प्राप्त करें?