18-03-2017, 11:37 AM
(Modification du message : 18-03-2017, 11:41 AM par MeTaLLiQuE.)
Bonjour,
Une chose que j'utilise rarement en SQL, c'est l'utilisation des INDEX.
J'ai voulu l'utiliser sur une table pour améliorer les performances des requêtes.
J'ai une table où j'ai inséré 3 millions de lignes qui sont répartis entre plusieurs joueurs de façon équilibrée.
Sans l'utilisation des INDEX, je suis à environs 1,5 secondes pour effectuer un rowCount()
Avec l'utilisation des INDEX, je suis également à 1,5 secondes...
Aurais-je louper quelque chose ?
L'INDEX se porte sur deux colonnes id_user et categorie.
Je vous mets l'index et un bout de la table SQL, si ça peut vous aider...
l'INDEX
Table `population`
Merci,
Une chose que j'utilise rarement en SQL, c'est l'utilisation des INDEX.
J'ai voulu l'utiliser sur une table pour améliorer les performances des requêtes.
J'ai une table où j'ai inséré 3 millions de lignes qui sont répartis entre plusieurs joueurs de façon équilibrée.
Sans l'utilisation des INDEX, je suis à environs 1,5 secondes pour effectuer un rowCount()
Avec l'utilisation des INDEX, je suis également à 1,5 secondes...
Aurais-je louper quelque chose ?
L'INDEX se porte sur deux colonnes id_user et categorie.
Je vous mets l'index et un bout de la table SQL, si ça peut vous aider...
l'INDEX
CREATE INDEX `PK_user_categorie` ON `population` (`id_user`,`categorie`)
Table `population`
CREATE TABLE IF NOT EXISTS `population` (
`id` int unsigned AUTO_INCREMENT,
`id_user` int unsigned NOT NULL,
`id_soldat` int unsigned NOT NULL,
`categorie` varchar(20) NOT NULL,
`localisation` int unsigned NOT NULL DEFAULT '0',
PRIMARY KEY(`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
Merci,