Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL дял на таблицата по месеци

Както е обяснено в ръководството:http://dev.mysql .com/doc/refman/5.6/en/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/en/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. Как мога да изведа резултати от MySQL заявка във формат CSV?

  2. Транспониране на MySQL заявка - нужда от редове в колони

  3. Задайте PDO да хвърля изключения по подразбиране

  4. SUBDATE() срещу DATE_SUB() в MySQL:Каква е разликата?

  5. Отпечатайте данните в ResultSet заедно с имената на колоните