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

Как да разделя MySQL таблица въз основа на колона char?

Разделянето в MySQL 5.1 може да работи само с целочислени колони (Източник ). Можете да използвате само няколко функции за разделяне върху нецелочислени колони. Например:

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

Можете също да използвате разделяне на ключове в MySQL 5.1, стига първичният ключ да включва всички колони във функцията за разделяне на таблицата:

CREATE TABLE k1 (
   id CHAR(3) NOT NULL PRIMARY KEY,
   value int
)
PARTITION BY KEY(id)
PARTITIONS 10;

От друга страна, в MySQL 5.5 можете да използвате разделяне на колони с диапазон или списъчно разделяне на колони върху голямо разнообразие от типове данни, включително базирани на знаци колони.

Пример за списъчни колони:

CREATE TABLE expenses (
   expense_date DATE NOT NULL,
   category VARCHAR(30),
   amount DECIMAL (10,3)
);

ALTER TABLE expenses
PARTITION BY LIST COLUMNS (category)
(
   PARTITION p01 VALUES IN ('lodging', 'food'),
   PARTITION p02 VALUES IN ('flights', 'ground transportation'),
   PARTITION p03 VALUES IN ('leisure', 'customer entertainment'),
   PARTITION p04 VALUES IN ('communications'),
   PARTITION p05 VALUES IN ('fees')
);

Пример за колони за диапазон:

CREATE TABLE range_test (
   code CHAR(3),
   value INT
)
PARTITION BY RANGE COLUMNS(code) (
   PARTITION p0 VALUES LESS THAN ('MMM'),
   PARTITION p1 VALUES LESS THAN ('ZZZ')
);

Допълнително четене:



  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 в AWS EC2 - Как се мащабира?

  2. Не може да се прехвърли обект от тип 'System.DBNull' към тип 'System.Byte[]'.

  3. странно - sql::SQLException на mysql не се улавя от своя тип, но се улавя като std::exception и се връща успешно

  4. Защо свързването с MySQL сървър е толкова бавно?

  5. Използване на MySQL заявка с променливи от C#