Bonjour,
Je me pose des questions concernant l'usage de MySQL comme SGBDR supportant une application de gestion du recrutement, de plus en plus ses limitations se font sentir.
La base est relativement légère, les tables principales tournent autour de 30K enregistrements mais nous avons une table qui frise avec le demi million de lignes.
Nous avons beaucoup de SELECT mais pas mal d'INSERT et d'UDPATEs également. Dans ce cadre MySQL m'a toujours semblé le plus adapté.
Les limitations auxquelles je suis confronté sont les suivantes :
- Absence de contraintes CHECK
- Impossibilité pour InnoDB de gérer les index fulltext
Je commence à me demander si je ne vais pas switcher pour
- pgSQL
- MS SQL
- Oracle
mais pour moi leurs inconvénients sont respectivement
- performance
- Obligation d'installer un serveur windows
- Prix
Est-ce que quelqu'un pourrait m'aiguiller vers un comparatif pas trop biaisé ou me donner des conseils ?
Merci !
# performance ?
Posté par briaeros007 . Évalué à 5.
De toute façon, pour postgresql, rien ne t'empêche de monter une plateforme de test pour le tester.
Et pour oracle, idem (avec les versions gratuites).
# Euh, postgreSQL
Posté par Gyro Gearllose . Évalué à 3.
Tu peux mettre tout un tas de contraintes, et pas seulement des check, mais aussi des clefs étrangères par exemple.
Le mieux, ce serait que tu fasses quelques tests sur une machine à part, pour voir si ça te convient vraiment avant de switcher définitivement de toutes façons.
Juste pour te donner un retour positif, j'utilise postgresql depuis de nombreuses années maintenant, et je n'ai jamais eu le moindre problème avec. Et pourtant, je lui en demande, puisque j'ai quelques dizaines de bases de données, et ces bases sont faites de façon à être autonomes (comprendre par là qu'elles regorgent de triggers, contraintes, index, etc), de façon à ce que mes données soient toujours cohérentes, quel que soit l'outil utilisé pour attaquer la base (php, psql, phppgadmin, etc). Et je n'ai jamais eu à m'en plaindre.
# Merci
Posté par David FRANCOIS (site web personnel) . Évalué à 1.
Est-ce que pgSQL gère les index fulltext comme mysql le fait avec le moteur MyISAM ?
[^] # Re: Merci
Posté par Gyro Gearllose . Évalué à 4.
Et de manière plus générale, jette un oeil à la documentation qui est vraiment bien faite. Et ne fais pas comme certains (que je ne nomerai pas), et fies-toi à la doc correspondant à la version de postgreSQL que tu utiliseras.
# quelle version ?
Posté par PLuG . Évalué à 2.
Quelle version de MySQL fait tu tourner ?
As-tu passé les requêtes que tu trouves lente a un "explain plan" ?
[^] # Re: quelle version ?
Posté par David FRANCOIS (site web personnel) . Évalué à 1.
Les configs InnoDB et MyISAM sont tunées à mort, et effectivement quand j'ai vraiment un souci particulier sur une requête, le EXPLAIN est très utile pour repérer les index manquants.
En fait mon problème avec MySQL est qu'il manque de fonctionnalités, par exemple, j'aimerais bien ajouter des contraintes CHECK pour m'assurer que tous les enregistrements d'une table ont une date de début supérieure à la date de fin. Ou alors une contrainte CHECK pour vérifier que ((champ1 IS NULL AND champ2 IS NULL) OR (champ1 IS NOT NULL AND champ2 IS NOT NULL))
Le support des procédures stockées n'est pas encore très mature, par exemple tu ne peux pas appeler de procédures à l'intérieur d'un curseur défini dans une première procédure,
Les index fulltext ne sont pas supportés par InnoDB (du coup pas de transactions, row level locking etc) pour les tables qui comportent ces index
Mais clairement, d'un point de vue performances je n'ai absolument rien à redire.
Ce qu'il me faudrait idéalement c'est les perf de MySQL et les fonctionnalités de pgSQL avec un support Linux pour un prix raisonnable
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.