Vă mulțumim pentru susținere

Cum indexez o coloană de bază de date

Sper că pot primi răspunsuri pentru fiecare server de bază de date.

For an outline of how indexing works check out: How does database indexing work?

0
adăugat editat
Unul dintre obiectivele declarate ale SO este să se afișeze mai întâi într-o căutare Google. De multe ori, un răspuns SO este mai bun decât documentele în sine. Nu ar fi valoroasă să stabiliți aici un răspuns ca un wiki al comunității pentru a colaționa toate răspunsurile?
adăugat autor Ethan Reesor
Acest lucru pare a fi o întrebare care ar fi bine răspuns de docs pentru serverul de bază de date pe care ar putea să-l utilizați. Pentru Oracle: [ download.oracle. com / docs / cd / B28359_01 / server.111 / b28310 / & hellip;
adăugat autor WW.
Nu am primit pagina corectă când am făcut clic pe link-ul de mai sus pentru Oracle. Publicarea link-ului corect: docs.oracle.com/cd/B28359_01 /server.111/b28310/indexes003.ht‌ m
adăugat autor Saurabh Patil

7 răspunsuri

Sql Server 2005 vă oferă posibilitatea de a specifica un indice de acoperire. Acesta este un index care include date din alte coloane la nivelul frunzelor, deci nu trebuie să vă întoarceți la tabel pentru a obține coloane care nu sunt incluse în cheile index.

creați index nonclustered my_idx pe my_table (my_col1 asc, my_col2 asc) include (my_col3);

Acest lucru este de neprețuit pentru o interogare care are my_col3 în lista de selectare și my_col1 și my_col2 în clauza unde.

0
adăugat

1.

 CREATE INDEX name_index ON Employee (Employee_Name)
  1. On a multi column

    CREATE INDEX name_index ON Employee (Employee_Name, Employee_Age)
    
0
adăugat

În SQL Server, puteți face următoarele: ( Link MSDN la plin listă de opțiuni.)

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

(ignorând unele opțiuni mai avansate ...)

Numele fiecărui index trebuie să aibă o bază de date unică largă.

Toți indicii pot avea mai multe coloane și fiecare coloană poate fi comandată în orice ordine doriți.

Clusterele sunt indici uni - câte unul pe fiecare tabel. Nu pot avea coloane INCLUDE d.

Indicii nesubstrați nu sunt unici și pot avea până la 999 pe masă. Ei au inclus coloane și clauze.

0
adăugat

Următoarele este standardul SQL92, astfel încât ar trebui să fie acceptat de majoritatea RDMBS care utilizează SQL:

CREATE INDEX [index name] ON [table name] ( [column name] )
0
adăugat
În majoritatea sistemelor, aceasta poate fi utilizată pentru a avea mai multe coloane, doar adăugând o listă separată de virgule de nume de coloane în locul coloanei unice.
adăugat autor David Manheim

Pentru python python, indexurile nu au nume și sunt legate de coloane singulare:

tables.columns.column_name.createIndex()
0
adăugat

Pentru a crea indexuri, pot fi utilizate următoarele elemente:

  1. Creates an index on a table. Duplicate values are allowed:

    CREATE INDEX index_name ON table_name (column_name)

  2. Creates a unique index on a table. Duplicate values are not allowed:

    CREATE UNIQUE INDEX index_name ON table_name (column_name)

  3. Clustered Index

    CREATE CLUSTERED INDEX CL_ID ON SALES(ID);

  4. Non-clustered index

    CREATE NONCLUSTERED INDEX NONCI_PC ON SALES(ProductCode);

consultați http://www.codeproject.com/Articles/190263/ Indexes-in-MS-SQL-Server pentru detalii.

0
adăugat

Ar trebui să indexați numai coloanele pe care efectuați căutări frecvente / interogări.

Să presupunem că aveți un tabel denumit Studenți unde stocați StudentID, Nume, Curs, Grad etc. Trebuie să căutați frecvent coloana StudentID pentru informații despre anumiți studenți.

SELECT Name, Course, Grade

FROM Students

WHERE StudentID = 111025

Ar trebui să creați un index pe acea coloană, deoarece va accelera procesul de căutare. Puteți crea un index într-o coloană existentă cu următorul cod:

CREATE INDEX IndexStudentID

ON Students (StudentID)

Denumirea IndexStudentID poate fi orice, alege ceva care are sens pentru tine.

Cu toate acestea, crearea unui index va adăuga unele cheltuieli generale către baza dvs. de date. Există multe instrumente care pot ajuta, de exemplu, să folosesc SQLDbm , deoarece îmi convine cel mai bine.

0
adăugat
Nu uita nici despre Cardinalitate. SHOW INDEX FROM schema.table; și PLEASE TESTĂȚI ÎNTOTDEAUNA indiciile după ce le creați. De asemenea, încercați cardinalitatea (LOW to HIGH) și (HIGH to LOW) pentru indicii cu mai multe coloane. Acordarea atenției Cardinalității poate salva o tona de timp pe baza de date uriașă. - ro.wikipedia.org/wiki/Cardinality_(SQL_statements)
adăugat autor JayRizzo