Команда NONCLUSTERED index (MySQL) недоступна в MySQL или Workbench - PullRequest
0 голосов
/ 01 февраля 2019

Когда я просто создаю index, все работает хорошо:

create index qty_ix on vacancy_desc_to_words (qty);

Но когда я пытаюсь создать NONCLUSTERED INDEX, у меня возникают проблемы: ни Workbench, ни MySQL console знает команды NONCLUSTERED и INCLUDE.


enter description of image here


enter image description here


MySQL версияв Linux:

mysql  Ver 14.14 Distrib 5.7.24, for Linux (x86_64) using  EditLine wrapper

Вопрос:

Как использовать NONCLUSTERED / INCLUDE команды?

Ответы [ 3 ]

0 голосов
/ 02 февраля 2019

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

Кластеризованным индексом может быть только PRIMARY KEY или первый не-NULL UNIQUE KEY, и они будут кластеризованным индексом без вашего выбора.

Все остальные индексы в таблице неявнонекластеризованный.

Я предполагаю, что таблица использует механизм хранения InnoDB, который является механизмом хранения по умолчанию.Если вы используете другой механизм хранения, правила могут отличаться.Например, MyISAM вообще не поддерживает кластеризованные индексы.

MySQL также не поддерживает концепцию INCLUDE, как это делает Microsoft.Включены только столбцы, названные для индекса.

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

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

https://dev.mysql.com/doc/refman/5.7/en/create-index.html

0 голосов
/ 02 февраля 2019

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

CREATE INDEX qty_ix ON vacancy_desc_to_words (qty, words_id);
0 голосов
/ 02 февраля 2019

я нашел это, это может объяснить, здесь но суть в том, что приведенный выше синтаксис не используется в MYSQL, по сути это SQLServer

...