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

Какво е разделяне на MYSQL?

Идеята зад разделянето не е да се използват множество сървъри, а да се използват множество таблици вместо една таблица. Можете да разделите таблица на много таблици, така че да имате стари данни в една подтаблица и нови данни в друга таблица. Тогава базата данни може да оптимизира заявки, при които искате нови данни, знаейки, че са във втората таблица. Нещо повече, вие определяте как се разделят данните.

Прост пример от документацията на 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
);

Това позволява да се ускори напр.:

  1. Изтриване на стари данни чрез просто:

    ALTER TABLE employees DROP PARTITION p0;
    
  2. Базата данни може да ускори заявка като тази:

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

Знаейки, че всички данни се съхраняват само на дяла 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. EXTRACT() Примери – MySQL

  2. Как да накарам база данни на MySQL да работи изцяло в паметта?

  3. Sqoop Import -- функцията-парола-файл не работи правилно в sqoop 1.4.4

  4. Връзка един към много в MySQL - как да изградим модел?

  5. mysql min where изявление