1

Dans le cadre d'un projet avec architecture distribué serveur - clients, j'ai une quantité importante de données à stockées et j'hésite entre plusieurs méthodes de stockage.
Pour faire simple mes données sont tout simplement des URLs à stocker avec des liens entre chaque URL. Le stockage doit pendre en compte plusieurs niveaux (un site, les domaines du site, les urls du site,...). Seul le serveur stocke l'intégrité des données, les clients sont amenés assez souvent à effectuer des requêtes au serveur pour déterminer où non si une URL existe dans la base.

J'ai plusieurs problèmes qui se posent. Quel est le modèle de stockage à utiliser (base de données, table de hachage sur DD, indexe, autre ?).
Si j'utilise une base de données, est-il judicieux de créer une seule table qui soit capable d'accueillir toutes les URLs ou créer autant de table qu'il existe de site WEB ? Quelle est en gros la méthode la plus optimisée en terme de performance ? La contrainte importante et que connaitre l'existence d'une URL dans la base doit correspondre à une réponse quasi instantanée afin d'éviter des attentes de communication entre un client et le serveur.

Enfin, si un modèle de stockage basé sur une base de données genre MySQL est une très mauvaise idée, vers quoi me tourner et vers quelle bibliothèque C++ ?

Merci d'avance. J'avoue que je ne vois actuellement aucun modèle de stockage capable d'accueillir autant de données. sad
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

2

ORacLE tripo
avatar
納 豆パワー!
I becamed a natto!!!1!one!

3

Hmm, j'avais trouve qq papiers la dessus, stockage optimise d'URL, t'as chercher genre ds les articles de Google? C'est forcement un probleme qu'ils ont du aborde

Je vais voir si je retrouve ca...

4

si t'as un ratio écriture / lecture dans ta base qui est assez important, oublie directement mysql et tourne toi vers oracle
Ancien pseudo : lolo

5

PostgreSQL peut aussi être une alternative si il n'a pas 10k€ sous la main pour acheter une licence Oracle grin
Tekken Punch !!! beuh Love Hina déjà fini ... :'(
Japan-A-Radio
Vertyos@| les modos sont des enculés
Vertyos@| y'a des queues partout, un vrai bonheur'

6

Les perf de PostgreSQL sont mieux que celles de MySQL ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

7

ça dépend pour quelle utilisation, mais sur de grosses bases de données, oui
Tekken Punch !!! beuh Love Hina déjà fini ... :'(
Japan-A-Radio
Vertyos@| les modos sont des enculés
Vertyos@| y'a des queues partout, un vrai bonheur'

8

C'est plutôt ce que j'ai aussi lu à propos de MySQL et PostgreSQL.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

9

Ok merci pour votre aide.
J'vais faire des tests de performance avec MySQL et PostgreSQL. J'vais tester avec une table avec énormément d'enregistrement ou plusieurs tables avec des milliers d'enregistrements.
En tout cas les requêtes de lecture de données seront bien plus importantes que les requêtes d'écriture.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

10

Dans ton premier post tu parles de millions d'enregistrement, ça reste quand même très raisonnable comme quantité pour une base de données, tu as vraiment des problèmes de performances constatés ou tu demandes par précaution avant d'essayer ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

11

En fait avant de développer le projet, je préfère prendre certaines précautions. Disons que mon souci est plutôt lié aux temps de réponse qui doit être très rapide (inférieur à 100 ms). Cette contrainte doit être absolument respectée sinon les délais d'attente entre les clients et le serveur deviennent trop important.
Une idée pour optimiser les temps de réponse serait de passer par un cache mais comment optimiser sa suivant le moteur de base de données utilisé...
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

12

Je ne sais pas sur quoi se baseront tes recherches ni à quoi ressemblera ton code, mais à titre d'exemple yAronet contient largement plus d'un million de posts et pourtant comme tu peux le voir en bas de la page on reste loin des 100mo. Même en utilisant MySQL, j'ai impression que tu surestimes le problème ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

13

(d'autant que des posts, c'est plus volumineux que des urls et qu'on les récupères par groupe de 30)
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

14

Disons que le serveur est en réalité un ordinateur personnel où le processeur est loin d'être entièrement dédié à mon programme (tâche de fond).
Je vais faire des tests ce soir. J'espère que tu as raison. smile

vince > Oui les URLs sont la base du projet (qui sera développé en tant que démonstrateur d'ailleurs) mais les tables devront naturellement accueillir plus de données dans le futur.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

15

vince (./13) :
(d'autant que des posts, c'est plus volumineux que des urls et qu'on les récupères par groupe de 30)


Surtout si c'est ceux de very tongue
Je me souviens
Ad mari usque ad mare

GENERATION 23: The first time you see this, copy it into your sig on any forum and add 1 to the generation. Social experiment.

16

lolpaf
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

17

Je confirme aussi ce qui a été dit, PostgreSQL s'en sort mieux sur de grosses DB par rapport à MySQL.

Sinon pour référence il existe un excellent site (anglais) traitant des problèmes rencontrés lors du développement de grands sites webs (Youtube, Google...), et donc très axés technos/méthodes DB: http://highscalability.com
avatar
"If you see strict DRM and copy protection that threatens the preservation of history, fight it: copy the work, keep it safe, and eventually share it so it never disappears. [...] no one living 500 years from now will judge your infringing deeds harshly when they can load up an ancient program and see it for themselves."

Benj Edwards - Why History Needs Software Piracy

- - -
Achat ou échange: topic de mes recherches Meilleur smiley = #helico# Obligatory XKCD