{MySQL} Question sur la fonction INDEX
Résolu/Fermé
A voir également:
- {MySQL} Question sur la fonction INDEX
- Fonction si et - Guide
- Mysql community server - Télécharger - Bases de données
- Index telephonique france - Guide
- Fonction moyenne excel - Guide
- Excel renvoyer la valeur d'une cellule en fonction d'une autre - Forum Logiciels
5 réponses
dam75
Messages postés
1041
Date d'inscription
lundi 4 mai 2009
Statut
Webmaster
Dernière intervention
21 février 2023
67
8 juin 2009 à 18:52
8 juin 2009 à 18:52
Bonjour,
Les index servent à accélerer les rechercher et les tris ... donc si tu veux pouvoir faire une rechercher sur le NOM (WHERE category_name ....) , ou un tri (ORDER BY category_name) il FAUT l'indexer ...
Donc 2 index n'ont rien à voir l'un avec l'autre, ils sont complémentaires ...
Bon courage
Les index servent à accélerer les rechercher et les tris ... donc si tu veux pouvoir faire une rechercher sur le NOM (WHERE category_name ....) , ou un tri (ORDER BY category_name) il FAUT l'indexer ...
Donc 2 index n'ont rien à voir l'un avec l'autre, ils sont complémentaires ...
Bon courage
L'ajout d'INDEX est une question de performance.
L'ajout d'INDEX est pertinent sur :
- les champs utilisés pour les clés étrangères (ON ... = ...)
- les champs sur lesquels des tris sont très souvent utilisés (ORDER BY ...)
- les champs sur lesquels des filtres sont très souvent utilisés (WHERE ...)
Attention cependant : l'ajout d'INDEX peut également nuire aux performances, en particulier lors de l'insertion ou de la modification des données indexées, et d'autant plus s'il y a plusieurs INDEXes.
L'ajout d'INDEX est pertinent sur :
- les champs utilisés pour les clés étrangères (ON ... = ...)
- les champs sur lesquels des tris sont très souvent utilisés (ORDER BY ...)
- les champs sur lesquels des filtres sont très souvent utilisés (WHERE ...)
Attention cependant : l'ajout d'INDEX peut également nuire aux performances, en particulier lors de l'insertion ou de la modification des données indexées, et d'autant plus s'il y a plusieurs INDEXes.
Bonjour
Le nom n'est pas indexé plutôt que l'id, car l'id est une KEY et KEY est synonyme de INDEX.
Donc les deux sont indexés en fait
Le nom n'est pas indexé plutôt que l'id, car l'id est une KEY et KEY est synonyme de INDEX.
Donc les deux sont indexés en fait
Merci pour la réponse. Mais un doute persiste parce que j'ai voulu faire un exemple qui n'est pas adaptée à ma question. Je voulais plutôt demander, d'après les 2 tables ci-dessous, quel est l'intérêt d'indexer un nom (categorie_name) plutôt que le ID (categorie_id) ? (Dans l'ex du dessus en effet je comprends qu'il n'y a pas de réel utilité à marquer "INDEX (name)" en plus de" PRIMARY KEY (id)".)
Si je me réfère à ta réponse, je devrais donc dire que, dans ce cas, categorie_id et categorie_name sont indexés. Est-ce exacte ? Et si oui, est-ce utile d'indexer categorie_name en plus de categorie_id ?
create table categorie
(
categorie_id integer not null auto_increment,
categorie_name varchar(100) binary not null,
categorie_description varchar(250) binary,
primary key (categorie_id),
unique (categorie_id,categorie_name)
) ENGINE = InnoDB;
create table rubrique_test (
rubrique_test_id INT NOT NULL,
rubrique_test_name CHAR(30) NOT NULL,
rubrique_test_description VARCHAR(150)
PRIMARY KEY (rubrique_test_id),
unique (rubrique_test_id,rubrique_test_name),
INDEX (categorie_name)
FOREIGN KEY (categorie_id) REFERENCES categorie (categorie_name) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB;
Merci
Si je me réfère à ta réponse, je devrais donc dire que, dans ce cas, categorie_id et categorie_name sont indexés. Est-ce exacte ? Et si oui, est-ce utile d'indexer categorie_name en plus de categorie_id ?
create table categorie
(
categorie_id integer not null auto_increment,
categorie_name varchar(100) binary not null,
categorie_description varchar(250) binary,
primary key (categorie_id),
unique (categorie_id,categorie_name)
) ENGINE = InnoDB;
create table rubrique_test (
rubrique_test_id INT NOT NULL,
rubrique_test_name CHAR(30) NOT NULL,
rubrique_test_description VARCHAR(150)
PRIMARY KEY (rubrique_test_id),
unique (rubrique_test_id,rubrique_test_name),
INDEX (categorie_name)
FOREIGN KEY (categorie_id) REFERENCES categorie (categorie_name) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB;
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question