Bien paramétrer ses tables

10 messages · 6 vues

ZioupiX » ven. 13 juin 2008 00:49 #2095

Salut à tous,

Bon, étant donné que j'ai tout appris tout seul, j'ai de nombreuses lacunes en PHP et MySQL. Je vois souvent des scripts sur des sites, mais jamais des recommandations sur MySQL pour optimiser la vitesse de traitement, rationaliser les tables.

Généralement, les cours sur internet sont de très mauvaise qualité avec des milliers de fautes (je passe donc à autre chose).

Questions :
1. comment bien choisir les attributs des champs des tables ?
2. pourquoi me propose-t-on INDEX ?
3. pourquoi me dit-on que le champ "id" devrait être renommé en autre chose ?

Merci d'avance.
Membre
Messages : 214
Inscription : 25 mai 2008

Re: Bien paramétrer ses tables

necromage » ven. 13 juin 2008 00:54 #2098

Le SiteduZero.com est pas mal tu as regardés là ?
Membre
Messages : 209
Inscription : 1 juin 2008

Re: Bien paramétrer ses tables

tchoop » ven. 13 juin 2008 01:01 #2101

Oui, enfin le site du zero donne les bases, et ne fait pas vraiment dans l'optimisation.

après perso niveau optimisation je connais pas grand chose, juste que pour les url, titre, j'utilise du VARCHAR limité en caractère, par exemple, pour les pseudos pas plus de 15-20 caractères, pour les dates des BIGINT, et pour les gros textes, bah TEXT ^^
Membre
Messages : 45
Inscription : 25 mai 2008

Re: Bien paramétrer ses tables

morgan » ven. 13 juin 2008 01:15 #2102

Les index ça sert pour les arbres de recherche. Par contre je sais pas comment on les utilise. M'intéresse ce topic :d
Membre
Messages : 91
Inscription : 25 mai 2008

Re: Bien paramétrer ses tables

gamaniak » ven. 13 juin 2008 02:00 #2109

1) Choisis une table dans ton PhpmyAdmin, en dessous tu as lien "Propose table structure", à condition d'avoir quelques champs déjà remplis, il te conseille quel type de champ correspond le mieux.

2) Il faut mettre en INDEX les champs très utilisés pour la recherche, en grosse partie les champs inclus dans un WHERE.

3) Pour éviter les injections SQL ? Les piratages ? Aucune idée, mais ça doit pas être loin de là.
Membre
Messages : 68
Inscription : 28 mai 2008

Re: Bien paramétrer ses tables

Dino » ven. 13 juin 2008 09:55 #2126

ZioupiX a écrit:1. comment bien choisir les attributs des champs des tables ?
2. pourquoi me propose-t-on INDEX ?
3. pourquoi me dit-on que le champ "id" devrait être renommé en autre chose ?


Choisir le format des champs est très important, voir même crucial pour des performances optimales.

Quelques dino-consignes :
- Garder un maximum de champs numériques (Pour une adresse IP, utiliser un entier a 4 octets avec la fonction PHP ip2long plutot qu'une chaine de caractère)
- Réduire au maximum la taille des champs pour éviter de perdre inutilement de la place.
- Bien architecturer les tables pour minimiser les jointures et optimiser les requêtes complexes.
- Choisir correctement ses clé primaire, unique et index. Une clé primaire contient le ou les champs qui définissent la table. Les autres champs doivent être les données de la clé primaire.
- Placer un maximum de contrainte pour protéger sa table. Placer des clés uniques sur les champs qui en ont besoin. Utiliser les clés étrangères si le SGBD le permet, afin d'éviter les données orphelines lors de suppression notamment et permet de conserver l'intégrité de la BDD.

Comme l'a justement répondu Gamaniak, INDEX est a utiliser sur les champs fréquemment employés dans des recherches.

En ce qui concerne le champ "id", je ne vois pas en quoi un renommage change quelque chose.
Membre
Messages : 337
Inscription : 21 mai 2008

Re: Bien paramétrer ses tables

SayLoL » ven. 13 juin 2008 13:00 #2128

Dino, t'es un dieu de l'informatique à ce que je vois!
Membre
Messages : 89
Inscription : 20 juin 2008

Re: Bien paramétrer ses tables

Dino » ven. 13 juin 2008 13:18 #2131

SayLoL a écrit:Dino, t'es un dieu de l'informatique à ce que je vois!


Loin de là.
Membre
Messages : 337
Inscription : 21 mai 2008

Re: Bien paramétrer ses tables

annoncine » ven. 13 juin 2008 13:39 #2140

tchoop a écrit:... juste que pour les url, titre, j'utilise du VARCHAR limité en caractère, par exemple, pour les pseudos pas plus de 15-20 caractères, pour les dates des BIGINT, et pour les gros textes, bah TEXT ^^


Tchoop, pour les Dates, il me semble qu'il vaut mieux utiliser un type de champs 'DATE' ou 'DATETIME' c'est plus approprié qu'un BIGINT
Eh puis tu peux trier par date avec DATE ou DATETIME directement dans la requête
Membre
Messages : 32
Inscription : 28 mai 2008

Re: Bien paramétrer ses tables

ZioupiX » ven. 13 juin 2008 14:19 #8903

annoncine a écrit:
tchoop a écrit:... juste que pour les url, titre, j'utilise du VARCHAR limité en caractère, par exemple, pour les pseudos pas plus de 15-20 caractères, pour les dates des BIGINT, et pour les gros textes, bah TEXT ^^


Tchoop, pour les Dates, il me semble qu'il vaut mieux utiliser un type de champs 'DATE' ou 'DATETIME' c'est plus approprié qu'un BIGINT
Eh puis tu peux trier par date avec DATE ou DATETIME directement dans la requête


Ouais, DATETIME c'est mieux, quoi que Timestamps peut être pas mal aussi.

Merci en tout cas pour vos conseils, je suis allé rapidos sur le site du zéro, mais bon, j'ai rien appris parce que les cours ne sont pas assez approfondis.
Membre
Messages : 214
Inscription : 25 mai 2008