begin process at 2012 02 14 08:56:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Besoin conseils pour optimiser des requetes lourdes !!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Besoin conseils pour optimiser des requetes lourdes !!

vendredi 18 janvier 2008 à 19:37:28 | Besoin conseils pour optimiser des requetes lourdes !!

g0ldstein

Bonjour à tous,

  Je désire développer un système de réservations par calendrier pour un site où les gens peuvent annoncer leurs maisons, villas à louer.

J'aimerais avoir l'avis de gens qui s'y connaissent bien en structure de base de données.

Le système doit pouvoir indiquer certains jours qui sont libres, et d'autres où c'est déjà loué.

J'ai donc une table comme celle-ci:

adId - ID de l'annonce  (index)
date - le jour correspondant
status - Loue, ou pas loue le jour de la date ci dessus

avec 365 rangées pour tous les jours de l'année suivant le jour d'aujourd'hui.

Je pensais peut-être utiliser des périodes de jours (debut / fin) à la place, mais évidemment ça ne peut pas marcher très bien, parce que dès que l'utilisateur va vouloir modifier le status de certains jours, ça va devenir compliqué et en plus inutile de faire ça comme ça.

Me voilà donc avec ce systeme d'enregistrement qui comporte 365 rangées de données par maison à louer.

Admettons que j'arrive avec 5 000 clients qui louent chacun une maison,
ça me donne 1 825 000 lignes de données, c'est énorme...

Sachant que lorsque quelqu'un visite la page de la maison à louer, je fais un SELECT du numero de l'annonce pour pouvoir montrer un calendrier des dates demandées pour voir si elles sont libres ou pas.

.. j'aimerais savoir si mon application s'en trouvera ralentie, et si oui, à quel point... et si vous avez une idée de comment faire ça à la place ne vous gênez pas pour me le dire,

merci !!
vendredi 18 janvier 2008 à 20:26:02 | Re : Besoin conseils pour optimiser des requetes lourdes !!

malalam

Administrateur CodeS-SourceS
Réponse acceptée !
Hello,

juste une remarque : pourquoi stockes-tu en base de données les jours ou ta maison est libre...? Si tu ne stockais que les jours d'occupation, et que dans ton application, tu remplisses les blancs, tu allègerais sérieusement ta base. Très sérieusement.
Maintenant 1 825 000 lignes, c'est très gérable si ta table est bien indexé. ce qui me fait bcp plus peur, c'est quand tu parles de 365 rangées : tu as une table avec 368 champs...?
Si oui, l'idée est mauvaise.
A minima, pour faire simple :
1 table d'annonces (id annonce, lieu, etc...texte annonce...id utilisateur tant qu'à faire)
1 table "calendrier" avec juste l'id de ton annonce, et une date (d'occupation, j'insiste...).
1 table utilisateur (id utilisateur, infos diverses utilisateur)

lundi 21 janvier 2008 à 12:12:44 | Re : Besoin conseils pour optimiser des requetes lourdes !!

codefalse

Administrateur CodeS-SourceS
Je dirai comme Malalam, tu met dans une table tes données des jours réservés, et pour l'affichage du calendrier, tu récupere les dates, les dates réservées, et tu les compares, et hop :)
mardi 22 janvier 2008 à 12:04:55 | Re : Besoin conseils pour optimiser des requetes lourdes !!

g0ldstein

Bonjour,
très bien merci pour l'idée des jours dont l'occupation n'est pas spécifiée, ça va certainement alléger le tout, je doute que les utilisateurs les remplissent tous. Peut-être même que certain ne géront pas du tout le calendrier.

Malalam, le truc c'est que j'utilise le composant AdsManager pour Joomla, je sais pas si tu connais. Donc il y a une table pour les annonces et pour plein d'autres trucs. Moi je fais un module pour que les user gèrent leur calendrier, et donc il n'y a en effet que très peu de champs, 3 (ceux dans mon post de depart).

Ça me rassure que tu dises que ça soit bien gérable. Je ne met qu'un index sur le adId (ID de l'annonce) pour l'instant, crois tu que je devrais en mettre un sur la date aussi? C'est vrai que les index ralentissent les UPDATE ? Que me conseilles-tu?

Merci infiniment pour vos réponses très constructives.
mardi 22 janvier 2008 à 19:53:31 | Re : Besoin conseils pour optimiser des requetes lourdes !!
mardi 22 janvier 2008 à 20:01:46 | Re : Besoin conseils pour optimiser des requetes lourdes !!

malalam

Administrateur CodeS-SourceS
Je ne connais que très mal Joomla et "up" ne sert à rien si ce n'est à spammer les gens qui se sont inscrits à ton post...j'avais déjà vu ton message.
Je ne suis pas convaincu qu'ujn index ralentisse un update. Mais bon, si tu l'as lu, c'est peut-être vrai : pose-toi la question...vas-tu faire plus d'update que de select...?
mercredi 23 janvier 2008 à 11:20:42 | Re : Besoin conseils pour optimiser des requetes lourdes !!

g0ldstein

Désolé, je ne pensais pas que ça envoyait un courriel à chaque nouveau message.
Merci pour ta réponse !


Cette discussion est classée dans : données, jour, maison, jours, louer


Répondre à ce message

Sujets en rapport avec ce message

Mise à jour [ par stelline ] Bonjour!Je recherche de l'aide pour une mise à jour en php.Je vous explique. J'ai une page "evenements" (sorte de calendrier) qui est en html où j'ai Mettre à jour données d'une table [ par yonico ] Petite question d'un debutant :je voudrais mettre à jour les données d'une table mais je n'y arrive pas voilà ce que j'ai mis :$reponse = mysql_query( PHP probleme de boucle avec dates [ par infosub ] Bonjour, je suis confronté à un petit problème de boucle pour ajouter plusieurs jour à une date.. le script ci-dessous calcule le nombre de jours entr Nombres de jours entre 2 dates! [ par jimmy69 ] Bonjour a tous,Voila j'ai un p'tit stress ....si quelqu'un pouvait m'aider!En fait j'enregistre mes donnees ds une table mysql , des donnees comme le mise à jour base de donnée [ par billy67000 ] Bonjour, lorsque j'inserre des données dans un base mysql et ensuite je click sur refersh (ou actualiser) de mon browser, les mêmes données sont à nou datetime J+30 = delete [ par Alpha911 ] Bonjourvoila j'ai in probleme de taille ...j'ai un datetime dans une base de données et je souhaite absolument concerver le datetime.j'aimerais que 60 Afficher les jours de la semaine... [ par stevethx27 ] Bonjour,je tente (en vain) d'afficher sur une ligne les jours de la semaine. J'ai utilisé un script trouvé sur le site que j'ai modifié et ça donne ma [php] fonction while [ par kikong ] Bonjour la communauté!  Voila, je code un calendrier en php/mysql, et j'ai un petit problème. Enfait, j'ai fais une boucle permettant de prendre toute mise à jour à distance [ par niceusef ] salut,je suis débutant dans les applications web et j'ai besoin d'aide SVP...j'ai une application à réaliser qui fait la mise à jour des sites web à d Mise à jour champ [ par flopad ] Bonjour, je rencontre un problème lors de la mise à jour d'un enregistrement dans ma bdd :j'ai un champ qui a une valeur X, je voudrais savoir comment


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,967 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales