2011-08-19 4 views
0

J'ai besoin de données à partir de 3 tables différentes:Performance Mysql: 1 requête sur 3 tables ou 2 requêtes?

  1. table catergory

  2. Scoretable 1

  3. Scoretable 2

Ce qui est maintenant mieux pour la performance?

  1. Marque 3 requêtes SELECT seperated

  2. Faire 2 requêtes et connectez scoretable 1 et 2 et faire une requête de sélection normale pour les catégories

  3. Connectez les 3 requêtes en 1?

Numéro 2:

SELECT scoretable1.category, scoretable1.score, scoretable2.score 
FROM scoretable1, scoretable2 
WHERE scoretable1.consultant = scoretable2.consultant 
AND scoretable2.consultant = '14' 
AND scoretable1.category = scoretable2.category 

Merci beaucoup!

P.S. La table de catégorie est très petite afin que je puisse l'exporter aussi comme un fichier de cache comme tableau sérialisé? (Peut-être le meilleur moyen pour cette table)

+0

Pourquoi ne pas essayer les deux sens , et voir qui est le plus rapide? – aroth

Répondre

1

Ma conjecture serait qu'il est préférable de le faire dans une requête. Mais je ne suis pas absolument sûr. Peut-être que le query analyser peut vous aider ici.

0

le plus rapide serait une INNER JOIN de la table de catégorie pour les deux autres, essayez de faire 1000 sélectionner dans un programme et vérifier le temps qu'il faut avec toutes les différentes méthodes