Jak indeksować kolumnę bazy danych

Mam nadzieję, że mogę uzyskać odpowiedzi dla każdego serwera bazy danych.

Aby dowiedzieć się, jak działa indeksowanie, sprawdź: Jak działa indeksowanie baz danych?

Author: Community, 2008-08-04

9 answers

Poniżej znajduje się standard SQL92, więc powinien być obsługiwany przez większość RDMBS, które używają SQL:

CREATE INDEX [index name] ON [table name] ( [column name] )
 57
Author: John Downey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-04 12:34:51

Sql Server 2005 daje możliwość określenia indeksu pokrycia. Jest to indeks, który zawiera dane z innych kolumn na poziomie liścia, więc nie musisz wracać do tabeli, aby uzyskać kolumny, które nie są zawarte w kluczach indeksu.

Utwórz niezakłócony indeks my_idx na my_table (my_col1 asc, my_col2 asc) include (my_col3);

Jest to bezcenne dla zapytania, które ma my_col3 na liście select, a my_col1 i my_col2 w klauzuli where.

 6
Author: Eric Z Beard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-13 14:05:26

Dla Pythona, indeksy nie mają nazw i są powiązane z pojedynczymi kolumnami:

tables.columns.column_name.createIndex()
 4
Author: tdc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-23 15:13:48

W SQL Server możesz wykonać następujące czynności: (Link MSDN do pełnej listy opcji.)

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

(ignorując niektóre bardziej zaawansowane opcje...)

Nazwa każdego indeksu musi być unikalna dla całej bazy danych.

Wszystkie indeksy mogą mieć wiele kolumn, a każdą kolumnę można uporządkować w dowolnej kolejności.

Indeksy klastrowe są unikalne - po jednym na tabelę. Nie mogą mieć INCLUDEkolumn D.

Niezakłócone indeksy nie są unikalne i mogą mieć do 999 na tabelę. Mogą zawierać kolumny i klauzule where.

 4
Author: David Manheim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-15 18:01:12

Do tworzenia indeksów można użyć następujących rzeczy:

  1. Tworzy indeks na tabeli. Dozwolone są zduplikowane wartości:

    CREATE INDEX index_name ON table_name (column_name)

  2. Tworzy unikalny indeks na tabeli. Zduplikowane wartości nie są dozwolone:

    CREATE UNIQUE INDEX index_name ON table_name (column_name)

  3. Clustered Index

    CREATE CLUSTERED INDEX CL_ID ON SALES (ID);

  4. Non-clustered indeks

    Tworzenie indeksu niezakłóconego NONCI_PC na sprzedaży (ProductCode);

Refer http://www.codeproject.com/Articles/190263/Indexes-in-MS-SQL-Server po szczegóły.

 2
Author: Sharvari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-02 13:57:11

Powinieneś indeksować tylko kolumny, na których wykonujesz częste wyszukiwanie / zapytania.

Załóżmy, że masz tabelę nazw uczniów, w której przechowujesz StudentID, nazwę, kurs, ocenę itp. Musisz często przeszukiwać kolumnę StudentID w celu uzyskania informacji o konkretnych uczniach.

SELECT Name, Course, Grade

FROM Students

WHERE StudentID = 111025

Powinieneś utworzyć indeks na tej kolumnie, ponieważ przyspieszy to proces wyszukiwania. Możesz utworzyć indeks na istniejącej kolumnie o następującym kodzie:

CREATE INDEX IndexStudentID

ON Students (StudentID)

Nazwa IndexStudentID może być wszystkim, wybierz coś, co ma dla ciebie sens.

Jednak utworzenie indeksu doda trochę narzutu do twojej bazy danych. Istnieje wiele narzędzi, które mogą pomóc, na przykład używam SQLDbm , ponieważ najbardziej mi odpowiada.

 2
Author: halcosho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-29 10:13:53

1.

 CREATE INDEX name_index ON Employee (Employee_Name)
  1. Na wielu kolumnach

    CREATE INDEX name_index ON Employee (Employee_Name, Employee_Age)
    
 1
Author: Looking_for_answers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-29 11:34:27

Ponieważ większość odpowiedzi jest udzielana dla baz danych SQL, piszę to dla baz danych NOSQL, szczególnie dla MongoDB.

Poniżej znajduje się składnia tworzenia indeksu w MongoDB przy użyciu powłoki mongo.

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

Przykład - db.collection.createIndex( { name: -1 } )

W powyższym przykładzie na nazwie tworzony jest pojedynczy indeks malejący klucza pole.

Pamiętaj, że indeksy MongoDB używają struktury danych drzewa B.

Istnieje wiele rodzajów indeksów, które możemy utworzyć w mongodb, aby uzyskać więcej informacje znajdują się poniżej link - https://docs.mongodb.com/manual/indexes/

 0
Author: mdeora,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-01 19:05:49

Indeks nie zawsze jest potrzebny dla wszystkich baz danych. Na przykład: Kognitio aka silnik WX2 nie oferuje składni do indeksowania, ponieważ silnik bazy danych dba o to pośrednio. Dane przechodzą przez partycjonowanie round-robin, a Kognitio WX2 pobiera dane na dysku i poza nim w najprostszy możliwy sposób.

 0
Author: SriniV,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-05 10:24:47