IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Optimisation BDD, choix annotation Doctrine2


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    ceo
    Inscrit en
    Août 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ceo

    Informations forums :
    Inscription : Août 2005
    Messages : 62
    Par défaut Optimisation BDD, choix annotation Doctrine2
    Bonjour,

    je me pose des questions quant à l'architecture du site que je suis en train de développer.

    C'est une sorte d'agenda, avec une BDD Event qui contient entre autre les champs latitude et longitude et date de fin de l'événement.
    Et je voudrais afficher sur la page d'accueil les événements proche de la ville de l'utilisateur.


    Jusqu'à maintenant je me disais que j'allais rechercher dans la BDD les événement proches (à une distance fixée de la latitude et de la longitude de l'utilisateur) et ensuite ressortir les événements dont la date n'est pas passée.
    Mais comme cette requête sera faite pour tous les utilisateurs sur la page d'accueil, ça risque de vraiment ralentir le site.


    Je me dis que le mieux serait donc d'avoir une BDD pour les Events_passés et une Events_a_venir ce qui devrait considérablement accélérer les choses(?).

    Mais mon problème est de savoir comment passer un événement de la BDD Events_passés à la BDD Events_a_venir.
    J'ai bien pensé à exécuter à intervalles régulier une requête qui compare les dates des événements à venir avec la date actuelle, mais ça ne me semble pas propre du tout (ça risque de ralentir considérablement le site pendant cette requête non?) et en plus ce ne sera pas précis si je ne fais pas cette requête assez régulièrement.

    Est-ce selon vous tout de même le meilleur moyen?
    Merci d'avance à qui prendra le temps de lire ce petit pavé! (et encore plus à celui qui y répondra )

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Je me dis que le mieux serait donc d'avoir une BDD pour les Events_passés et une Events_a_venir ce qui devrait considérablement accélérer les choses(?).
    Non !

    Une seule table , la date de l'événement servant à définir si il est passé ou non. Poru que la recherche soit rapide , il faut évidemment que la colonne de la date soit indexée.

    Dans tous les cas ce qui va prendre du temps c'est le calcul sur la position pas le tri sur passé/à venir.

    Un bon papier sur la recherche spatial avec mysql :
    http://fr.scribd.com/doc/2569355/Geo...rch-with-MySQL
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Profil pro
    ceo
    Inscrit en
    Août 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ceo

    Informations forums :
    Inscription : Août 2005
    Messages : 62
    Par défaut
    Merci de ta réponse!

    OK, donc concrètement on est d'accord qu'avec Symfony2, en utilisant doctrine j'aurai bien mon attribut date définit comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    class Event
    {
        /**
         * @Id @Column(type="date")
         * @GeneratedValue
         */
        private $date;
     
    ?>
    Et comment procède à ton avis un site qui a plusieurs années d'événements stockés dans sa BDD (et donc peut-être plus de 100k événements)? Ils vident leurs BDD une fois de temps en temps ou ça ne pose tjrs pas de gros problèmes de temps d'exécution?

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Pour la partie symfony/doctrine je ne peux pas te confirmer , je ne les utilise pas.

    Et comment procède à ton avis un site qui a plusieurs années d'événements stockés dans sa BDD (et donc peut-être plus de 100k événements)?
    100k événements (tout comme 500k d'ailleurs) c'est de la rigolade pour une base de données (bien conçue).
    Si les événements ne sont jamais utilisés après leur date , tu peux faire des routines pour les supprimer régulièrement. Garder des données qui ne sont pas et ne seront jamais utilisées , ça ne sert pas à grand chose.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Profil pro
    ceo
    Inscrit en
    Août 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ceo

    Informations forums :
    Inscription : Août 2005
    Messages : 62
    Par défaut
    Ok, merci pour tes réponses

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Choix champs pour optimisation BDD
    Par simnitch dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 29/03/2014, 12h56
  2. optimisation BDD avec accès .ldb
    Par zanou666 dans le forum Sécurité
    Réponses: 9
    Dernier message: 13/11/2007, 09h10
  3. Optimisation BDD Index etc..
    Par mediateur59 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 20/10/2006, 11h23
  4. [MySQL/XML] optimisation et choix de stockage
    Par Zeusviper dans le forum XQUERY/SGBD
    Réponses: 2
    Dernier message: 21/06/2006, 10h13
  5. optimiser BDD pr requete
    Par xopos dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 10/02/2005, 10h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo