Comme vous ne contrôlez pas l'algorithme sélectionné, il n'y a aucun moyen de le savoir directement. Cependant, sans index, un SELECT doit être O (n) (un balayage de table doit inspecter chaque enregistrement, ce qui signifie qu'il sera mis à l'échelle avec la taille de la table). Avec un index, un SELECT est probablement O (log (n)) (bien que cela dépende de l'algorithme utilisé pour l'indexation et des propriétés des données elles-mêmes si cela est vrai pour toute table réelle). Pour déterminer vos résultats pour n'importe quelle table ou requête, vous devez utiliser le profilage de données réelles pour être sûr. INSERT sans index doit être très rapide (proche de O (1)) alors que UPDATE doit d'abord trouver les enregistrements et sera donc plus lent (légèrement) que le SELECT qui vous y amène.
INSERT avec des index sera probablement à nouveau dans l'approximation de O (log (n^2)) lorsque l'arbre d'index doit être rééquilibré, plus proche de O (log (n)) sinon. Le même ralentissement se produira avec un UPDATE s'il affecte les lignes indexées, en plus des coûts SELECT.
Tous les paris sont désactivés lorsque vous parlez de JOIN dans le mix: vous devrez profiler et utiliser les outils d'estimation de requêtes de vos bases de données pour les lire. Notez également que si cette requête est critique pour les performances, vous devriez de temps en temps re profil car les algorithmes utilisés par votre optimiseur de requête changeront au fur et à mesure que la charge de données change. Autre chose à garder à l'esprit ... big-O ne vous parle pas des coûts fixes pour chaque transaction. Pour les petits tableaux, ils sont probablement plus élevés que les coûts de travail réels. A titre d'exemple: les coûts d'installation, de démontage et de communication d'une requête de réseau croisé pour une seule ligne seront certainement supérieurs à la recherche d'un enregistrement indexé dans une petite table. Pour cette raison, j'ai trouvé qu'être capable de regrouper un groupe de requêtes liées dans un lot peut avoir beaucoup plus d'impact sur les performances que toute optimisation que j'ai faite à la base de données proprement dite.
en double: http://stackoverflow.com/questions/727719/database-query-time-complexity –