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

голоса
48

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

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

Задан 04/08/2008 в 12:21
источник пользователем
На других языках...                            


9 ответов

голоса
54

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

CREATE INDEX [index name] ON [table name] ( [column name] )
Ответил 04/08/2008 d 12:25
источник пользователем

голоса
6

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

создать некластерный индекс my_idx на my_table (my_col1 возрастанию, my_col2 по возрастанию) включают (my_col3);

Это неоценимо для запроса, который my_col3 в списке выбора, и my_col1 и my_col2 в ИНЕКЕ.

Ответил 13/08/2008 d 15:05
источник пользователем

голоса
4

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

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

(Игнорируя некоторые более продвинутые варианты ...)

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

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

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

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

Ответил 15/06/2012 d 19:01
источник пользователем

голоса
4

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

tables.columns.column_name.createIndex()
Ответил 23/01/2012 d 16:13
источник пользователем

голоса
2

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

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

SELECT Name, Course, Grade

FROM Students

WHERE StudentID = 111025

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

CREATE INDEX IndexStudentID

ON Students (StudentID)

Название IndexStudentID может быть что угодно, выбрать что-то, что имеет смысл для вас.

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

Ответил 29/08/2017 d 09:53
источник пользователем

голоса
2

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

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

    CREATE INDEX ON имя_индекса table_name (column_name)

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

    CREATE UNIQUE INDEX имя_индекса ON table_name (column_name)

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

    CREATE кластерного индекса CL_ID по продажам (ID);

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

    CREATE INDEX Некластеризованных NONCI_PC по продажам (ProductCode);

см http://www.codeproject.com/Articles/190263/Indexes-in-MS-SQL-Server для деталей.

Ответил 02/06/2015 d 13:38
источник пользователем

голоса
1

1.

 CREATE INDEX name_index ON Employee (Employee_Name)
  1. На нескольких колонке

    CREATE INDEX name_index ON Employee (Employee_Name, Employee_Age)
    
Ответил 17/01/2017 d 10:48
источник пользователем

голоса
0

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

Ответил 05/06/2018 d 10:24
источник пользователем

голоса
0

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

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

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

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

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

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

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

Ответил 01/06/2018 d 19:05
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more