Как мне индексировать столбец базы данных
Надеюсь, я смогу получить ответы для каждого сервера базы данных.
Чтобы узнать, как работает индексация, посмотрите: Как работает индексация базы данных?
8 ответов
Ниже приведен стандарт 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
в списке выбора и my_col1
а также my_col2
в пункте, где.
Для python-таблиц индексы не имеют имен и привязаны к одним столбцам:
tables.columns.column_name.createIndex()
В SQL Server вы можете делать следующее: ( MSDN Ссылка на полный список параметров.)
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name
ON <object> ( column [ ASC | DESC ] [ ,...n ] )
[ INCLUDE ( column_name [ ,...n ] ) ]
[ WHERE <filter_predicate> ]
(игнорируя некоторые более сложные параметры...)
Имя каждого индекса должно быть уникальным для всей базы данных.
Все индексы могут иметь несколько столбцов, и каждый столбец можно упорядочить в любом порядке.
Кластерные индексы уникальны - по одному на таблицу. Они не могут иметь INCLUDE
г колонки.
Некластеризованные индексы не являются уникальными и могут иметь до 999 на таблицу. Они могут включать столбцы, и, где предложения.
Для создания индексов можно использовать следующие вещи:
Создает индекс для таблицы. Допускаются повторяющиеся значения:
CREATE INDEX index_name ON table_name (column_name)
Создает уникальный индекс для таблицы. Дублирующиеся значения не допускаются:
CREATE UNIQUE INDEX index_name ON table_name (column_name)
Кластерный индекс:
CREATE CLUSTERED INDEX CL_ID ON SALES(ID);
- Некластерный индекс:
CREATE NONCLUSTERED INDEX NONCI_PC ON SALES(ProductCode);
Обратитесь: http://www.codeproject.com/Articles/190263/Indexes-in-MS-SQL-Server для деталей.
Вы должны только индексировать столбцы, по которым вы выполняете частый поиск / запросы.
Предположим, у вас есть таблица "Студенты", в которой вы храните "StudentID", "Имя", "Курс", "Оценка" и т. Д. И вам нужно часто искать в столбце "StudentID" информацию о конкретных студентах.
SELECT Name, Course, Grade
FROM Students
WHERE StudentID = 111025
Вы должны создать индекс для этого столбца, так как это ускорит процесс поиска. Вы можете создать индекс для существующего столбца с помощью следующего кода:
CREATE INDEX IndexStudentID
ON Students (StudentID)
Имя IndexStudentID может быть любым, выбрать то, что имеет смысл для вас.
Тем не менее, создание индекса добавит некоторые издержки в вашу базу данных. Есть много инструментов, которые могут помочь, например, я использую SQLDbm, так как мне он подходит лучше всего.
CREATE INDEX name_index ON Employee (Employee_Name)
На мультиколонке:
CREATE INDEX name_index ON Employee (Employee_Name, Employee_Age)
Индекс не всегда нужен для всех баз данных. Например: механизм Kognitio aka WX2 не предлагает синтаксиса для индексации, поскольку механизм базы данных позаботится об этом неявно. Данные передаются через циклическое разбиение, и Kognitio WX2 получает данные на диск и с диска самым простым способом.
Мы можем использовать следующий синтаксис для создания index.
CREATE INDEX <index_name> ON <table_name>(<column_name>)
Если мы не хотим, чтобы разрешалось дублирование значений, мы можем добавить UNIQUE при создании индекса, как показано ниже.
CREATE UNIQUE INDEX <index_name> ON <table_name>(<column_name>)
Мы можем создать индекс для нескольких столбцов, указав несколько имен столбцов, разделенных ','
Поскольку большинство ответов дано для баз данных SQL, я пишу это для баз данных NOSQL, особенно для MongoDB.
Ниже приведен синтаксис для создания индекса в MongoDB с использованием оболочки mongo.
db.collection.createIndex( <key and index type specification>, <options> )
пример - db.collection.createIndex( { name: -1 } )
В приведенном выше примере в поле имени создается нисходящий индекс с одним ключом.
Имейте в виду, что индексы MongoDB используют структуру данных B-дерева.
Существует несколько типов индексов, которые мы можем создать в mongodb, для получения дополнительной информации обратитесь к ссылке ниже - https://docs.mongodb.com/manual/indexes/