sql >> Database teknologi >  >> RDS >> Mysql

MySQL-tabelpartition efter måned

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)));


  1. Hvordan vælger man visse felter i Laravel Eloquent?

  2. mysqldump bedste praksis:Del 1 – MySQL-forudsætninger

  3. MySql-visning er meget langsom. Hvorfor?

  4. Sådan analyseres tid fra databasen