Какая польза от ключевого слова "Partition" в MySQL? - PullRequest
2 голосов
/ 01 апреля 2010

Поскольку я новичок в MySQL. Что означает PARTITION в этом операторе 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 NOT NULL,
    store_id INT NOT NULL
)
PARTITION BY RANGE (store_id) (
    PARTITION p0 VALUES LESS THAN (6),
    PARTITION p1 VALUES LESS THAN (11),
    PARTITION p2 VALUES LESS THAN (16),
    PARTITION p3 VALUES LESS THAN (21)
);

Ответы [ 2 ]

3 голосов
/ 01 апреля 2010

Разделение - это способ предварительная организация хранения столов. Вы можете скажем "некоторые строки таблицы пойдут здесь одни пойдут туда, другие отправится в еще другие места ". Часто в зависимости от хранилища двигатель, эффект состоит в том, чтобы распространить строки таблицы в разных файлах или даже разные диски.

От: MySQL 5.1 Новые возможности: разделы MySQL


Вас также может заинтересовать дополнительная информация о " горизонтальном разбиении ", чтобы лучше понять сценарии, в которых это особенно полезно.

2 голосов
/ 12 октября 2012

Секционирование помогает организовать данные, хранящиеся в таблице, разбивая их по разным сегментам.

Это аналогично тому, как библиотека имеет отдельные секции полок для разных предметов, в то время как ящики для каталогов / учетных карточек обычно разделены в алфавитном порядке.

Это помогает двумя способами:

  1. Управлять физическим хранилищем проще с помощью разметки. Например, одной из стратегий может быть наличие отдельных дисков для хранилища каждого раздела. Это обычно помогает сбалансированным образом распределить данные между несколькими физическими дисками.
  2. База данных может оптимизировать поиск и доставку данных, идентифицируя ограниченные разделы, которые необходимо извлечь. Разбиение обычно выполняется с учетом физических характеристик памяти. Таким образом, даже при извлечении ядру базы данных обычно требуется считывать только с определенного раздела, и поэтому он может считывать целые блоки данных из физического хранилища.

Вот несколько ссылок, где вы можете получить более подробную информацию:

Статья в Википедии: http://en.wikipedia.org/wiki/Partition_(database)

Документация MySQL относительно разделов: http://dev.mysql.com/doc/refman/5.5/en/partitioning.html

...