Bonjour,

Dans le cadre du développement d'un moteur de recherche je recherche quelle type de structure existantes peuvent optimiser les requêtes sur les tables qui seront interroger.

Dans mon cas, il y aura environ 800 000 produits, pour chacun un code, une référence,un nom et une image.

Les requêtes doivent pouvoir se faire sur n'importe lequel de ces champs.

Solution bateaux, une seule table, tous les enregistrements dedans et je fais mes requêtes avec un %LIKE% de ma valeur sur le champs utilisé comme critère de recherche.

Quelque part je me dit que ca risque d'être violent, non ?

J'ai lu un article sur le partionnement : http://krierjon.developpez.com/mysql/partitionnement/

Il y a une partie qui fait référence au partitionnement vertical, permettant de séparer les champs des enregistrements les plus utilisés des ceux qui le sont moins. Finalement, ça revient à scinder une table en plusieurs et faire des jointures lors des requêtes. D'un certain coté ca me semble intéressant, car ca diminue d'autant la taille de la table et les jointures sont apparemment très bien gérer par mysql. Donc il y aurait peut etre un gain.

Alors avant de me lancer là dedans, j'aimerai avoir votre avis. Si jamais vous avez déjà travailler sur des applications types moteurs de recherche avec beaucoup d'enregistrements ( à mon sens 800 000 c'est beaucoup, je peux me tromper) et le fait que chaque champs peut etre un critères de recherche, mais pas plus d'un champs à la fois. Comment optimiser la structure de la tables ou des tables peut être ?

En vous remerciant