2010-06-17 4 views
5

Selon votre expérience, quel est le meilleur langage de programmation Web utilisé pour gérer le tri et la comparaison de très grandes listes (c'est-à-dire des dizaines de milliers d'adresses e-mail)?Langage de programmation Web pour les très grandes listes?

Je suis plus familier avec PHP. Je pense que cela pourrait faire le travail, mais je ne suis pas sûr d'autres langues et s'il y a un prétendant meilleur.

Merci!

+1

Quelle est l'application que vous cherchez à élaborer, qui pourrait avoir une incidence sur la discussion. – Lazarus

+1

À quelle fréquence devez-vous trier cette liste? A quoi cela sert? Quel * autre * le langage doit-il faire? – jalf

+0

L'intention de l'application web est de gérer les listes de diffusion. Il a juste besoin de trier par ordre alphabétique. Ce ne sera pas un problème, je peux juste trier dans la requête MySQL. Maintenant que j'y pense, je suppose que tout peut être fait au niveau de la base de données. Par exemple, en comparant deux listes, je peux juste créer une vue dans la base de données ... – littleK

Répondre

15

Je stockerais les emails dans une base de données et utiliserais SQL pour effectuer des tris et des recherches. C'est ce que les bases de données ont été conçues pour, et ils auront des solutions intelligentes qui surpasseront tout ce que la plupart des gens pourraient écrire dans le code.

+3

En outre, si vous programmez une solution, la plupart des problèmes de performance se résumeront aux algorithmes que vous utilisez pour rechercher/trier, ce qui aura un impact beaucoup plus important sur les performances que la langue utilisée. –

+0

Cela a du sens. J'utiliserai la base de données pour effectuer la plupart des opérations. Merci! – littleK

1

Langue habituellement n'a pas d'importance TOO beaucoup. Choisissez celui avec lequel vous êtes le plus à l'aise.

Le produit final est façonné par le constructeur, pas les outils.

16

Est-il possible de faire le tri à l'intérieur d'une base de données? Ils sont conçus pour effectuer un tri et une comparaison dynamiques. Je vous suggère de passer à un modèle qui permet à la DB gérer ce genre d'activité.

Si vous ne pouvez vraiment pas utiliser une base de données pour une raison quelconque, vous devriez vous concentrer sur les algorithmes plutôt que sur les langues. Choisissez une langue basée sur d'autres critères (familiarité personnelle, soutient-elle vos autres tâches, a-t-elle une communauté de soutien active, etc.) et détermine le meilleur algorithme compte tenu des caprices de la langue. Par exemple, selon certains de la discussion dans https://stackoverflow.com/questions/309300/defend-php-convince-me-it-isnt-horrible, PHP a des performances de récursivité relativement pauvres.

Mais sérieusement, utilisez une base de données pour cela.

+0

Utilisera la base de données, merci! – littleK

2

Cela ne dépend pas du langage de programmation, cela dépend de la logique, disons qu'il s'agit d'index ou de schémas de tables et de mécanismes de mise en cache.

0

Votre plus rapide serait un cgi compilé.

+0

Upvoting this. Ecrire des algorithmes efficaces en C donnerait le meilleur résultat. Cependant, ce n'est pas vraiment un langage pour la programmation sur le web. Mais pour la recherche et le tri, c'est de loin le meilleur (en supposant des algorithmes appropriés). Cependant, l'utilisation d'une base de données avec n'importe quel autre langage de programmation Web réel serait beaucoup plus facile et résoudrait probablement le problème suffisamment. – Kibbee

1

Vous pouvez également utiliser un trie qui est une structure de données arborescente de préfixe - pour le tri en mémoire.

adresses e-mail ont le jeu de caractères restrictive (a-z, 0-9, _, . etc.), de sorte que le trieNode aurait seulement ces caractères. Ce topcoder tutorial sur trie est un bon point de départ si vous ne connaissez pas déjà trie.

Vous devez passer par toutes les chaînes pour construire le trie. Recherche/Comparaison prend O (l) heure où l est la longueur de la chaîne que vous comparez.

Le tri nécessite de parcourir tous les trieNodes de l'arbre trie à l'aide de l'heure DFS (depth first search) - O (| V | + | E |).

+0

Intéressant. Je vais jeter un coup d'oeil, merci! – littleK

+0

REgarding des adresses e-mail et des jeux de caractères, voir http://www.regular-expressions.info/email.html – RCIX

Questions connexes