| 56 | | |
|---|
| 57 | | The current production-ready versions as this is written in August of 2007 are PostgreSQL 8.2 and MySQL 5.0, and those are what's being compared here. Since both PostgreSQL 8.1 and 8.2 are currently supported versions with good performance, some comments here may refer to them collectively. 8.2 is moderately faster (perhaps as much as 30% so on some workloads), but deploying 8.1 is still a completely viable option right now, particularly because more operating systems vendors bundle and support it than the relatively new 8.2. |
|---|
| 58 | | |
|---|
| 59 | | Both systems have newer versions in testing (PostgreSQL 8.3 and MySQL 5.1) at this time that offer incremental improvements to some areas this document addresses, but there are no fundamental differences so large in either new version that it's believed the general guidelines here would be invalidated. The official release of the MySQL Falcon engine in the future is one likely disruptive point on the horizon. The Asynchronous Commit feature in PostgreSQL 8.3 is another upcoming event that will shift the reliability/performance trade-off options available significantly. |
|---|
| 60 | | |
|---|
| 61 | | What is specifically not addressed here are the feature sets of the two products in areas outside of these fundamentals. Because the scale of the changes in PostgreSQL 8.1 and MySQL 5.0, many of the documents covering this topic are too out of date to recommend. Some pages that may be helpful include: |
|---|
| 62 | | |
|---|
| 63 | | * Open Source Database Feature Comparison Matrix |
|---|
| 64 | | * MySQL vs. PostgreSQL |
|---|
| 65 | | * MySQL Development Roadmap |
|---|
| 66 | | * PostgreSQL Feature Matrix |
|---|
| 67 | | |
|---|
| 68 | | While feature checklists are useful, some system behaviors require a fairly deep understanding of the respective systems to appreciate. For instance, the internals of how PostgreSQL compresses TOAST data are invisible to the user, but can result in a startling improvement in system performance with certain types of data. |
|---|
| 69 | | |
|---|
| 70 | | Another area outside of the scope of this document is that more applications support MySQL as the database of choice than PostgreSQL, and certainly that is an important factor for deciding which of these databases is better suited for a particular situation. Work on adding PostgreSQL support to some popular applications can be tracked at Software Ports. One thing you should evaluate when considering how applications use MySQL is that if they were initially targeted at versions before 5.0, they may not be compatible with newer features like the strict mode introduced in that version. If that's the case, such applications may be limited to the capabilities of the older version they were written against, and it may require a sort of porting effort to take advantage of the modern MySQL features. |
|---|
| 71 | | Reliability |
|---|
| 72 | | Data Integrity |
|---|
| 73 | | Before version 5.0, MySQL well deserved its reputation for allowing inconsistent data to be inserted into the database. Guaranteeing Data Integrity with MySQL 5.0 explains the issues with older MySQL versions, and how they may be addressed using the strict SQL Mode available in the current version. Of course, any MySQL client is allowed to change its own SQL Mode to override this, with the result that these validation constraints are still not necessarily enforced by the server. |
|---|
| | 56 | La position de ce document est que lorsque nous comparons les deux pour une application sérieuse exigeant un haut |
|---|
| | 57 | degré d'intégrité des données dans une base transactionnelle, la génération actuelle de PostgreSQL s'exécutera aussi |
|---|
| | 58 | bien ou mieux que MySQL (particulièrement avec une charge importante d'utilisateur et de requêtes complexes), tout |
|---|
| | 59 | en conservant son avance dans sa conformité aux standards SQL et sa richesse de fonctionnalité. Il est aussi espéré |
|---|
| | 60 | qu'en explorant les différences entre les deux systèmes, vous arriviez à apprécier l'approche fondamentale de l'équipe |
|---|
| | 61 | de conception de PostgreSQL qui s'évertue à prioriser un comportement fiable et prévisible. Les portions similaires de |
|---|
| | 62 | l'implémentation de MySQL ont quelques rapiècements résultant de la façon dont les fonctionnalités comme le support |
|---|
| | 63 | des transactions et le mode stricte ont été ajoutés au logiciel au court de son cycle de vie plutôt qu'intégralement |
|---|
| | 64 | dès le début. |
|---|
| | 65 | |
|---|
| | 66 | Comparaison des Versions, Ensemble de Fonctionnalités et Détails |
|---|
| | 67 | |
|---|
| | 68 | // The current production-ready versions as this is written in August of 2007 are PostgreSQL 8.2 and MySQL 5.0, and |
|---|
| | 69 | // those are what's being compared here. Since both PostgreSQL 8.1 and 8.2 are currently supported versions with good |
|---|
| | 70 | // performance, some comments here may refer to them collectively. 8.2 is moderately faster (perhaps as much as 30% so |
|---|
| | 71 | // on some workloads), but deploying 8.1 is still a completely viable option right now, particularly because more |
|---|
| | 72 | // operating systems vendors bundle and support it than the relatively new 8.2. |
|---|
| | 73 | Les versions actuelles prêtes à la production en ce mois d'août 2007 sont PostgreSQL 8.2 et MySQL 5.0, et feront donc |
|---|
| | 74 | ici l'objet de notre comparaison. Comme PostgreSQL 8.1 et 8.2 sont toutes deux actuellement des versions supportées |
|---|
| | 75 | avec de bonnes performances, certains des commentaires suivant pourront y faire références indistinctement. 8.2 est |
|---|
| | 76 | sensiblement plus rapide (peut-être pas moins de 30% sur certaines tâches), mais déployer 8.1 reste une option tout à |
|---|
| | 77 | fait viable pour le moment, particulièrement dû au fait que les vendeurs de système d'exploitation la distribuent |
|---|
| | 78 | et la prennent en charge plus souvent que la 8.2 encore relativement récente. |
|---|
| | 79 | |
|---|
| | 80 | // Both systems have newer versions in testing (PostgreSQL 8.3 and MySQL 5.1) at this time that offer incremental |
|---|
| | 81 | // improvements to some areas this document addresses, but there are no fundamental differences so large in either new |
|---|
| | 82 | // version that it's believed the general guidelines here would be invalidated. The official release of the MySQL |
|---|
| | 83 | // Falcon engine in the future is one likely disruptive point on the horizon. The Asynchronous Commit feature in |
|---|
| | 84 | // PostgreSQL 8.3 is another upcoming event that will shift the reliability/performance trade-off options available |
|---|
| | 85 | // significantly. |
|---|
| | 86 | Les deux systèmes ont de nouvelles versions en phase de tests (PostgreSQL 8.3 et MySQL 5.1) en ce moment qui offrent de |
|---|
| | 87 | nouvelles améliorations dans plusieurs domaines traités ici, mais aucune des deux n'apporte de différences |
|---|
| | 88 | fondamentales si importantes qu'elles laisseraient penser que les principales orientations de ce document en seraient |
|---|
| | 89 | infirmées. La sortie officielle du moteur Falcon de MySQL est probablement l'un des futur points perturbateur à |
|---|
| | 90 | l'horizon. La fonctionnalité d'Execution Asynchrone dans PostgreSQL 8.3 est un autre évènement prochain qui étendra |
|---|
| | 91 | significativement les différentes options disponibles pour affiner la configuration entre fiabilité et performance. |
|---|
| | 92 | |
|---|
| | 93 | // What is specifically not addressed here are the feature sets of the two products in areas outside of these |
|---|
| | 94 | // fundamentals. Because the scale of the changes in PostgreSQL 8.1 and MySQL 5.0, many of the documents covering this |
|---|
| | 95 | // topic are too out of date to recommend. Some pages that may be helpful include: |
|---|
| | 96 | Ce qui ne sera pas spécifiquement abordé ici seront les fonctionnalités des deux produits dans des domaines extérieurs |
|---|
| | 97 | à ces fondamentaux. A cause de l'importance des changements dans PostgreSQL 8.1 and MySQL 5.0, beaucoup des documents |
|---|
| | 98 | concernant ce sujet sont trop vieux pour être recommandés. Incluant certaines pages qui auraient pû être utiles : |
|---|
| | 99 | |
|---|
| | 100 | // * Open Source Database Feature Comparison Matrix |
|---|
| | 101 | * Matrice de comparaison des fonctionnalités des bases de données Open Source |
|---|
| | 102 | // * MySQL vs. PostgreSQL |
|---|
| | 103 | * MySQL contre PostgreSQL |
|---|
| | 104 | // * MySQL Development Roadmap |
|---|
| | 105 | * Prévision de développement de MySQL |
|---|
| | 106 | // * PostgreSQL Feature Matrix |
|---|
| | 107 | * Matrice des fonctionnalités de PostgreSQL |
|---|
| | 108 | |
|---|
| | 109 | // While feature checklists are useful, some system behaviors require a fairly deep understanding of the respective |
|---|
| | 110 | // systems to appreciate. For instance, the internals of how PostgreSQL compresses TOAST data are invisible to the |
|---|
| | 111 | // user, but can result in a startling improvement in system performance with certain types of data. |
|---|
| | 112 | Alors que les listes des fonctionnalités sont utiles, certains comportements internes nécessitent une compréhension |
|---|
| | 113 | profonde des systèmes respectifs pour bien les saisir. Par exemple, les mécanismes internes concernant la façon |
|---|
| | 114 | dont PostgreSQL compresse les données TOAST sont invisibles aux utilisateurs, mais peuvent mener à une amélioration |
|---|
| | 115 | drastique des performances systèmes sur certains types de donnée. |
|---|
| | 116 | |
|---|
| | 117 | // Another area outside of the scope of this document is that more applications support MySQL as the database of |
|---|
| | 118 | // choice than PostgreSQL, and certainly that is an important factor for deciding which of these databases is better |
|---|
| | 119 | // suited for a particular situation. Work on adding PostgreSQL support to some popular applications can be tracked at |
|---|
| | 120 | // Software Ports. One thing you should evaluate when considering how applications use MySQL is that if they were |
|---|
| | 121 | // initially targeted at versions before 5.0, they may not be compatible with newer features like the strict mode |
|---|
| | 122 | // introduced in that version. If that's the case, such applications may be limited to the capabilities of the older |
|---|
| | 123 | // version they were written against, and it may require a sort of porting effort to take advantage of the modern MySQL |
|---|
| | 124 | // features. |
|---|
| | 125 | // Reliability |
|---|
| | 126 | // Data Integrity |
|---|
| | 127 | // Before version 5.0, MySQL well deserved its reputation for allowing inconsistent data to be inserted into the |
|---|
| | 128 | // database. Guaranteeing Data Integrity with MySQL 5.0 explains the issues with older MySQL versions, and how they may |
|---|
| | 129 | // be addressed using the strict SQL Mode available in the current version. Of course, any MySQL client is allowed to |
|---|
| | 130 | // change its own SQL Mode to override this, with the result that these validation constraints are still not |
|---|
| | 131 | // necessarily enforced by the server. |
|---|