Как индексировать столбец базы данных
надеюсь, я могу получить ответы для каждого сервера базы данных.
для описания того, как работает индексация проверьте:как работает индексация базы данных?
9 ответов:
ниже приведен стандарт SQL92, поэтому он должен поддерживаться большинством RDMBS, использующих SQL:
CREATE INDEX [index name] ON [table name] ( [column name] )
Sql Server 2005 дает возможность указать индекс покрытия. Это индекс, который включает данные из других столбцов на конечном уровне, поэтому вам не нужно возвращаться к таблице, чтобы получить столбцы, которые не включены в ключи индекса.
создать некластеризованный индекс my_idx на my_table (my_col1 asc, my_col2 asc) include (my_col3);
это бесценно для запроса, который имеет my_col3 в списке выбора и my_col1 и my_col2 в предложении where.
для python pytables индексы не имеют имен и привязаны к отдельным столбцам:
tables.columns.column_name.createIndex()
в SQL Server можно сделать следующее: ( MSDN Link полный список вариантов.)
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name ON <object> ( column [ ASC | DESC ] [ ,...n ] ) [ INCLUDE ( column_name [ ,...n ] ) ] [ WHERE <filter_predicate> ](игнорируя некоторые дополнительные параметры...)
имя каждого индекса должно быть уникальным в базе данных.
все индексы могут иметь несколько столбцов, и каждый столбец может быть упорядочен в любом порядке вы хотите.
кластеризованные индексы уникальны-по одному на таблицу. Они не могут иметь
INCLUDEстолбцы D.некластеризованные индексы не уникален, и может иметь до 999 в таблице. Они могут включать столбцы и предложения where.
для создания индексов можно использовать следующие вещи:
создает индекс для таблицы. Допускается дублирование значений:
создать индекс имя_индекса On имя_таблицы (имя_столбца)
создает уникальный индекс для таблицы. Повторяющиеся значения не допускаются:
создать уникальный индекс имя_индекса On имя_таблицы (имя_столбца)
Кластерный Индекс
СОЗДАТЬ КЛАСТЕРИЗОВАННЫЙ ИНДЕКС CL_ID ON ПРОДАЖ(ИДЕНТИФИКАТОР);
некластерный индекс
создать некластеризованный индекс NONCI_PC по продажам (ProductCode);
см http://www.codeproject.com/Articles/190263/Indexes-in-MS-SQL-Server для деталей.
вы должны индексировать только столбцы, на которых вы выполняете частый поиск / запросы.
Предположим, у вас есть таблица с именем Students, где вы храните StudentID, имя, курс, класс и т. д. И вам нужно часто искать столбец StudentID для получения информации о конкретных студентах.
SELECT Name, Course, Grade FROM Students WHERE StudentID = 111025вы должны создать индекс для этого столбца, так как это ускорит процесс поиска. Вы можете создать индекс для существующего столбца со следующими код:
CREATE INDEX IndexStudentID ON Students (StudentID)имя IndexStudentID может быть что угодно, выберите что-то, что имеет смысл для вас.
однако создание индекса добавит некоторые накладные расходы в вашу базу данных. Есть много инструментов, которые могут помочь, например, я использую SQLDbm как я это подходит мне лучше всего.
1.
CREATE INDEX name_index ON Employee (Employee_Name)
на нескольких столбцах
CREATE INDEX name_index ON Employee (Employee_Name, Employee_Age)
Ниже приведен синтаксис для создания индекса в MongoDB с помощью оболочки mongo.
db.collection.createIndex( <key and index type specification>, <options> )пример
db.collection.createIndex( { name: -1 } )в приведенном выше примере создается один ключевой нисходящий индекс по имени поле.
имейте в виду, что MongoDB indexes использует структуру данных B-дерева.
есть несколько типов индексов мы можно создать в mongodb, для получения дополнительной информации см. ссылку ниже -https://docs.mongodb.com/manual/indexes/
индекс не всегда необходим для всех баз данных. Например: kognitio aka wx2 engine не предлагает синтаксис для индексирования, поскольку компонент database engine заботится о нем неявно. Данные идут дальше через круговой разделять и Kognitio WX2 получает данные дальше и с диска в самом простом возможном путе.
Comments