Je veux ma BDD !

Statut
N'est pas ouverte pour d'autres réponses.
1er
OP
SkYlEsS

SkYlEsS

Elite
Ah génial, merci beaucoup :)
 
1er
OP
SkYlEsS

SkYlEsS

Elite
mysql_connect('serveur_mysql', 'utilisateur_mysql', 'mot_de_passe_mysql');
$base = 'test';
$table = mysql_list_tables($base);
//on prépare la requête
$sql = "OPTIMIZE TABLE ";
//on recherche toutes les données des tables
$req = mysql_query('SHOW TABLE STATUS');
while($data = mysql_fetch_assoc($req))
{
//on regarde seulement les tables qui affichent des pertes
if($data['Data_free'] > 0)
{
//et on l'inclut si elle comporte des pertes
$sql .= '`'.$data['Name'].'`, ';
}
}
//on enlève le ', ' de trop
$sql = substr($sql, 0, (strlen($sql)-2));
//et on optimise
mysql_query($sql);
mysql_close();
A quoi sert la ligne mise en rouge ? Elle n'est même pas reprise plus loin ... :?
 

FoX SpeEd

Touriste
SkYlEsS a dit:
mysql_connect('serveur_mysql', 'utilisateur_mysql', 'mot_de_passe_mysql');
$base = 'test';
$table = mysql_list_tables($base);
//on prépare la requête
$sql = "OPTIMIZE TABLE ";
//on recherche toutes les données des tables
$req = mysql_query('SHOW TABLE STATUS');
while($data = mysql_fetch_assoc($req))
{
//on regarde seulement les tables qui affichent des pertes
if($data['Data_free'] > 0)
{
//et on l'inclut si elle comporte des pertes
$sql .= '`'.$data['Name'].'`, ';
}
}
//on enlève le ', ' de trop
$sql = substr($sql, 0, (strlen($sql)-2));
//et on optimise
mysql_query($sql);
mysql_close();
A quoi sert la ligne mise en rouge ? Elle n'est même pas reprise plus loin ... :?
a faire la liste de toute tes tables présente dans ta base de donnée
 

guslinux

Gamerz'ien
[ cvm a dit:
]Utilise les jointures plutot que les "where": http://sql.developpez.com/sqlaz/jointures/
Pas mal le tuto, mais on a l'air de dire qu'il n'y a pas de différence niveau système entre les jointures "a l'ancienne" et les jointures avec "JOIN". La grande avancée est une lecture plus claire et une simplicité dans la construction de la requete....
 

Calvin80

Respect is key
[ cvm a dit:
]Utilise les jointures plutot que les "where": http://sql.developpez.com/sqlaz/jointures/
hello!
interessant, mais peux tu expliquer en quoi c'est + performant (ou - gournamnd) ?
Vu que les deux sont bassées sur l'algebre relationnel (les projections dans ce cas ci), j'ai du mal à voir où peut être l'optimisation..
merci !
 

Calvin80

Respect is key
SkYlEsS a dit:
Je vais rajouter des
Code:
mysql_close()
sur chacune des pages ... :)
A verifier dans ton php ini, mais si t'es connection ne sont pas persistante..
ca ne changera rien au problème...
Chez moi, le mysql_close est appelé automatiquement en fin de script php.
ça evite de fermer et rouvrir à chaque fois une connection...
 

Xou

I ♥ rien
[ cvm a dit:
]Utilise les jointures plutot que les "where": http://sql.developpez.com/sqlaz/jointures/
Tout dépend de comment est faite la BD, de comment tu vas l'utiliser, et faut voir si ça a réellement une utilité de séparer la BD en plusieurs tables, surtout si c'est pour 2 champs, tant que ce ne sont pas des données cycliques

Etc ... etc ... etc ...

On va pas faire un cours de BD :p

Calvin80 a dit:
A verifier dans ton php ini, mais si t'es connection ne sont pas persistante..
ca ne changera rien au problème...
Chez moi, le mysql_close est appelé automatiquement en fin de script php.
ça evite de fermer et rouvrir à chaque fois une connection...
Il n'aura pas la possibilité de vérifier dans son php.ini, étant donné que c'est un hébergeur mutualisé chez OVH ;)
 

zoheir

cvm.mangaleet()
Calvin80 a dit:
[ cvm a dit:
]Utilise les jointures plutot que les "where": http://sql.developpez.com/sqlaz/jointures/
hello!
interessant, mais peux tu expliquer en quoi c'est + performant (ou - gournamnd) ?
Vu que les deux sont bassées sur l'algebre relationnel (les projections dans ce cas ci), j'ai du mal à voir où peut être l'optimisation..
merci !
en fait qd tu fais une jointure avec inner join par exemple tu etablis un filtre qui s'execute avant la jointure.
Tandis qu'avec le where tu executes la condition après avoir rapatrie les données et tu risques d'avoir des données dont tu n'as pas besoin.
Evidemment sur des tables avec peu de données, la différence est minime.
 

Calvin80

Respect is key
Xyo _ a dit:
Calvin80 a dit:
"]A verifier dans ton php ini, mais si t'es connection ne sont pas persistante..
ca ne changera rien au problème...
Chez moi, le mysql_close est appelé automatiquement en fin de script php.
ça evite de fermer et rouvrir à chaque fois une connection...
Il n'aura pas la possibilité de vérifier dans son php.ini, étant donné que c'est un hébergeur mutualisé chez OVH ;)
ben si... tu regardes si ta connection es encore ovuerte apres la fermmeture de ton script..
 

Calvin80

Respect is key
[ cvm a dit:
]
Calvin80 a dit:
[ cvm a dit:
]Utilise les jointures plutot que les "where": http://sql.developpez.com/sqlaz/jointures/
hello!
interessant, mais peux tu expliquer en quoi c'est + performant (ou - gournamnd) ?
Vu que les deux sont bassées sur l'algebre relationnel (les projections dans ce cas ci), j'ai du mal à voir où peut être l'optimisation..
merci !
en fait qd tu fais une jointure avec inner join par exemple tu etablis un filtre qui s'execute avant la jointure.
Tandis qu'avec le where tu executes la condition après avoir rapatrie les données et tu risques d'avoir des données dont tu n'as pas besoin.
Evidemment sur des tables avec peu de données, la différence est minime.
ha ok !! pas mal ça ! merci (tres interessante, je vais investifuer ;)
 

Xou

I ♥ rien
Calvin80 a dit:
ben si... tu regardes si ta connection es encore ovuerte apres la fermmeture de ton script..
Ce qui n'a rien à voir avec ce fichier ;)
 

Calvin80

Respect is key
Xyo _ a dit:
Calvin80 a dit:
ben si... tu regardes si ta connection es encore ovuerte apres la fermmeture de ton script..
Ce qui n'a rien à voir avec ce fichier ;)
oui.. mais je voulais dire que ce paramètre est dans son php.ini (qu'il ne controle pas, comme tu l'as bien dit ;)
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut