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

sql database indexing

38143 просмотра

9 ответа

49845 Репутация автора

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

Опишите, как работают индексирование: как работает индексация базы данных?

Автор: Xenph Yan Источник Размещён: 04.08.2008 11:21

Ответы (9)


58 плюса

11195 Репутация автора

Решение

Ниже приведен стандарт SQL92, поэтому он должен поддерживаться большинством RDMBS, которые используют SQL:

CREATE INDEX [index name] ON [table name] ( [column name] )
Автор: John Downey Размещён: 04.08.2008 11:25

6 плюса

27342 Репутация автора

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в предложении where.

Автор: Eric Z Beard Размещён: 13.08.2008 02:05

4 плюса

3378 Репутация автора

Для python pytables индексы не имеют имен, и они привязаны к одиночным столбцам:

tables.columns.column_name.createIndex()
Автор: tdc Размещён: 23.01.2012 03:13

4 плюса

2075 Репутация автора

В SQL Server вы можете сделать следующее: ( MSDN Link для полного списка опций.)

CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name 
    ON <object> ( column [ ASC | DESC ] [ ,...n ] ) 
    [ INCLUDE ( column_name [ ,...n ] ) ]
    [ WHERE <filter_predicate> ]

(игнорируя некоторые дополнительные параметры ...)

Имя каждого индекса должно быть уникальной базой данных.

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

Кластеризованные индексы уникальны - по одному на таблицу. Они не могут иметь INCLUDEd столбцов.

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

Автор: David Manheim Размещён: 15.06.2012 06:01

2 плюса

31 Репутация автора

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

  1. Создает индекс в таблице. Допускаются повторяющиеся значения: CREATE INDEX index_name ON table_name (column_name)

  2. Создает уникальный индекс в таблице. Дублирующие значения не допускаются: CREATE UNIQUE INDEX index_name ON table_name (column_name)

  3. Кластерный индекс: CREATE CLUSTERED INDEX CL_ID ON SALES(ID);

  4. Некластеризованный индекс:
    CREATE NONCLUSTERED INDEX NONCI_PC ON SALES(ProductCode);

Подробнее см. Http://www.codeproject.com/Articles/190263/Indexes-in-MS-SQL-Server .

Автор: Sharvari Размещён: 02.06.2015 01:38

1 плюс

197 Репутация автора

  1. CREATE INDEX name_index ON Employee (Employee_Name)

  2. В нескольких столбцах: CREATE INDEX name_index ON Employee (Employee_Name, Employee_Age)

Автор: Looking_for_answers Размещён: 17.01.2017 10:48

3 плюса

174 Репутация автора

Вы должны индексировать только те столбцы, в которых вы часто выполняете поиск / запросы.

Предположим, у вас есть таблица с именем Students, где вы храните StudentID, Name, Course, Grade и т. Д. И вам нужно часто искать столбец StudentID для получения информации о конкретных учениках.

SELECT Name, Course, Grade

FROM Students

WHERE StudentID = 111025

Вы должны создать индекс в этом столбце, так как это ускорит процесс поиска. Вы можете создать индекс в существующем столбце со следующим кодом:

CREATE INDEX IndexStudentID

ON Students (StudentID)

Имя IndexStudentID может быть любым, выбрать то, что имеет смысл для вас.

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

Автор: halcosho Размещён: 29.08.2017 09:53

0 плюса

1436 Репутация автора

Поскольку большинство ответов даны для баз данных SQL, я пишу это для баз данных NOSQL, в частности для MongoDB.

Ниже приведен синтаксис для создания индекса в MongoDB с использованием оболочки mongo.

db.collection.createIndex( <key and index type specification>, <options> )

пример - db.collection.createIndex( { name: -1 } )

В приведенном выше примере в поле имени создается один ниспадающий индекс.

Имейте в виду, что индексы MongoDB используют структуру данных B-tree.

Существует несколько типов индексов, которые мы можем создать в mongodb, для получения дополнительной информации см. Ниже ссылку - https://docs.mongodb.com/manual/indexes/

Автор: mdeora Размещён: 01.06.2018 07:05

0 плюса

8531 Репутация автора

Индекс не всегда необходим для всех баз данных. Например, Kognitio aka WX2 engine не предлагает синтаксиса для индексирования, поскольку механизм базы данных позаботится об этом неявно. Данные проходят через циклическое разбиение на разделы, и Kognitio WX2 получает данные на диске и выключает его самым простым способом.

Автор: SriniV Размещён: 05.06.2018 10:24
32x32