Dans mon cas : SQL ou FTP ?

Dans mon cas : SQL ou FTP ? - PHP - Programmation

Marsh Posté le 17-05-2012 à 01:02:14    

Salut chers internautes, je vous présente mon problème :
 
-Le but de mon sous-programme est de produire la liste des codes postaux les plus proches d'un code postal donné, avec possibilité d'élargissement du domaine de recherche.
-Pour cela, j'ai prix la liste de touts les codes postaux, j'ai obtenu la latitude et longitude de chaque entité, j'ai calculé pour les 6188 codes postaux leur distance aux autres. Et j'ai mis le tout dans des fichiers bien propres.
-J'ai donc 6188 fichiers dans 97 dossiers (leur département), ce qui me fait moins de 100 fichiers par dossier.
-Si un utilisateur me fait une requête donnée, je suis en mesure d'y répondre par quelques expressions régulières dans un fichier texte de 30ko (correspondant à son code postal).
 
Mes questions sont les suivantes:
-Mon système est-il optimal ? (j'ai tout pré-calculé, ça me semble idéal, non ?)
Devrais-je plutôt indexer mes 6188 codes postaux dans une base SQL pour récupérer les 30ko de texte ? (est-ce plus rapide que l'accès coté serveur ?)
-Est-il, selon vous, possible d'optimiser encore ce système ?
-Est-ce que les 100ko de mémoire que me prend une requête représente une quantité "acceptable" de mémoire ?
 
Je vous laisse tester mon sous-système à l'adresse suivante.
 
L'URL : http://youtroc.com/r/Four+pizza/54580-B1.php (naturellement, vous pouvez modifier le code postal dans l'adresse pour tester avec le vôtre)
 
Merci de votre lecture, Mike.


Message édité par mmike57 le 17-05-2012 à 01:07:09
Reply

Marsh Posté le 17-05-2012 à 01:02:14   

Reply

Marsh Posté le 17-05-2012 à 21:20:06    

personne n'a d'avis ?

Reply

Marsh Posté le 17-05-2012 à 21:31:19    

C'est le genre de chose qui irait bien dans une base, certes. Mais si tu n'as pas de problème de performance actuellement, pourquoi changer.
Fais en sorte que les fonctions qui accèdent aux données "cachent" bien cette méthode, tu pourras toujours les ré-écrire ensuite pour accéder à une base si tu change la méthode de stockage de tes données.


---------------
Doucement le matin, pas trop vite le soir.
Reply

Marsh Posté le 19-05-2012 à 10:02:15    

Faut voir par rapport au trafic que doit gérer l'outil qui utilise ton sous-programme.
 
Perso, j'ai codé des % de corrélations entre des documents. Ben j'ai tout mis dans une BD (environ 12 millions d'enregistrements pour 5000 docs).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 29-05-2012 à 17:01:15    

-La méthode que tu utilise est loin d'être optimale. Cet article devrait t’intéresser : http://en.wikipedia.org/wiki/Kd_tree
 
-Libre à toi de conserver ton système si la charge de ton site n'est pas très importante, mais la mise en pratique d'un algo robuste est intéressante :)

Reply

Marsh Posté le 29-05-2012 à 18:03:05    

ziinus, ton post est pour moi ou pour le pb de mmike57?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 29-05-2012 à 20:29:17    

Bonjour,
Moi je mettrai tout dans une base de données SQL. C'est plus adapté.


---------------
La vitesse de la lumière étant supérieure à la vitesse du son, bien des gens paraissent brillants jusqu'au moment où ils ouvrent la bouche.
Reply

Marsh Posté le 30-05-2012 à 10:02:32    

+1 pour la BD. En plus, on peut laisser le choix au SGBD la façon dont il va stocker l'index.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed