Formation Google AnalyticsSavez-vous bien utiliser les outils de mesure d'audience ?
Effectuez-vous un calcul de ROI (Retour sur investissement) pour savoir comment améliorer vos campagnes emarketing ?
Savez-vous utiliser les bons outils pour booster votre taux de transformation ?
La formation Web Analytics de Ranking Metrics, présentée par un expert reconnu officiellement par Google Analytics, vous apportera les réponses à toutes vos questions !
===> Informations et inscriptions.

Update / Select et Mysql

Aller à la page 1, 2, 3  Suivante
Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
finstreet
WRInaute accro
WRInaute accro

Inscrit le: 10 Juil 2005
Messages: 9485

URL permanente de ce messagePosté le : Jeu Fév 28, 2008 16:11    Sujet du message: Update / Select et Mysql

Bonjur à toutes et tous,

Un petit problème compliqué pour moi. Je vous explique.

J'ai une requete SELECT machinchose... elle s'affiche en 0,18. Ce SELECT est en fait une requête qui ne doit se calculer qu'une seule fois. Imaginez vous dans une file d'attente. Donc on ne la traite qu'une fois. Mais pdt ce laps de temps, 0,18, d'autres connectés ont pu lancer la meme requête... et donc je me retrouve avec deux personnes pour la même place dans la file d'attente. Génant. Surtout quand ils commencent à s'engueuler Smile

Pour l'instant, après le SELECT et le 0,18, j'applique un UPDATE sur la table pour éviter le pb du "après le 0,18"... en effet, ensuite ca fait tourner une tite moulinette... genre on va le placer à la bonne table, on lui apporte le menu, etc... donc mon pb se retrouve donc limiter à ces 0,18

J'ai réfléchi sur le UPDATE SELECT... mais le pb c'est que j'ai besoin de récupérer des infos du SELECT, donc il me faudrait plutot un SELECT UPDATE

Alors si vous avez une tite idée, ce serait bien venue Smile

Marchi
 
finstreet Visiter le site web du posteur
audit.referencement
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 16 Fév 2008
Messages: 121

URL permanente de ce messagePosté le : Jeu Fév 28, 2008 16:27    Sujet du message: Update / Select et Mysql

J'avoue que je n'ai pas tout compris, tu n'as pas la possibilité de faire une vue avant ton select pour éviter le problème ?
 
audit.referencement
finstreet
WRInaute accro
WRInaute accro

Inscrit le: 10 Juil 2005
Messages: 9485

URL permanente de ce messagePosté le : Jeu Fév 28, 2008 16:31    Sujet du message: Update / Select et Mysql

audit.referencement a écrit:
J'avoue que je n'ai pas tout compris, tu n'as pas la possibilité de faire une vue avant ton select pour éviter le problème ?


en fait j'ai avancé... il faut que je verrouille la vue pdt que je la fais via un FOR UPDATE... seul soucis... mon MySql a pas l'air d'aimer le FOR UPDATE
 
finstreet Visiter le site web du posteur
julienr
WRInaute passionné
WRInaute passionné

Inscrit le: 05 Aoû 2003
Messages: 679
Localisation: sous le soleil exactement

URL permanente de ce messagePosté le : Jeu Fév 28, 2008 16:34    Sujet du message: Update / Select et Mysql

j'ai bien peur qu'avec du mysql standard tu ne puisses rien faire, myIsam ne propose pas de verrou sur une ligne par contre si tu peux passer ta table en innodb tu as l'instruction select for update qui réalise exactement ce que tu veux faire c'est à dire verrouiller la donnée tant que l'update n'est pas passé...
+ d'infos ici
 
julienr Visiter le site web du posteur
ecocentric
WRInaute accro
WRInaute accro

Inscrit le: 10 Fév 2004
Messages: 3293
Localisation: Mons

URL permanente de ce messagePosté le : Jeu Fév 28, 2008 16:34    Sujet du message: Update / Select et Mysql

pas tout compris. les transactions peuvent pas t'aider ?
 
ecocentric Visiter le site web du posteur
finstreet
WRInaute accro
WRInaute accro

Inscrit le: 10 Juil 2005
Messages: 9485

URL permanente de ce messagePosté le : Jeu Fév 28, 2008 16:38    Sujet du message: Update / Select et Mysql

julienr a écrit:
j'ai bien peur qu'avec du mysql standard tu ne puisses rien faire, myIsam ne propose pas de verrou sur une ligne par contre si tu peux passer ta table en innodb tu as l'instruction select for update qui réalise exactement ce que tu veux faire c'est à dire verrouiller la donnée tant que l'update n'est pas passé...
+ d'infos ici


Arf c bien ce que j'étais en train de capter. Oui la table est en MyISAM mais je peux la modifier en innodb. Y'a pas un risque dans ce genre de modif ?

Citation:
pas tout compris. les transactions peuvent pas t'aider ?


Les trucs avec les lock ? je suis en train de regarder par là aussi
 
finstreet Visiter le site web du posteur
ecocentric
WRInaute accro
WRInaute accro

Inscrit le: 10 Fév 2004
Messages: 3293
Localisation: Mons

URL permanente de ce messagePosté le : Jeu Fév 28, 2008 16:40    Sujet du message: Update / Select et Mysql

"Y'a pas un risque dans ce genre de modif"

Jamais testé de conversion par contre les sauvegardes doivent être faites proprement, les cc de fichiers ça ne marche plus trop notamment en cas de changement de version.

Certaines requêtes peuvent ralentir, aussi (WHERE), vu qu'il y a plus de contrôle dans InnoDB.
 
ecocentric Visiter le site web du posteur
ecocentric
WRInaute accro
WRInaute accro

Inscrit le: 10 Fév 2004
Messages: 3293
Localisation: Mons

URL permanente de ce messagePosté le : Jeu Fév 28, 2008 16:44    Sujet du message: Update / Select et Mysql

finstreet a écrit:
Les trucs avec les lock ? je suis en train de regarder par là aussi


En général, j'ai testé ça via des frameworks, type Zend, l'usage est très simple, tu dois juste encadrer tes requêtes par deux instructions.

http://www.linuxfrench.net/article.php3?id_article=652

Par contre, pas sûr sûr que ça réponde à ton besoin...
 
ecocentric Visiter le site web du posteur
julienr
WRInaute passionné
WRInaute passionné

Inscrit le: 05 Aoû 2003
Messages: 679
Localisation: sous le soleil exactement

URL permanente de ce messagePosté le : Jeu Fév 28, 2008 16:44    Sujet du message: Update / Select et Mysql

non pas grand risque à passer en innodb sauf qu'il faut savoir :
- il n'y a pas d'index fulltext en innodb
- les count(*) sont très lent si tu n'as pas de clause where dans la requete ...
 
julienr Visiter le site web du posteur
ecocentric
WRInaute accro
WRInaute accro

Inscrit le: 10 Fév 2004
Messages: 3293
Localisation: Mons

URL permanente de ce messagePosté le : Jeu Fév 28, 2008 16:46    Sujet du message: Update / Select et Mysql

Pour les LOCK
http://dev.mysql.com/doc/refman/5.0/fr/lock-tables.html

EDIT-
Pour les transactions
http://dev.mysql.com/doc/refman/5.0/fr/ansi-diff-transactions.html

De ce que je comprends, si LOCK te convient, les transactions doivent te convenir aussi.

Par contre, je ne suis pas sûr que ça bloque la lecture...


Dernière édition par ecocentric le Jeu Fév 28, 2008 16:49; édité 1 fois
 
ecocentric Visiter le site web du posteur
ecocentric
WRInaute accro
WRInaute accro

Inscrit le: 10 Fév 2004
Messages: 3293
Localisation: Mons

URL permanente de ce messagePosté le : Jeu Fév 28, 2008 16:46    Sujet du message: Update / Select et Mysql

julienr a écrit:
il n'y a pas d'index fulltext en innodb

Bien vu, je confirme.
 
ecocentric Visiter le site web du posteur
finstreet
WRInaute accro
WRInaute accro

Inscrit le: 10 Juil 2005
Messages: 9485

URL permanente de ce messagePosté le : Jeu Fév 28, 2008 16:47    Sujet du message: Update / Select et Mysql

bon je suis passé en innodb sur deux tables... oui en plus dans le select y'a une jointure lol ... et sans succès

A chaque fois j'ai un "#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ..."

le FOR UPDATE il se met après le LIMIT ? après le ORDER ? après toutes les clauses WHERE ? j'ai tout testé lol
 
finstreet Visiter le site web du posteur
ecocentric
WRInaute accro
WRInaute accro

Inscrit le: 10 Fév 2004
Messages: 3293
Localisation: Mons

URL permanente de ce messagePosté le : Jeu Fév 28, 2008 16:53    Sujet du message: Update / Select et Mysql

Si c'est un système d'id de file d'attente, tu ne peux pas t'en sortir en faisant un id=id+1 dans ton update ou via un autoincrement et un lastinsertid ?

C'est peut-être très c** ce que je dis mais j'essaie de piger ton problème.
 
ecocentric Visiter le site web du posteur
finstreet
WRInaute accro
WRInaute accro

Inscrit le: 10 Juil 2005
Messages: 9485

URL permanente de ce messagePosté le : Jeu Fév 28, 2008 16:57    Sujet du message: Update / Select et Mysql

c pas con... c meme comme ca que je faisais avant... mais là le SELECT prend 0,18 ... et pdt ce laps de temps, d'autres personnes peuvent faire tourner le SELECT tant que j'ai pas fait le UPDATE
 
finstreet Visiter le site web du posteur
julienr
WRInaute passionné
WRInaute passionné

Inscrit le: 05 Aoû 2003
Messages: 679
Localisation: sous le soleil exactement

URL permanente de ce messagePosté le : Jeu Fév 28, 2008 17:00    Sujet du message: Update / Select et Mysql

select for update s'applique qu' à une seule table
si tu as une jointure c'est à dire que tu veux vérouiller une table et updater dans une autre
il te faudra gérer explicitement les verrous
 
julienr Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 3 - Aller à la page 1, 2, 3  Suivante
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

A lire dans l'actualité sur WRI :

En savoir plus : .

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort