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

Phân vùng MYSQL là gì?

Ý tưởng đằng sau phân vùng không phải là sử dụng nhiều máy chủ mà là sử dụng nhiều bảng thay vì một bảng. Bạn có thể chia một bảng thành nhiều bảng để bạn có thể có dữ liệu cũ trong một bảng con và dữ liệu mới trong một bảng khác. Sau đó, cơ sở dữ liệu có thể tối ưu hóa các truy vấn mà bạn yêu cầu dữ liệu mới khi biết rằng chúng nằm trong bảng thứ hai. Hơn nữa, bạn xác định cách dữ liệu được phân vùng.

Ví dụ đơn giản từ Tài liệu MySQL :

CREATE TABLE employees (
    id INT NOT NULL,
    fname VARCHAR(30),
    lname VARCHAR(30),
    hired DATE NOT NULL DEFAULT '1970-01-01',
    separated DATE NOT NULL DEFAULT '9999-12-31',
    job_code INT,
    store_id INT
)
PARTITION BY RANGE ( YEAR(separated) ) (
    PARTITION p0 VALUES LESS THAN (1991),
    PARTITION p1 VALUES LESS THAN (1996),
    PARTITION p2 VALUES LESS THAN (2001),
    PARTITION p3 VALUES LESS THAN MAXVALUE
);

Điều này cho phép tăng tốc độ, ví dụ:

  1. Loại bỏ dữ liệu cũ bằng cách đơn giản:

    ALTER TABLE employees DROP PARTITION p0;
    
  2. Cơ sở dữ liệu có thể tăng tốc một truy vấn như sau:

    SELECT COUNT(*)
    FROM employees
    WHERE separated BETWEEN '2000-01-01' AND '2000-12-31'
    GROUP BY store_id;
    

Biết rằng tất cả dữ liệu chỉ được lưu trữ trên phân vùng p2.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. truy vấn để xóa tất cả các ký tự sau dấu phẩy cuối cùng trong chuỗi

  2. Làm thế nào để lấy khóa chính của bảng?

  3. Laravel 5:đồng bộ hóa một trường bổ sung qua trục xoay

  4. Làm thế nào để lấy tổng cho mọi giá trị khác biệt trong một cột khác?

  5. Xóa các bản ghi trùng lặp khỏi bảng không có pk hoặc id hoặc các cột duy nhất trong mysql