Choix d'un SGBD

Hello tout le monde.

Je me monte un petit serveur web sur mon PC et je me demandais si je pourrais pas mettre autre chose que mysql. Je sais bien qu’il en existe d’autres comme postgresql mais je n’ai pas trouvé d’élément pour choisir ?

Le seul SGBD que j’ai utilisé c’est Oracle à l’IUT.

Des conseils ? :slightly_smiling:

Mysql et postgresql sont des “petits” sql comparables. La différence est que postgre vise à développer des fonctionnalités avancées alors que mysql se polarise sur sa fonction de service pour les petites bdd pour le faire bien.
Entre les deux, il y a aussi le fait que postgresql n’est pas limité en nombre d’enregistrements contrairement à mysql, et que contrairement à mysql qui est plus rapide sur les petites bases, mais dont les performances se dégradent vite (linéairement) quand la base augmente en taille, postgresql devient plus rapide à partir d’une certaine taille de base et que ses performances se dégradent moins vite (logarithmiquement).

Tu mettrais un seuil à quelle taille de base?

Ben je sais pas… :laughing:
J’ai recherché, et je n’ai pas trouvé.
Si l’on prend ce type de benchmark qui considère que 25000 enregistrements est une grosse base, postgre est enfoncé à tous les coups:
sqlite.org/speed.html
mais si on prend ces benchmark là:
benchw.sourceforge.net/benchw_results_open3.html (attention prenez votre loupe)
c’est le contraire pour si j’ai bien compris une base de 10000 …
Quoi qu’il en soit, ce que je disais à propos de l’ordre de dégradation des performances est trouvable ailleurs, même si je ne sais pas ou se croisent les courbes.
En réel, pour une base essentiellement lue, un pôte qui vend de la greylist, sur une base de plusieurs millions d’IP, a vu les performances s’améliorer d’un facteur 10 aprés son passage de mysql à postgre (et pourtant à la base il est plutot mysql ). Mais il ne m’a pas précisé si c’etait avec des stored procs, quel type d’index il utilisait dans les deux cas, ni quelles contraintes relationnelles il avait.

Sinon, comme comparatif fonctionnel interressant, j’ai trouvé ça:
www-css.fnal.gov/dsg/external/fr … mysql.html

MisterFreez: au fait, je ne vois pas en quoi ça concerne la programmation !
Allez hop, direction pause café.

Je sais pas c’est de la création de site. :laughing:

Donc
Postgree :arrow_right: "grosses bases"
mysql :arrow_right: petites bases

Donc pour moi ce serait mysql et sqllite c’est bien pour le web (pour un site perso je vais pas faire un gros usage de bdd).

[quote=“MisterFreez”]Je sais pas c’est de la création de site. :laughing:

Donc
Postgree :arrow_right: "grosses bases"
mysql :arrow_right: petites bases

Donc pour moi ce serait mysql et sqllite c’est bien pour le web (pour un site perso je vais pas faire un gros usage de bdd).[/quote]
Vues les docs qu’a fourni Matt, ça a l’air plus compliqué que ça mais bon (moi je suis ravi de MySQL mais je n’ai qu’un faible recul).

[quote=“MisterFreez”]Je sais pas c’est de la création de site. :laughing:
(…)[/quote] Ben disons que de ce que j’ai compris c’est un endroit pour causer de code, pas de ce qui le compile ou le fait tourner.
Enfin les critères de choix pour une bdd c’est typiquement ce qui fait un pause café constructif (il n’y a pas que les combats de trolls, dans la vie).

C’est complètement faux les considérations de performance.

C’est juste que MySQL, par défaut, utilise des optimisations completement bidon.
Genre, par défaut, il ne sait pas gérer l’intégrité référentielle, il ne fsync pas les données sur disque, …

Perso je choisi sans aucune hésitation PostgreSQL dans tous les cas.
Facile d’administration, il ne segfault pas tout seul parceque, fallait executer 4 fois d’affilé un mysql_repair machin chouette (1 fois, ça suffit pas), il est réellement fiable, … Si il dit que les données sont écrites, elles sont écrites.

Si tu fais un COUNT(*), ta la quantité de lignes dans la table, pas une estimation merdique.

Perso le seul truc ou je trouve qu’il est moins sympa que mysql, c’est du coté de la réplication. Sous PostgreSQL c’est assez complexe et contraignant à mettre en place.

Ceci dit, je pense sincèrement que pour un petit site, une base genre sqllite suffit largement.

C’est ce que j’espérais lire.

Sinon, tu as un bon récapitulatif ici
http://articles.techrepublic.com.com/5100-22-1050671.html
ou encore si tu n’arrives pas à te décider là:
Une méthode pour choisir

[quote=“ed”]C’est complètement faux les considérations de performance.
(…)[/quote] Ah ben oui. Je vais dire à mon pôte que son accélèration sous postgre est imaginaire, puisque ed l’a dit. :wink:

[quote=“mattotop”][quote=“ed”]C’est complètement faux les considérations de performance.
(…)[/quote] Ah ben oui. Je vais dire à mon pôte que son accélèration sous postgre est imaginaire, puisque ed l’a dit. :wink:[/quote]

non, je parlais de postgres plus lent que mysql! :slightly_smiling:

Bah il me semble bien avoir lu une compet’ entre postgre et mysql ou le résultat (inretrouvable) était celui que j’ai dit (postgre plus rapide sur les grosses bases, mysql gagnant sur les petites). Mais bon, tu as raison, c’est un troll, on peut dire ce qu’on veut, ça dépend de la config. :laughing:

C’est vrai que sur des «petites bases» au sens de 5000 enregistrements, mysql a été plus rapide chez moi, mais le gain le plus net et de loin a été en soignant les tables et les requêtes. Est ce que Openoffice peut utiliser une base Postgresql? C’est souvent indispensable.

oh au pire s’il n’y a pas d’ouverture directe des bases, tu prends une passerelle odbc:

[quote]roc@roc:/usr/src/linux-source-2.6.24$ aptitude search postgre | grep odbc
p odbc-postgresql - ODBC driver for PostgreSQL
roc@roc:/usr/src/linux-source-2.6.24$ aptitude show odbc-postgresql
Paquet : odbc-postgresql
État: non installé
Version : 1:08.01.0200-2.1+b1
Priorité : optionnel
Section : libs
Responsable : Peter Eisentraut petere@debian.org
Taille décompressée : 905k
Dépend: libc6 (>= 2.5), libpq5, odbcinst1debian1 (>= 2.2.11-3)
Suggère: unixodbc-bin
Description : ODBC driver for PostgreSQL
This package provides a driver that allows ODBC-enabled applications to access PostgreSQL databases. ODBC is an abstraction layer that allows
applications written for that layer to access databases in an manner that is relatively independent of the particular database management system.
PostgreSQL is an open-source SQL database management system, which can be accessed using this driver.

You need to install this package if you want to use an application that provides database access through ODBC and you want that application to access a
PostgreSQL database. This package would need to be installed on the same machine as that client application; the PostgreSQL database server can be on a
different machine and does not need any additional software to accept ODBC clients.

If you want to write software that can access a database through the ODBC abstraction layer, you need to install the unixODBC driver manager development
package unixodbc-dev, and possibly additional packages for language bindings. This driver package is only used at run time.

Web site: odbc.postgresql.org/

Tags: devel::lang:sql, interface::daemon, network::server, role::program, works-with::db

[/quote]

Voila,

Sinon comme dit mat, c’est une question de config.

Et j’ajoute, la plupart du temps, les mecs comparent des bases avec une config “stock” c’est a dire sans aucun ajustement.

Sauf qu’une base de donnée ça se “tune” dans tous les cas…