Как индексировать столбец базы данных



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



для описания того, как работает индексация проверьте:как работает индексация базы данных?

658   9  

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.

для создания индексов можно использовать следующие вещи:

  1. создает индекс для таблицы. Допускается дублирование значений:

    создать индекс имя_индекса On имя_таблицы (имя_столбца)

  2. создает уникальный индекс для таблицы. Повторяющиеся значения не допускаются:

    создать уникальный индекс имя_индекса On имя_таблицы (имя_столбца)

  3. Кластерный Индекс

    СОЗДАТЬ КЛАСТЕРИЗОВАННЫЙ ИНДЕКС CL_ID ON ПРОДАЖ(ИДЕНТИФИКАТОР);

  4. некластерный индекс

    создать некластеризованный индекс 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)
  1. на нескольких столбцах

    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

    Ничего не найдено.