Алексей Паутов - MySQL - руководство профессионала

Здесь есть возможность читать онлайн «Алексей Паутов - MySQL - руководство профессионала» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Базы данных, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

MySQL: руководство профессионала: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «MySQL: руководство профессионала»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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

MySQL: руководство профессионала — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «MySQL: руководство профессионала», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

PARTITION BY HASH(col1 + col3) PARTITIONS 4;

CREATE TABLE t3 (col1 INT NOT NULL, col2 DATE NOT NULL,

col3 INT NOT NULL, col4 INT NOT NULL,

UNIQUE KEY (col1, col2), UNIQUE KEY (col3))

PARTITION BY HASH(col1 + col3) PARTITIONS 4;

В каждом случае, предложенная таблица имела бы по крайней мере один уникальный ключ, который не включает все столбцы, используемые в выражении выделения разделов.

Каждая из следующих инструкций допустима и представляет один способ, которым соответствующая недопустимая инструкция создания таблицы могла бы быть сделана рабочей:

CREATE TABLE t1 (col1 INT NOT NULL, col2 DATE NOT NULL,

col3 INT NOT NULL, col4 INT NOT NULL,

UNIQUE KEY (col1, col2, col3))

PARTITION BY HASH(col3) PARTITIONS 4;

CREATE TABLE t2 (col1 INT NOT NULL, col2 DATE NOT NULL,

col3 INT NOT NULL, col4 INT NOT NULL,

UNIQUE KEY (col1, col3))

PARTITION BY HASH(col1 + col3) PARTITIONS 4;

CREATE TABLE t3 (col1 INT NOT NULL, col2 DATE NOT NULL,

col3 INT NOT NULL, col4 INT NOT NULL,

UNIQUE KEY (col1, col2, col3), UNIQUE KEY (col3))

PARTITION BY HASH(col3) PARTITIONS 4;

Так как каждый первичный ключ по определению уникальный ключ, это ограничение также включает первичный ключ таблицы, если он есть. Например, следующие две инструкции недопустимы:

CREATE TABLE t4 (col1 INT NOT NULL, col2 DATE NOT NULL,

col3 INT NOT NULL, col4 INT NOT NULL,

PRIMARY KEY(col1, col2))

PARTITION BY HASH(col3) PARTITIONS 4;

CREATE TABLE t5 (col1 INT NOT NULL, col2 DATE NOT NULL,

col3 INT NOT NULL, col4 INT NOT NULL,

PRIMARY KEY(col1, col3), UNIQUE KEY(col2))

PARTITION BY HASH(YEAR(col2)) PARTITIONS 4;

В обоих случаях первичный ключ не включает все столбцы, названные в выражении выделения разделов. Однако, обе из следующих двух инструкций допустимы:

CREATE TABLE t6 (col1 INT NOT NULL, col2 DATE NOT NULL,

col3 INT NOT NULL, col4 INT NOT NULL,

PRIMARY KEY(col1, col2))

PARTITION BY HASH(col1 + YEAR(col2)) PARTITIONS 4;

CREATE TABLE t7 (col1 INT NOT NULL, col2 DATE NOT NULL,

col3 INT NOT NULL, col4 INT NOT NULL,

PRIMARY KEY(col1, col2, col4), UNIQUE KEY(col2, col1))

PARTITION BY HASH(col1 + YEAR(col2)) PARTITIONS 4;

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

По той же самой причине Вы не можете позже добавлять уникальный ключ к разбитой на разделы таблице, если этот ключ не включает все столбцы, используемые выражением выделения разделов таблицы. Рассмотрите разбитую на разделы таблицу, определенную так, как показано здесь:

CREATE TABLE t_no_pk (c1 INT, c2 INT)

PARTITION BY RANGE(c1) (PARTITION p0 VALUES LESS THAN (10),

PARTITION p1 VALUES LESS THAN (20),

PARTITION p2 VALUES LESS THAN (30),

PARTITION p3 VALUES LESS THAN (40));

Возможно добавить первичный ключ к t_no_pk, используя любую из этих инструкций ALTER TABLE:

# possible PK

ALTER TABLE t_no_pk ADD PRIMARY KEY(c1);

# also a possible PK

ALTER TABLE t_no_pk ADD PRIMARY KEY(c1, c2);

Однако, следующие операторы свалятся потому, что c1 представляет собой часть ключа выделения разделов, но не часть предложенного первичного ключа:

# fails with ERROR 1482

ALTER TABLE t_no_pk ADD PRIMARY KEY(c2);

С тех пор как t_no_pk имеет только c1 в

выражении выделения разделов, попытка добавления уникального ключа на c2 всегда провалится. Однако, Вы можете добавлять уникальный ключ, который использует c1 и c2.

Эти правила также относятся к существующим не разбитым на разделы таблицам, в которых Вы желаете выделить разделы используя ALTER TABLE … PARTITION BY. Рассмотрите таблицу np_pk:

CREATE TABLE np_pk (

id INT NOT NULL AUTO_INCREMENT,

name VARCHAR(50),

added DATE, PRIMARY KEY (id)

);

Следующяя инструкция ALTER TABLE потерпит неудачу с ошибкой, потому что столбец added не является частью любого

уникального ключа в таблице:

ALTER TABLE np_pk PARTITION BY HASH(TO_DAYS(added)) PARTITIONS 4;

Эта инструкция, однако, была бы полностью допустима:

ALTER TABLE np_pk PARTITION BY HASH(id) PARTITIONS 4;

В случае np_pk единственный столбец, который может использоваться как часть выражения выделения разделов, id. Если Вы желаете выделить разделы этой таблицы, использующие любой другой столбец или столбцы в выражении выделения разделов, Вы должны сначала изменить таблицу, добавляя желательный столбец или столбцы на первичный ключ или удаляя первичный ключ в целом.

Подразделы ограничены выделением разделов HASH или KEY. Разделы HASH и KEY не могут быть

подразбиты на разделы.

Глава 4. Пространственные расширения

MySQL поддерживает пространственные расширения, чтобы позволить хранение и анализ географических свойств. Эти свойства доступны для таблиц типов MyISAM, InnoDB, NDB и ARCHIVE. Однако, тип ARCHIVE не поддерживает индексацию, так что пространственные столбцы в столбцах ARCHIVE не могут быть индексированы. MySQL Cluster также не поддерживает индексацию пространственных столбцов.

Хотя пространственные расширения обеспечиваются в таблицах InnoDB, использование пространственных индексов может вызывать аварийный отказ ( Глюк #15860 Алексей В. Паутов MySQL: руководство профессионала Введение Это не совсем книга. Просто по ходу работы и изучения пакета у меня накопилось немало заметок, которые я в конце концов собрал воедино и опубликовал с оглавлением и под единым названием. Данные заметки относятся к версиям 4 и 5 пакета MySQL. По ходу текста особо отмечены места, относящиеся к специфической версии пакета. Необходимо также отметить, что эти заметки логически продолжают книгу MySQL: Руководство администратора и ориентированы на ту же аудиторию. Данный материал подготовлен Паутовым Алексеем в рамках некоммерческого проекта RussianLDP:MySQL. При любом использовании ссылка на автора и проект обязательна! ).

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «MySQL: руководство профессионала»

Представляем Вашему вниманию похожие книги на «MySQL: руководство профессионала» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Владимир Паутов - Охота на черного ястреба
Владимир Паутов
Владимир Паутов - Приказано уничтожить
Владимир Паутов
Отзывы о книге «MySQL: руководство профессионала»

Обсуждение, отзывы о книге «MySQL: руководство профессионала» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x