Changeset 678

Show
Ignore:
Timestamp:
08/18/07 10:32:02 (1 year ago)
Author:
ioguix
Message:

Quelques paragraphes de plus

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • materials/advocacy/trunk/Why_PostgreSQL_Instead_of_MySQL.txt

    r677 r678  
    4141dans quelles situations PostgreSQL est plus approprié que MySQL, en essayant de comparer équitablement les versions de 
    4242production courantes de chacune et d'en discuter les forces et faiblesses. Les domaines principalement étudiés ici  
    43 concernent les questions fondamentales de l'intégrité des données et la rapidité du noyau logiciel de la base de données. 
    44 Puisqu'il est souvent question de faire un choix entre la performance ou la fiabilité, ces deux sujets doivent être  
    45 considérés conjointement afin d'avoir une vision précise de l'ensemble. 
     43concernent les questions fondamentales de l'intégrité des données et la rapidité du noyau logiciel de la base de 
     44données. Puisqu'il est souvent question de faire un choix entre la performance ou la fiabilité, ces deux sujets 
     45doivent être considérés conjointement afin d'avoir une vision précise de l'ensemble. 
    4646 
    4747// The position of this paper is that when the two are compared using the high level of data integrity demanded by a  
     
    5454// design lifecycle rather than being integral from the start. 
    5555// Compared Versions, Feature Sets, and Focus 
    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. 
     56La position de ce document est que lorsque nous comparons les deux pour une application sérieuse exigeant un haut  
     57degré d'intégrité des données dans une base transactionnelle, la génération actuelle de PostgreSQL s'exécutera aussi 
     58bien ou mieux que MySQL (particulièrement avec une charge importante d'utilisateur et de requêtes complexes), tout  
     59en conservant son avance dans sa conformité aux standards SQL et sa richesse de fonctionnalité. Il est aussi espéré  
     60qu'en explorant les différences entre les deux systèmes, vous arriviez à apprécier l'approche fondamentale de l'équipe 
     61de conception de PostgreSQL qui s'évertue à prioriser un comportement fiable et prévisible. Les portions similaires de 
     62l'implémentation de MySQL ont quelques rapiècements résultant de la façon dont les fonctionnalités comme le support 
     63des transactions et le mode stricte ont été ajoutés au logiciel au court de son cycle de vie plutôt qu'intégralement 
     64dès le début. 
     65 
     66Comparaison 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. 
     73Les versions actuelles prêtes à la production en ce mois d'août 2007 sont PostgreSQL 8.2 et MySQL 5.0, et feront donc  
     74ici l'objet de notre comparaison. Comme PostgreSQL 8.1 et 8.2 sont toutes deux actuellement des versions supportées  
     75avec de bonnes performances, certains des commentaires suivant pourront y faire références indistinctement. 8.2 est  
     76sensiblement plus rapide (peut-être pas moins de 30% sur certaines tâches), mais déployer 8.1 reste une option tout à  
     77fait viable pour le moment, particulièrement dû au fait que les vendeurs de système d'exploitation la distribuent  
     78et 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. 
     86Les deux systèmes ont de nouvelles versions en phase de tests (PostgreSQL 8.3 et MySQL 5.1) en ce moment qui offrent de 
     87nouvelles améliorations dans plusieurs domaines traités ici, mais aucune des deux n'apporte de différences 
     88fondamentales si importantes qu'elles laisseraient penser que les principales orientations de ce document en seraient 
     89infirmées. La sortie officielle du moteur Falcon de MySQL est probablement l'un des futur points perturbateur à  
     90l'horizon. La fonctionnalité d'Execution Asynchrone dans PostgreSQL 8.3 est un autre évènement prochain qui étendra 
     91significativement 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: 
     96Ce 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 
     98concernant 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. 
     112Alors que les listes des fonctionnalités sont utiles, certains comportements internes nécessitent une compréhension 
     113profonde des systèmes respectifs pour bien les saisir. Par exemple, les mécanismes internes concernant la façon 
     114dont PostgreSQL compresse les données TOAST sont invisibles aux utilisateurs, mais peuvent mener à une amélioration  
     115drastique 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. 
    74132 
    75133PostgreSQL has always been strict about making sure data is valid before allowing it into the database, and there is no way for a client to bypass those checks.