Demande de conseil très grosse base de donnée

Demande de conseil très grosse base de donnée - Divers - Programmation

Marsh Posté le 16-10-2002 à 20:23:58    

Voilà, je dois réaliser une application serveur de type agenda.
 
Le seul petit problème, c'est que cette agenda devra pouvoir contenir environ 500 000 personnes, tout en restant rapide.
 
Mon souci est de savoir si une base de donnée de type mysql peut contenir autant d'information, ou je dois utiliser une base de type oracle.
 
A j'oubliais que je construis l'interface en jbuilder de borland, enfin je pense, je ne suis pas trop sure de mon choix.
 
Si vous avez des commentaires allez y.


---------------
Les touches de l'avenir
Reply

Marsh Posté le 16-10-2002 à 20:23:58   

Reply

Marsh Posté le 16-10-2002 à 21:07:32    

Pour toute BD, la limite physique est toujours en dessous de la limite "logique" (=applicative).
 
Tjs pour la limite physique, tu n'es limitée que par les perfs du hardware (capa HD, capa Lan, etc...).
 
Au delà, la problématique rejoint les difficultés qu'on peut trouver sur les GROS systèmes, mais pour te donner un conseil avisé, il faudrait en dire + sur les softs qui attaqueront la BD:
 

  • concurrence d'accès ?
  • nb d'utilisateurs simultanés?
  • quantité de données qui vont transiter entre le client et le serveur à chaque accès ?
  • continuité de service ?
  • taux de mises à jour ?

etc...
 
500000 entrées de 30 octets partagées par 2 postes n'a pas le même niveau de difficulté que 500000 entrées de 4 Ko et 10.000 utilisateurs en concurrence avec un taux de MAJ moyen de 10 ou 20 % et tout ça en 24/24....

Reply

Marsh Posté le 16-10-2002 à 21:44:16    

:bounce: PostgreSQL :bounce:  
ou si t'as les moyens: Oracle :jap:


---------------
༼ つ ◕_◕ ༽つ
Reply

Marsh Posté le 16-10-2002 à 21:46:46    

les infos de 500 000 personnes c'est pas si énorme : ce forum comporte près de 10 000 000 de posts, et tourne sous MySQL :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 16-10-2002 à 22:11:23    

Je suis d'accord avec antp.
 
Même si j'aime pas MySQL pour différentes raisons (notamment car il est beaucoup trop limité au niveau du support SQL contrairement à Oracle et MSSQL Server que j'utilise courrament), il est parfait pour ce genre d'application.
 
MySQL, malgré ses limitations importantes est ce qu'il y a de plus rapide sur le marché (c'est d'ailleurs en grande partie parcequ'il est limité qu'il est aussi rapide)
 
Pour info : 500 000 * 4 Ko (ce qui est énorme pour une enrtée d'agenda) représente moins de 2 Go, ce qui est une base conséquente, mais loin d'être énorme...
 
Et pour un agenda, en donnant large :
 
USER_ID : INTEGER(4)
USER_NAME : VARCHAR(32)
USER_LASTNAME : VARCHAR(32)
USER_NICKNAME : VARCHAR(32)
USER_EMAIL : VARCHAR(127)
USER_HOMEPAGE : VARCHAR(127)
USER_ADDRESS1 : VARCHAR(80)
USER_ADDRESS2 : VARCHAR(80)
USER_ADDRESS3 : VARCHAR(80)
USER_ZIPCODE : VARCHAR(8)
USER_CITY : VARCHAR(80)
USER_PHONE : VARCHAR(20)
USER_MOBILE : VARCHAR(20)
USER_FAX : VARCHAR(20)
USER_OFFICE : VARCHAR(20)
Ensuite je commence à sècher...
On va dire que tu es capable d'en mettre le double...
Alors :
 
(4 + 32 + 32 + 32 + 127 + 127 + 80 + 80 + 80 + 8 + 80 + 20 + 20 + 2 + 20) * 2 = 1 524 octets par ligne.
 
Avec des varchars, et sâchant que la plupart des champs seront remplis à moins de la moitiée, ça donne 762 octets par ligne.
 
On est d'accord ?
 
762 * 500 000 = 363 Mo, et là maintenant c'est une toute petite base ridicule.
 
Donc après étude rapide de volumétrie, je peux te dire que la question se pose pas. Tu ne fais aucun calcul dedans on est d'accord ? Bon ben voilà, 2 ms pour récupérer une ligne en comptant une chiée d'accès concurrents ;)

Reply

Marsh Posté le 16-10-2002 à 22:18:10    

MagicBuzz a écrit a écrit :

 
Même si j'aime pas MySQL pour différentes raisons (notamment car il est beaucoup trop limité au niveau du support SQL contrairement à Oracle et MSSQL Server que j'utilise courrament), il est parfait pour ce genre d'application.




Si tu te soucier un poil des licences, tu saurais que PostgreSQL vaut largement MSSQLserver au nivo perf (pas d'info par rapport a oracle) pour un prix defiant toute concurence..
En plus, avec postgree sql, tu economise au nivo de l'OS!
Alors pour avoir des perfs au mons aussi bonnes (voir meilleures) pourquoi payer plus ;)

Reply

Marsh Posté le 16-10-2002 à 22:27:36    

meilleures, faut le dire vite, il faut aussi voir dans quelles situations.
 
pour un site ASP, y'a pas photo, MSSQL Server est ce qui va le mieu. et mon boulot c'est de faire des sites en ASP :D

Reply

Marsh Posté le 17-10-2002 à 00:11:50    


en ce qui concerne mysql, fait donc un test avec le projet opensource horde :
 
http://horde.org
 
tu installe la couche horde que tu configure en MySQL (support aussi ProgresSQL je pense, a voir)
puis les morceaux que tu veux,
par ex IMP (ce webmail est utilisé par free, on parle pas d'une petite charge la)
ou Turba qui est le composant carnet d'adresse ...
c'est d'ailleurs aussi un tres bon morceau, import / export CVS  :love:  
 
et la tu vas pouvoir faire tes tests de charge ...
 
 
 :hello:  
 

Reply

Marsh Posté le 17-10-2002 à 00:15:29    

bossamiral2 a écrit a écrit :

Voilà, je dois réaliser une application serveur de type agenda.




 
au fait avec horde + turba, ton apli est deja prete  :D , en plus c'est opensource donc tu as le code, en plus si le projet est tres actif (cf mailing list archive), en plus si tu fais des hack interessants ils seront integres
 
cf les CVS pour la derniere version
 
 :hello:  
 
PS c'est tout du PHP

Reply

Marsh Posté le 17-10-2002 à 09:49:55    

essaie aussi TUTOS
 
www.tutos.org
 
y'a tout: agenda partagé, gestion des clients, personnel, gestion de projets ....
 
Et c'est en PHP et gratuit bien sur  ;)


Message édité par THE REAL SMILEY le 17-10-2002 à 09:50:29
Reply

Marsh Posté le 17-10-2002 à 09:49:55   

Reply

Marsh Posté le 17-10-2002 à 10:03:28    

MagicBuzz a écrit a écrit :

meilleures, faut le dire vite, il faut aussi voir dans quelles situations.
 
pour un site ASP, y'a pas photo, MSSQL Server est ce qui va le mieu. et mon boulot c'est de faire des sites en ASP :D




Et pour un site en PHP ?


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
Reply

Marsh Posté le 17-10-2002 à 10:09:45    

MagicBuzz a écrit a écrit :

Je suis d'accord avec antp.
 
Même si j'aime pas MySQL pour différentes raisons (notamment car il est beaucoup trop limité au niveau du support SQL contrairement à Oracle et MSSQL Server que j'utilise courrament), il est parfait pour ce genre d'application.
 
MySQL, malgré ses limitations importantes est ce qu'il y a de plus rapide sur le marché (c'est d'ailleurs en grande partie parcequ'il est limité qu'il est aussi rapide)
 
Pour info : 500 000 * 4 Ko (ce qui est énorme pour une enrtée d'agenda) représente moins de 2 Go, ce qui est une base conséquente, mais loin d'être énorme...
 
Et pour un agenda, en donnant large :
 
USER_ID : INTEGER(4)
USER_NAME : VARCHAR(32)
USER_LASTNAME : VARCHAR(32)
USER_NICKNAME : VARCHAR(32)
USER_EMAIL : VARCHAR(127)
USER_HOMEPAGE : VARCHAR(127)
USER_ADDRESS1 : VARCHAR(80)
USER_ADDRESS2 : VARCHAR(80)
USER_ADDRESS3 : VARCHAR(80)
USER_ZIPCODE : VARCHAR(8)
USER_CITY : VARCHAR(80)
USER_PHONE : VARCHAR(20)
USER_MOBILE : VARCHAR(20)
USER_FAX : VARCHAR(20)
USER_OFFICE : VARCHAR(20)
Ensuite je commence à sècher...
On va dire que tu es capable d'en mettre le double...
Alors :
 
(4 + 32 + 32 + 32 + 127 + 127 + 80 + 80 + 80 + 8 + 80 + 20 + 20 + 2 + 20) * 2 = 1 524 octets par ligne.
 
Avec des varchars, et sâchant que la plupart des champs seront remplis à moins de la moitiée, ça donne 762 octets par ligne.
 
On est d'accord ?
 
762 * 500 000 = 363 Mo, et là maintenant c'est une toute petite base ridicule.
 
Donc après étude rapide de volumétrie, je peux te dire que la question se pose pas. Tu ne fais aucun calcul dedans on est d'accord ? Bon ben voilà, 2 ms pour récupérer une ligne en comptant une chiée d'accès concurrents ;)




S'il est si rapide, c'est pas tant parce qu'il est limité ... mais plutot par certains choix qu'ont fait ses "géniteurs" ... notamment celui de travailler par défaut sur des tables SANS support de transactions (même si le choix existe, il suffit juste de changer le type de la table avant création), choses qui accélère énormément les lectures et écritures ... mais tout ceci a un prix ... la sécurité ... Maintenant, c'est un choix à faire en fct d'un certains nombre de paramètres ...


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
Reply

Marsh Posté le 17-10-2002 à 10:12:10    

bossamiral2 a écrit a écrit :

Le seul petit problème, c'est que cette agenda devra pouvoir contenir environ 500 000 personnes, tout en restant rapide.
 
Mon souci est de savoir si une base de donnée de type mysql peut contenir autant d'information, ou je dois utiliser une base de type oracle.
 
A j'oubliais que je construis l'interface en jbuilder de borland, enfin je pense, je ne suis pas trop sure de mon choix.
 
Si vous avez des commentaires allez y.




 
probablement déjà dit mais j'ai la flemme. 500 000 enregistrements c'est rien du tout. La base de ce forum est une base mysql et contient plus que 500 000 messages ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 17-10-2002 à 13:42:10    

D'accord avec Zzozo.....
 
Note à ceux qui disent "c'est mon métier" :
 
On commence par poser le pb avant de commencer à le résoudre.
 
Ce qui se conçoie bien s'énonce clairement.... l'aspect technique vient après la conception de la solution.

Reply

Marsh Posté le 17-10-2002 à 19:48:32    

Merci les gars vous m'avez été dans grand secours.
 
Pour répondre en deux mots aux différentes questions posées :
 
Le nombre d'utilisateur ne sera pas plus que 20. Ce qui est pas des plus problématiques.
 
c'est une application intranet, donc je ne n'ai pas de problème de bande passante ( toute la boîte est en 100 mb et les serveurs en 1 gb).
 
Je pense prendre une base de données de type postgreSQL, car c'est gratuit.
 
Pour la programmation, j'hesite encore un max entre du java, php ou autre.


---------------
Les touches de l'avenir
Reply

Marsh Posté le 17-10-2002 à 20:26:25    

bossamiral2 a écrit a écrit :

Pour la programmation, j'hesite encore un max entre du java, php ou autre.
 




 
si tu fais des tests avec horde/turba je veux bien que tu me tienne au courant  :)  (rappel c'est du php + mysql tout opensource ...)

Reply

Marsh Posté le 18-10-2002 à 16:59:41    

izz a écrit a écrit :

 
 
si tu fais des tests avec horde/turba je veux bien que tu me tienne au courant  :)  (rappel c'est du php + mysql tout opensource ...)




 
je ne vais pas pouvoir, car mon système tourne sous win2k serveur

Reply

Marsh Posté le 18-10-2002 à 17:04:04    

bossamiral2 a écrit a écrit :

 
 
je ne vais pas pouvoir, car mon système tourne sous win2k serveur




 
ha, je savais pas que c'était incompatible ... moi je fais tourner MySQl, Apache avec PHP, Horde et Turba en local sur mon 98se ...

Reply

Marsh Posté le 18-10-2002 à 17:07:07    

izz a écrit a écrit :

 
 
ha, je savais pas que c'était incompatible ... moi je fais tourner MySQl, Apache avec PHP, Horde et Turba en local sur mon 98se ...




 
tu as trouvé des sources horde qui fonctionnent sous windows.
 
oups, j'ai pas du faire attention en allent sur leur site.
 
Je n'ai vue que les packages pour linux

Reply

Marsh Posté le 18-10-2002 à 19:35:14    

bossamiral2 a écrit a écrit :

 
 
tu as trouvé des sources horde qui fonctionnent sous windows.
 
oups, j'ai pas du faire attention en allent sur leur site.
 
Je n'ai vue que les packages pour linux




 
horde c'est du php ...
 
apache tourne sous windows
php est parsé par apache
=> horde tourne sous windows ...
 
mais bien sur si tu veux faire de la qualite (stabilite securite) un bon nux est un regal  :)
 
PS easyphp est pas un environement de probuction !
sinon horde se place tres facilement sur un serveur web ... a voir si tu as deja un hebergement ...
sachant que chez ovh la place des bases de donnees est pas prise en compte pour 25 euros PAR AN tu peux foutre horde et turba  :D


Message édité par izz le 18-10-2002 à 19:59:14
Reply

Sujets relatifs:

Leave a Replay

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