[Linux] moteur de recherche
daniels
daniels@::1
Mer 14 Nov 14:44:12 CET 2007
Jonathan ROTH a écrit :
> daniels a écrit :
>> Bonjour,
>>
>>
>> Je réaliser un moteur de recherche sur une base de données
>> d'entreprises de 6 000 000 d'entrées 9 tables.
>>
>> J'ai crée des index fultext pour 6 tables, lors d'une recherche sur 1
>> mot j'ai un résultat de recherche d'environ 0,11 secondes par contre
>> si je passe à 2 mots le temps de recherche passent à plus de 30.0
>> secondes un temps nom acceptable pour une recherche.
>>
>> Enseigne,adresse,cp,ville,activité,nom
>>
>>
>> Avez vous une solution, même si je doit changer de system.
>
> 1. MySQL (je suppose) réplique toute la base de données en mémoire
> pour chaque client connecté, à 100 octets par entrée, ta base fait
> 600Mo, vérifier que la mémoire vive du système est suffisante.
>
> 2. Les jonctions de tables sont lourdes, surtout sur des grosses BdD,
> et encore plus si c'est mal fait...
>
> 3. Lorsqu'on fait une sélection, il faut prendre l'habitude d'ordonner
> les champs, en premier ceux qui donneront le moins de résultats.
>
> 4. Pour rechercher 2 mots, tu peux soit utiliser le SGBD (SELECT WHERE
> a = b AND b=d), ou soit chercher 1 mot, puis chercher 1 mot dans les
> résultats. La deuxieme solution est plus lourde et moins propre, mais
> sur des bases de données énormes celà peut être une alternative
> acceptable.
>
Re,
Oui Mysql, la base fait environ 600mo + l'index fulltext on arrive à
12151Mo
Plus d'informations sur la liste de diffusion linux