Optimisation mysql
Smoking bird
Messages postés
911
Statut
Membre
-
Smoking bird Messages postés 911 Statut Membre -
Smoking bird Messages postés 911 Statut Membre -
Bonjour,
Je m'initie à un mysql un peu plus avancé ces derniers temps, et je tatônne encore pas mal, malgré mes nombreuses sources.
Dans le cadre d'un projet, j'ai créé une table de messagerie privée contenant 11 champs, de types et de taille variable. J'enregistrai les destinataires d'un message dans le même champ, ce qui pose de nombreux problèmes. J'ai donc essayé de les résoudre et me suis penché sur les jointures, les clefs composites, et la 'forme normale' (modèle pour DB).
Je me retrouve donc maintenant avec 3 tables:
(grosso modo, j'ai fait les clefs composites après).
J'utilise donc les jointures sql pour retrouver mes enregistrements.
Le soucis est le suivant: je cherche à optimiser mes requêtes, et donc à minimiser le nombres de champs fouillés par mysql (mysql->explain), mais systématiquement mes requêtes balayent au moins tous les enregistrements de la notebox.
Ma question est donc: est-ce que mon modèle est convenablement conçu? Comment pourrais je l'améliorer?
En vous remerciant,
Smoke
Je m'initie à un mysql un peu plus avancé ces derniers temps, et je tatônne encore pas mal, malgré mes nombreuses sources.
Dans le cadre d'un projet, j'ai créé une table de messagerie privée contenant 11 champs, de types et de taille variable. J'enregistrai les destinataires d'un message dans le même champ, ce qui pose de nombreux problèmes. J'ai donc essayé de les résoudre et me suis penché sur les jointures, les clefs composites, et la 'forme normale' (modèle pour DB).
Je me retrouve donc maintenant avec 3 tables:
CREATE TABLE `smokingf_aMMdTest`.`notebox_notes` ( `ref` CHAR( 10 ) NOT NULL , `titre` TINYTEXT NOT NULL , `texte` TEXT NOT NULL , `date` CHAR( 16 ) NOT NULL , PRIMARY KEY ( `ref` ) ) ENGINE = MYISAM CREATE TABLE `smokingf_aMMdTest`.`own` ( `ref` CHAR( 10 ) NOT NULL , `tag` CHAR( 10 ) NOT NULL , `stat` ENUM( '0','1','2' ) NOT NULL , PRIMARY KEY ( `ref` ) ) ENGINE = MYISAM CREATE TABLE `smokingf_aMMdTest`.`notebox_chat` ( `chatTag` CHAR( 10 ) NOT NULL , `ref` CHAR( 10 ) NOT NULL , PRIMARY KEY ( `chatTag` ) ) ENGINE = MYISAM
(grosso modo, j'ai fait les clefs composites après).
J'utilise donc les jointures sql pour retrouver mes enregistrements.
Le soucis est le suivant: je cherche à optimiser mes requêtes, et donc à minimiser le nombres de champs fouillés par mysql (mysql->explain), mais systématiquement mes requêtes balayent au moins tous les enregistrements de la notebox.
Ma question est donc: est-ce que mon modèle est convenablement conçu? Comment pourrais je l'améliorer?
En vous remerciant,
Smoke
A voir également:
- Optimisation mysql
- Optimisation pc - Accueil - Utilitaires
- Optimisation découpe panneau gratuit - Télécharger - Outils professionnels
- Mysql community download - Télécharger - Bases de données
- Mysql error 2002 ✓ - Forum Linux / Unix
- Optimisation windows 10 - Guide