MySQL rapatriement de milliers de résultats

ViPHP
ViPHP | 2291 Messages

04 août 2010, 01:00

Bonjour,

J'ai besoin de rapatrié plusieurs milliers (37.000) de résultats en une seule fois, j'aimerais avoir vos avis sur la meilleur méthode.

Voilà ma requete mais elle prend 10 secondes :(
$sqlrecupcom = " SELECT id,  lieu FROM communes ORDER BY dep ";
	                             
	     $result    = $dbh->prepare($sqlrecupcom);
	     $result->execute();
	     $resultat  = $result->fetchAll(PDO::FETCH_ASSOC);
D'avance merci
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

ViPHP
ViPHP | 5462 Messages

04 août 2010, 01:13

hello,
t'as pas besoin de requête préparer si tu rentre rien en valeur query suffira :wink:
c'est pour en faire quelle usage derrière ?

ViPHP
ViPHP | 2291 Messages

04 août 2010, 07:19

hello,
t'as pas besoin de requête préparer si tu rentre rien en valeur query suffira :wink:
c'est pour en faire quelle usage derrière ?
Pour un alimenter simple select . :wink:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

04 août 2010, 09:54

As-tu un index ? Sur quel(s) champ(s) ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

ViPHP
ViPHP | 2291 Messages

04 août 2010, 10:32

As-tu un index ? Sur quel(s) champ(s) ?
Oui sur lieu
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

04 août 2010, 10:37

Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

ViPHP
ViPHP | 5462 Messages

04 août 2010, 13:34

hello,
t'as pas besoin de requête préparer si tu rentre rien en valeur query suffira :wink:
c'est pour en faire quelle usage derrière ?
Pour un alimenter simple select . :wink:
pas compris

ViPHP
xTG
ViPHP | 7331 Messages

04 août 2010, 13:57

Je pense qu'il voulait dire qu'il récupère les données d'une base pour aller les stocker ailleurs.
Select => alimenter => ??? Nah ? :D

ViPHP
ViPHP | 2291 Messages

04 août 2010, 15:11

hello,
t'as pas besoin de requête préparer si tu rentre rien en valeur query suffira :wink:
c'est pour en faire quelle usage derrière ?
Pour un alimenter simple select . :wink:
pas compris
Pour alimenter un
<select size="1" name="Name">
<option value="value1">Item1</option>
</select>
Je sais que c'est pas bon mais j'ai pas trop le choix :)
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

ViPHP
xTG
ViPHP | 7331 Messages

04 août 2010, 15:15

Euh... Autant de valeurs dans un select ?
Tu espères franchement que l'utilisateur va réussir à trouver son bonheur dedans ? :/

Ton outil est-il pour une recherche d'un terme connu ou totalement inconnu ?
S'il est connu tu peux utiliser un système d'autocomplétition (vive l'arrachage de dent à la langue française :< ).
Ce sera moins bourrin pour l'utilisateur que de lui afficher une liste faisant 30 écrans de haut.

Cela dit je sais que je suis hors-sujet vu qu'on parle de la manière de récupérer les données. :oops:

ViPHP
ViPHP | 2291 Messages

04 août 2010, 15:25

Ce sera moins bourrin pour l'utilisateur que de lui afficher une liste faisant 30 écrans de haut.
Alors avant de sortir ce genre de truc il serait bon de connaitre la mise en page ou de savoir a quoi cela va servir.
De plus comme tu le dit, tu est hors sujet, je ne demande pas un cours de mise en page ou d'ergonomie mais simplement ci il y a un moyen de rapatrié autant de données rapidement

Merci 8-)
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

ViPHP
ViPHP | 5462 Messages

04 août 2010, 17:05

ducoup je dirais pas de fetchall mais un while + fetch suffira , ca permet de pas garder ca en mémoire pour php, tu peux essayé un SQL_BUFFER_RESULT dans ta requête mais je sais pas si ca va joué beaucoup, sinon tu pourrais essayer de l'alimenter en ajax, et te servir d'apc ou mettre la requête en cache :wink:

ViPHP
ViPHP | 2291 Messages

04 août 2010, 17:08

Merci, oui je pense le faire en ajax finalement :)
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

ViPHP
xTG
ViPHP | 7331 Messages

04 août 2010, 17:33

Ce sera moins bourrin pour l'utilisateur que de lui afficher une liste faisant 30 écrans de haut.
Alors avant de sortir ce genre de truc il serait bon de connaitre la mise en page ou de savoir a quoi cela va servir.
De plus comme tu le dit, tu est hors sujet, je ne demande pas un cours de mise en page ou d'ergonomie mais simplement ci il y a un moyen de rapatrié autant de données rapidement

Merci 8-)
Désolé de t'avoir donné mon avis. :)
Je n'interviendrai plus sur ton topic.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

04 août 2010, 17:55

ouais. C'était ... direct comme réponse.
Ceci dit, presque autant que le message de base.

Je dirais donc 1-1 balle au centre, et tout le monde est content ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer