Надеюсь, я смогу получить ответы для каждого сервера баз данных.
О том, как работает индексирование, читайте здесь: https://stackoverflow.com/questions/1108/how-does-database-indexing-work
Следующее является стандартом SQL92, поэтому должно поддерживаться большинством RDMBS, использующих SQL:
CREATE INDEX [index name] ON [table name] ( [column name] )
В Sql Server 2005
появилась возможность задать покрывающий индекс. Это индекс, который включает данные из других столбцов на уровне листа, так что вам не придется возвращаться к таблице, чтобы получить столбцы, которые не включены в ключи индекса.
create nonclustered index my_idx on my_table (my_col1 asc, my_col2 asc) include (my_col3);
Это неоценимо для запроса, в котором есть my_col3
в списке select, а my_col1
и my_col2
в предложении where.
В SQL Server, вы можете сделать следующее: (ссылка на MSDN полный список вариантов.)
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name
ON <object> ( column [ ASC | DESC ] [ ,...n ] )
[ INCLUDE ( column_name [ ,...n ] ) ]
[ WHERE <filter_predicate> ]
(игнорируя некоторые более продвинутые варианты...)
Имя каждого индекса должно быть уникальным в базе данных.
Все индексы могут иметь несколько столбцов, и каждый столбец может быть заказан в любом порядке, который вы хотите.
Кластеризованные индексы уникальны - один на стол. Они могут'т придется включать бы колонны.
Некластеризованные индексы не являются уникальными, и могут иметь до 999 в таблице. Они могут быть включены столбцы, и Where.
Для создания индексов следующих материалов могут быть использованы:
Создание индекса для таблицы. Допускается дублирование значений: Создать имяиндекса индекс On имя_таблицы (имя_столбца)`
Создает уникальный индекс для таблицы. Повторяющиеся значения не допускаются: Создать уникальный имяиндекса индекс on имя_таблицы (имя_столбца)`
Кластеризованный индекс: создать кластеризованный индекс CL_ID по продажам(ИД);`
Некластерного индекса: Создать некластеризованный индекс NONCI_PC по продажам(код продукта);`
Относятся: http://www.codeproject.com/Articles/190263/Indexes-in-MS-SQL-Server для получения подробной информации.
Создать name_index индекса на работника (Имя_сотрудника)`
На несколько столбцов: создать name_index индекса на работника (Имя_сотрудника, Employee_Age)
Поскольку большинство ответы даны для баз данных SQL, я пишу это для NoSQL баз данных, специально для MongoDB.
Ниже приведен синтаксис для создания индекса в MongoDB с помощью монго оболочки.
db.collection.createIndex( <key and index type specification>, <options> )
пример - дБ.коллекции.функции createindex( { имя: -1 } )
В приведенном выше примере один ключ по убыванию индекса создается на имя поле.
Имейте в виду индексы MongoDB использует B-дерева структуры данных.
Есть несколько типов индексов, мы можем создать в MongoDB, для получения дополнительной информации обратитесь к ссылке ниже - https://docs.mongodb.com/manual/indexes/
Индекс не всегда необходима для всех баз данных. Например: двигатель Kognitio WX2 ака не'т предлагаем синтаксис для индексации в качестве СУБД заботится о ней неявно. Данных происходит через циклическое разбиение и Kognitio WX2 получает данные и с диска в Самым простым способом.
Мы можем использовать следующий синтаксис для создания индекса.
CREATE INDEX <index_name> ON <table_name>(<column_name>)
Если мы не хотим дублировать значения позволил тогда можно добавить уникальный при создании индекса как следовать
CREATE UNIQUE INDEX <index_name> ON <table_name>(<column_name>)
Мы можем создать индекс на несколько столбцов, давая множественные имени столбца, разделенных ','