Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Phân vùng bảng MySQL theo tháng

Theo giải thích của sách hướng dẫn: http://dev.mysql .com / doc / refman / 5.6 / en / partitioning-Overview.html

Điều này có thể dễ dàng thực hiện được bằng cách phân vùng băm của đầu ra tháng.

CREATE TABLE ti (id INT, amount DECIMAL(7,2), tr_date DATE)
    ENGINE=INNODB
    PARTITION BY HASH( MONTH(tr_date) )
    PARTITIONS 6;

Lưu ý rằng điều này chỉ phân vùng theo tháng chứ không phải theo năm, cũng chỉ có 6 phân vùng (vì vậy 6 tháng) trong ví dụ này.

Và để phân vùng một bảng hiện có (thủ công: 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;

Có thể thực hiện cả hai truy vấn từ toàn bộ bảng:

SELECT * from ti;

Hoặc từ các phân vùng cụ thể:

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. Làm thế nào để chọn với một trường nhị phân? (php, mysql)

  2. Tham chiếu khóa ngoại MySQL

  3. MySQL LIKE với phạm vi không hoạt động

  4. Làm việc với con trỏ SQL

  5. Phương pháp hay nhất / Tiêu chuẩn để lưu trữ Địa chỉ trong Cơ sở dữ liệu SQL