Qu'est-ce qu'un index en SQL ? Pouvez-vous nous expliquer ou nous donner une référence pour comprendre clairement ?
Où dois-je utiliser un index ?
Un index est utilisé pour accélérer la recherche dans la base de données. MySQL dispose d'une bonne documentation sur le sujet (qui s'applique également aux autres serveurs SQL) : http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html
Un index peut être utilisé pour trouver efficacement toutes les lignes correspondant à une colonne de votre requête, puis parcourir uniquement ce sous-ensemble de la table pour trouver les correspondances exactes. Si vous n'avez pas d'index sur une colonne dans la clause WHERE
, le serveur SQL
doit parcourir toute la table et vérifier chaque ligne pour voir si elle correspond, ce qui peut être une opération lente sur les grandes tables.
L'index peut également être un index UNIQUE
, ce qui signifie que vous ne pouvez pas avoir de valeurs en double dans cette colonne, ou un PRIMARY KEY
qui, dans certains moteurs de stockage, définit où la valeur est stockée dans le fichier de la base de données.
Dans MySQL, vous pouvez utiliser EXPLAIN
devant votre instruction SELECT
pour voir si votre requête utilisera un index. C'est un bon début pour résoudre les problèmes de performance. Plus d'informations ici :
http://dev.mysql.com/doc/refman/5.0/en/explain.html
Un index est utilisé pour accélérer les performances des requêtes. Pour ce faire, il réduit le nombre de pages de données de la base de données qui doivent être visitées/examinées.
Dans SQL Server, un index classé détermine l'ordre physique des données dans une table. Il ne peut y avoir qu'un seul index clusterisé par table (l'index clusterisé EST la table). Tous les autres index d'une table sont dits non-classés.
Principes de base des index SQL Server][1]
[SQL Server Indexes : The Basics][2] (en anglais)
[Index SQL Server] [3]
[Principes de base des index] [4]
[Index (wiki)] [5]
[1] : http://www.simple-talk.com/sql/learn-sql-server/sql-server-index-basics/ [2] : http://www.sqlteam.com/article/sql-server-indexes-the-basics [3] : http://odetocode.com/articles/70.aspx [4] : http://msdn.microsoft.com/en-us/library/ms190457.aspx [5] : http://en.wikipedia.org/wiki/Index_(base de données)
Un [index][1] est utilisé pour plusieurs raisons différentes. La principale raison est d'accélérer les requêtes afin d'obtenir ou de trier les lignes plus rapidement. Une autre raison est de définir une clé primaire ou un index unique qui garantira qu'aucune autre colonne ne possède les mêmes valeurs.
[1] : http://en.wikipedia.org/wiki/Index_(base de données)