optimisation BDD Mysql


Patrice A.
WRInaute passionné
WRInaute passionné
 
Messages: 2415
Inscription: 11 Fév 2005

Message le Dim Aoû 28, 2005 10:59

Si tu fais correctement tes insertions, tu peux rajouter des champs en fin de liste indéfiniment, et les requêtes fonctionnent toujours.

C'est donc inutile.

comparef
WRInaute impliqué
WRInaute impliqué
 
Messages: 505
Inscription: 5 Avr 2005

Message le Dim Aoû 28, 2005 11:29

En fait j'utilise ce type de requete :

Code: Tout sélectionner
   $requete=mysql_db_query($sql_bdd,"insert into TABLE values ('valeur1','valeur2','valeur3','valeur4','valeur5','valeur6','valeur7')",$db_link) or die(mysql_error());


donc si apres coup je rajoute un champs ca bug.


Patrice A.
WRInaute passionné
WRInaute passionné
 
Messages: 2415
Inscription: 11 Fév 2005

Message le Dim Aoû 28, 2005 11:31

rajoute le nom des champs dans lesquels tu insères, c'est plus propre et ça marchera même si tu changes l'ordre des champs ou si tu en rajoutes.

Pour connaître la "bonne syntaxe", fais une insertion avec phpMyadmin et récupère la requête SQL affichée ;)

comparef
WRInaute impliqué
WRInaute impliqué
 
Messages: 505
Inscription: 5 Avr 2005

Message le Dim Aoû 28, 2005 11:57

Merci,

oui c'est vrai que l'ecriture dont tu parle est mieux,
j'utilise celle que j'ai mis plus haut plus par habitude qu'autre chose (habitude quand tu nous tien....)

Je vai utiliser la tienne a l'avenir, ca evitera des champs inutiles dans mes tables...

Vell
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 285
Inscription: 5 Aoû 2005

Message le Dim Aoû 28, 2005 14:56

Et c'est très pratique pour les utilisations des valeurs par défaut, plutôt que de donner la valeur (si elle est égale à la valeur par défaut).
C'est plus rapide au niveau temps d'insertion


doic
WRInaute passionné
WRInaute passionné
 
Messages: 1147
Inscription: 7 Nov 2003

Message le Dim Aoû 28, 2005 16:24

Ouep...
Petite question: PhpMyAdmin me suggère un peu trop souvent d'utiliser des types 'enum', même lorsque je peux avoir une centaine de valeurs...
Pour l'instant, je préfère mettre des int(2), pour ne pas m'embêter, mais est-ce qu'en théorie un enum('0','1','2',...,'98','99') va être plus rapide à gérer qu'un int(2)?

Vell
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 285
Inscription: 5 Aoû 2005

Message le Dim Aoû 28, 2005 17:19

Là je sais pas, par contre au niveau place ce sera certainement meilleur.
Qui dit moins de place, dit aussi (toujours en théorie) plus rapide à exécuter...

Donc à voir, faut tester ;)

comparef
WRInaute impliqué
WRInaute impliqué
 
Messages: 505
Inscription: 5 Avr 2005

Message le Dim Aoû 28, 2005 18:12

je me demandais aussi,
est il preferable de répartir toutes les tables dans plusieurs bases de données (mon hebergeur m'en autorise 5 je croi).
par exemple mettre toutes les tables concernant le forum dans une certaine base, toutes les tables concernant le corp du site dans une autre base, etc...
et a partir de combien de table (ou combien de Mo) est il vraiment necessaire de recourire a plusieurs bases de données ?

Vell
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 285
Inscription: 5 Aoû 2005

Message le Lun Aoû 29, 2005 0:23

1 - Comme le précise la documentation, le plus long est d'avoir le premier bit de la ligne, donc il vaut mieux avoir une "grosse" table plutôt que plusieurs petites.
Note : comme la doc le précise encore, il faut séparer si on utilise souvent qu'une seule partie (ou plusieurs, mais différemment) de ces données.

2 - A partir de la remarque précédente, on peut alléger le nombre de tables dans une bdd.

3 - Ca peut être une bonne idée, j'y songe également à cause des perf.

4 - A partir de 5 ou 6 go tu peux passer sur une autre bdd histoire d'être tranquille, sinon ça devrait passer sans soucis quand même.

optimisation BDD Mysql

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités