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

Langage SQL Discussion :

Requête dans une base de données énorme


Sujet :

Langage SQL

  1. #1
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Par défaut Requête dans une base de données énorme
    Bonjour à tous,

    Je compte créer un moteur de recherche dans une base de données de 10 à 20 millions de lignes. Chaque ligne contiendrait 200 caractères environ (texte). Sachant que ce moteur serait public, il devrait être capable de traiter plus d'une recherche simultanément.

    Dans un autre message, j'avais parlé de charger la base en mémoire, dans un tableau C, avec fastcgi, ce qui me permettrait de parcourir les données très rapidement, mais aurait l'inconvénient d'être très gourmand en mémoire :
    http://www.developpez.net/forums/sho...d.php?t=161920

    A votre avis, est-il possible de faire des requêtes select (sur des chaînes textuelles) qui retourneraient un résultat en moins de 3 secondes, si la base de données dépasse 10 millions de lignes ? Ou bien dois-je plutôt faire le choix de charger la base en mémoire et de rechercher dans un tableau C pour plus de performance ?

    Quel configuration matérielle me recommandez-vous pour les 2 solutions ?

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 995
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 995
    Billets dans le blog
    6
    Par défaut
    Un bon SGBDR ira toujours plus vite grâce à ses mécanismes de cache que votre petit bout de code... Les moteurs SQL comme ceux d'Oracle ou SQL Server ont fait l'objet de centaines d'années homme en mise au point...
    Aurez-vous ce temps là pour écrire votre programme en C ?

    D'autre part si votre recherche consiste à trouver un mot à l'intérieur d'une phrase, il faut concevoir votre base pour que la recehrche textuelle soit possible. Certains SGBDR possedent de telle extensions de manière native (par exemple MS SQL Server).

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Par défaut requête select
    dans le cas où je ferais une requête select, avec un index, toute la recherche reposerait sur mySQL.

    Dans ce cas, il n'y aurait pas grande différence de performances entre utiliser un programme perl et un programme C, puisque l'essentiel de la performance repose sur la base de données. Qu'en pensez-vous ? Et quelle langage me recommandez-vous pour programmer le moteur ?

  4. #4
    Membre Expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Par défaut
    MySQL semble votre choix, il possède aussi un outil de recherche textuelle intégrée. Perl, je ne connais pas sa connectivité avec MySQL. Mais c'est toujours très rapide. C pourquoi pas, mais le texte en C ... c'est long. PHP, plus lent que Perl, se connecte très bien à MySQL.
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/06/2010, 18h31
  2. [XSLT] Requête dans une base de données
    Par nicoboud2 dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 05/10/2009, 09h34
  3. Requête d'insertion dans une base de données
    Par Kalion dans le forum VB.NET
    Réponses: 5
    Dernier message: 25/02/2009, 13h45
  4. [MySQL] Requête mysql qui permet de chercher dans une base de données complète.
    Par your_joker dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/07/2008, 10h28
  5. [MySQL] Enregistrement d'une requête SQL dans une base de données MySQL
    Par glsn dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/07/2008, 13h06

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