Probleme MySQL & PHP

Probleme MySQL & PHP - PHP - Programmation

Marsh Posté le 16-06-2002 à 15:11:20    

La table concernée

CREATE TABLE messages (
  m_id mediumint(9) NOT NULL auto_increment,
  sujet mediumint(9) NOT NULL default '0',
  message mediumtext NOT NULL,
  nom tinytext NOT NULL,
  date date NOT NULL default '0000-00-00',
  heure time NOT NULL default '00:00:00',
  img tinytext NOT NULL,
  citation tinytext NOT NULL,
  PRIMARY KEY  (m_id)
) TYPE=MyISAM;


 
La requete concernée

$req02=mysql_query("SELECT * FROM messages WHERE sujet='$suj' ORDER BY date ASC, heure ASC LIMIT $lima,$limb" );
while($data=mysql_fetch_array($req02))
{
// instructions
}


 
Le probleme : je me tappe des temps de calcul ennorme
genre 280 ms :(
 
vous voyez pourquoi ?  
je ne comprends pas :(


---------------
Perdu ? Vous êtes ici : --> *
Reply

Marsh Posté le 16-06-2002 à 15:11:20   

Reply

Marsh Posté le 16-06-2002 à 16:00:54    

Si tu rajoutes un index sur la date, ca va pas mieux?
 
EDIT: et sur l'heure aussi of course  :D


Message édité par zion le 16-06-2002 à 16:01:17

---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 16-06-2002 à 16:23:45    

Ca cahnge presque rien genre 10 ms en moins
 
mais ca sert a quoi ces index ?


---------------
Perdu ? Vous êtes ici : --> *
Reply

Marsh Posté le 16-06-2002 à 16:39:00    

J-'-R a écrit a écrit :

Ca cahnge presque rien genre 10 ms en moins
 
mais ca sert a quoi ces index ?  




 
http://www.toutestfacile.com/phpin [...] &chap=sql5
 
Oups, je suis con, j'avais pas bien lu ta requête...
 
Ajoute aussi un index sur sujet
 
 :ange:


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 16-06-2002 à 16:40:54    

tjrs pas a mon avis ca ne viens pas de la


---------------
Perdu ? Vous êtes ici : --> *
Reply

Marsh Posté le 16-06-2002 à 17:09:43    

J-'-R a écrit a écrit :

Ca cahnge presque rien genre 10 ms en moins
 
mais ca sert a quoi ces index ?  




 
les index servent à accélérer les recherches sur les champs concernés. C'est surtout utile avec les clés primaires qui sont utilisées pour liés différentes tables.
 
Sinon, ya combien d'enregistrements dans ta base de données ?

Reply

Marsh Posté le 16-06-2002 à 17:15:15    

180 enregistrement dans la table concernée
 
mais bon ca ne doit pas faire cahnger les perfs
( il fait comment joce sinon ? )


---------------
Perdu ? Vous êtes ici : --> *
Reply

Marsh Posté le 16-06-2002 à 17:18:29    

J-'-R a écrit a écrit :

180 enregistrement dans la table concernée
 
mais bon ca ne doit pas faire cahnger les perfs
( il fait comment joce sinon ? )  




 
180 c'est vraiment pas grand chose...
Sinon le temps de calcul que tu nous as donnée, il correspond ) la génération complète de la page ou juste la requête ?

Reply

Marsh Posté le 16-06-2002 à 17:19:07    

pkoi tu met ton sujet entre guillemets alors que c un nombre ?

Reply

Marsh Posté le 16-06-2002 à 17:19:12    

Tu testes ta base online ou sur ton PC ? si c'est online c'est qui ton hebergeur ?

Reply

Marsh Posté le 16-06-2002 à 17:19:12   

Reply

Marsh Posté le 16-06-2002 à 17:19:34    

Tentacle a écrit a écrit :

 
 
180 c'est vraiment pas grand chose...
Sinon le temps de calcul que tu nous as donnée, il correspond ) la génération complète de la page ou juste la requête ?  




 
si une requete comme ça devrait prendre 20x moins de temps

Reply

Marsh Posté le 16-06-2002 à 17:27:12    

Stligar a écrit a écrit :

Tu testes ta base online ou sur ton PC ? si c'est online c'est qui ton hebergeur ?  




 
online et local ca reviens a peut pres au meme  :ouch:  
 
online sur multimania
 
sinon le temps c'est le temps de toute la page mais la requete dans le while seule prends 260 ms
 
( et ce n est pas normal )


Message édité par j-'-r le 16-06-2002 à 17:28:10

---------------
Perdu ? Vous êtes ici : --> *
Reply

Marsh Posté le 16-06-2002 à 23:19:06    

:bounce:


---------------
Perdu ? Vous êtes ici : --> *
Reply

Marsh Posté le 16-06-2002 à 23:42:19    

J-'-R a écrit a écrit :

La table concernée

CREATE TABLE messages (
  m_id mediumint(9) NOT NULL auto_increment,
  sujet mediumint(9) NOT NULL default '0',
  message mediumtext NOT NULL,
  nom tinytext NOT NULL,
  date date NOT NULL default '0000-00-00',
  heure time NOT NULL default '00:00:00',
  img tinytext NOT NULL,
  citation tinytext NOT NULL,
  PRIMARY KEY  (m_id)
) TYPE=MyISAM;


 
La requete concernée

$req02=mysql_query("SELECT * FROM messages WHERE sujet='$suj' ORDER BY date ASC, heure ASC LIMIT $lima,$limb" );
while($data=mysql_fetch_array($req02))
{
// instructions
}


 
Le probleme : je me tappe des temps de calcul ennorme
genre 280 ms :(
 
vous voyez pourquoi ?  
je ne comprends pas :(  




 
Es tu sur de n'avoir que cette requete dans ton script ??
280 ms c'est ton temps de generation d'une page ou seulement cette requete??
 
sinon je vois pas trop d'optimisations supplementaires ? ton s_id (s'il s'appelle comme ca) de ta table sujet est il un bien un champ mediumint(9) NOT NULL default '0' comme ta reference dans la table message ??
Sinon globalement essaye de ne pas mettre trop de champs de  type text (ou alors en table separée)
 
m_id en clé primaire c'est bon et créer seulement un index sur sujet.  
Sinon moi j'utilise mysql_fetch_row peut être que c'est plus rapide que mysql_fetch_array ?? :??:  
 
tu extrait combien de ligne d'un coup ?? c'est peut etre juste une couille quand tu choisis tes limitation $limia et $limb ??
 
avec plus de script on verrai mieux :D


---------------
Moe's Tavern, where the peanut bowl is freshened hourly
Reply

Marsh Posté le 16-06-2002 à 23:54:58    

Citation :

Es tu sur de n'avoir que cette requete dans ton script ??
280 ms c'est ton temps de generation d'une page ou seulement cette requete??


 
cette requete seulement = 260 ms / 208 = toute la page
 

Citation :

sinon je vois pas trop d'optimisations supplementaires ? ton s_id (s'il s'appelle comme ca) de ta table sujet est il un bien un champ mediumint(9) NOT NULL default '0' comme ta reference dans la table message ??


oui
 

Citation :

Sinon globalement essaye de ne pas mettre trop de champs de  type text (ou alors en table separée)


il n y en a que deux
 

Citation :

Sinon moi j'utilise mysql_fetch_row peut être que c'est plus rapide que mysql_fetch_array ?? :??:


je ne sais pas et je ne connais meme pas l autre
 

Citation :

avec plus de script on verrai mieux :D


le reste n est qu une suite de if et de echo qui servent a afficher


---------------
Perdu ? Vous êtes ici : --> *
Reply

Marsh Posté le 17-06-2002 à 11:30:39    

vous croyez que si je separe ma table en deux isolant les champs textes dans chaqu une d elle ca marchera mieux ?


---------------
Perdu ? Vous êtes ici : --> *
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed