2010-01-29 6 views
0

bonjour dunno si c'est le bon endroit pour poser cette question ,, im havin une thèse de recherche et im dans l'algoritm maintenant .. ma thèse est une application qui envoie des messages en utilisant dans lequel les contacts seront être question de la DB .. alors ma question est de savoir quel est l'algorithme pour la recherche des contacts de DB? recherche linéaire ??Algorithme pour rdbms, instruction select

+0

J'ai du mal à suivre votre question. Pouvez-vous utiliser l'orthographe standard, s'il vous plaît. Et pouvez-vous commencer des phrases avec des lettres majuscules? –

+0

Aussi, Smiley ne va pas attirer l'attention sur votre question. La clarté, l'orthographe correcte et les détails aident. Smiley est blessé. –

Répondre

1

Si le champ contacts est indexé dans la base de données, il utilisera la recherche B-Tree, recherche de hachage ou une recherche FULLTEXT (ce qui est une combinaison de certains algorithmes plus simples), en fonction du type de l'indice et la structure du requête de recherche.

Si les contacts ne sont pas indexés ou si une structure de requête de recherche ne permet pas d'utiliser un index, alors oui, elle utilisera la recherche linéaire.

+0

hmm .. index? la clé primaire ?? ... – user261761

0

L'index n'a pas nécessairement besoin d'être un index primaire, il peut s'agir d'un index sur n'importe quel champ. Comme l'a dit Quassnoi, vous pouvez spécifier la structure de données sous l'index. Mysql suppose que c'est B-tree par défaut. Donc, le temps de recherche du nœud sera O (logn) au cas où l'arbre est équilibré, quels sont les B-tree.

Si le champ de contact n'est pas indexé, le db balaie linéairement chaque enregistrement et trouve la ligne jusqu'à ce qu'elle en trouve un. C'est le pire des cas, prenez le temps O (n).