it-swarm-fr.com

Où puis-je trouver des indications sur les stratégies d'index?

La plupart d'entre nous accepteront probablement que l'utilisation des indices de base de données est bonne. Trop d'index et de performances peuvent réellement être dégradés.

En règle générale, quels domaines doivent être indexés?
[.____] quels champs ne doivent pas être indexés?
[

22
SpecialAgent_W436

Tout simplement l'une des meilleures séries d'articles rédigés sur les indices de choisir et pourquoi serait de Gail Shaw. Vous pouvez trouver les articles en cliquant sur ICI

La question que vous demandez peut être répondue à 50 manières différentes. Il se résume vraiment tous aux données que vous avez et comment elle sera interrogée. Une règle générale est que vous devez toujours avoir un index en cluster sur chaque table pour éviter les tas. Les index en cluster doivent généralement être aussi petits que possible. Si la table a un index en cluster, tous les enregistrements d'index sur les pages de feuilles de l'index non clustered stockeront la valeur d'enregistrement de l'indice en cluster respectif pour les recherches sur les signets. Si une table est un tas, SQL créera un identifiant unique pour les reloisirs de signets. Je ne me souviens pas de la taille qu'il s'agit de 8 ou 16 octets. Cela pourrait finir par être un type de données beaucoup plus grand puis dire un int. Imaginez avoir 8 indices non clusters sur une table de tas.

7
TRAD

Vous devriez connaître votre utilisation et votre chargement de votre base de données et identifier les goulots d'étranglement en raison d'index manquants - ou de trop d'index. Ensuite, vous devez choisir l'index approprié - et cela nécessite une bonne connaissance des techniques d'indexation de la base de données spécifiques.

7
ldsandon

Je veux ajouter ici que différentes bases de données nécessitent des stratégies différentes. Comparons MySQL W/Innodb et PostgreSQL par exemple.

innodb

Les tables d'innoDB sont fondamentalement un indice B-Tree de la clé primaire étendue pour inclure les informations de ligne dans l'entrée d'index. Les analyses de commande physique ne sont pas prises en charge et toutes les analyses se produisent dans l'ordre logique. Cela signifie deux choses:

  1. Une analyse séquentielle dans Innodb génère beaucoup de aléatoire disques d'E/S, et

  2. L'indice principal principal doit être traversé, que l'on utilise un indice secondaire.

  3. Les recherches principales de la clé sont plus rapides dans ce modèle que dans toute autre approche.

Dans ce cas, il est très important d'indexer suffisamment de champs dans des tables multi-pages. La règle typique est indexe tout ce que vous voulez filtrer par.

PostgreSQL

PostgreSQL utilise des fichiers de tas, une table par fichier (certaines tables peuvent être de nombreux fichiers) où des tuples sont attribués à partir de l'espace libre de cet appartement. Les analyses de commande physique sont prises en charge. Pour une analyse de commande logique au travail, un index doit être ajouté.

Les touches principales de PostgreSQL sont fondamentalement un sous-ensemble d'index uniques où aucune valeur ne peut être nulle. Des contraintes uniques sont effectuées à l'aide d'index implicites et plusieurs autres types d'index sont pris en charge avec différentes opérations possibles dans l'index.

Ça signifie:

  1. Principales recherches sur la clé, en supposant un tableur raisonnablement grand frappant un fichier d'index et un fichier de table. Ceci est nettement plus lent que l'approche de MySQL où l'index doit être traversé uniquement et la ligne est contenue dans l'index.

  2. Les analyses d'ordre physique effectuent beaucoup mieux, réduisant ainsi l'E/S du disque aléatoire lorsque des nombres importants de lignes doivent être traités.

  3. Les analyses d'index secondaires fonctionnent mieux que MySQL, car un seul index doit être traversé pour se rendre à la partie physique de la table.

Dans ce modèle, les index sont souvent nécessaires mais le planificateur a plus de liberté pour utiliser un index et les implications de ne pas utiliser que l'on est souvent moins sévère. Les tables sont plus optimisées (plutôt que spécialisées dans les recherches de pky) et donc moins d'index sont nécessaires.

TL; DR

Connaître votre SGDBM.

5
Chris Travers

Du Guide des concepts Oracle 11.2:

Du 11.2 Guide de syntonisation des performances:

Du 11.2 Guide de l'administrateur:

4
Leigh Riffel

Même avec tous les liens ci-dessus, vous besoin Pour examiner ce que Kimberly Tripp a écrit en ce qui concerne les soins, l'alimentation et l'utilisation d'index.

Pour commencer, suivez ceci - link à la collection de Kimberly de ses poteaux de blog liés à l'index. Vous êtes capable d'explorer des sujets spécifiques à l'aide de Widgets "sur cette page" et "Catégories" sur le côté gauche de la fenêtre de votre navigateur.

Il y a beaucoup d'informations ici, mais ne soyez pas découragé par elle.

Kimberly à propos de la page est ici

2
Robert Miller