Jump to content
lorik

Avis sur structure BDD pour optimiser perf ?

Rate this topic

Recommended Posts

Bonjour à tous,

Je ne suis pas très affuté sur les questions de perfs sous mysql, au niveau conception de bdd, donc je sollicite un avis. Voila le contexte (c'est un projet, j'ai pas les données, sinon je pourrais tester) :
- une table de 3 000 000 d'enregistrements (des adresses, avec un champ code postal). Pour chaque code postal de la table, j'ai 1000 codes postaux 'compatibles' (differents à chaque fois, 1000 compatibles pour CHAQUE code postal)
- Je veux trouver dans cette table tous les enregistrements 'compatibles' avec un code postal précis. en français, ça donne : "Je veux toutes les adresses dont le code postal est compatible avec le code postal 75 000".

 

A priori j'ai 3 choix :
- 1 - soit je mets un champ text 'compatible'  dans la table, je stocke par enregistrement les 1000 codes postaux compatibles, et je fait un select * where compatible like '%75000%.

- 2- soit j'intercale une table (6600 enregistrement) : Code_postal | liste_compatibilité, et une jointure. Et je like dessus comme le choix 1. Interet, la liste n'est stockée qu'une fois (gain d'espace), mais j'ai une jointure de plus, donc impact sur la perf de la requete ?

3 - je fais un bete select * where code_postal in ('mes 1000 codespostaux compatibles)

Sachant que la perf de la requete est fondamentale, sur un site à fort trafic 100 000 visites/jours. Si je peux avoir un avis éclairé, ça serait super :)

Merci d'avance.

 

PS : Je suis aussi très ouvert à d'autres solution, hein !

 

 

Share this post


Link to post
Share on other sites

La première solution me paraît beaucoup être la meilleure solution si tu souhaites mettre en priorité le temps d'execution.

Share this post


Link to post
Share on other sites

Merci de la réponse. Un like serait plus rapide qu'un IN, donc... Ok, je vais utiliser ça !

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...