SlideShare a Scribd company logo
1 of 10
Download to read offline
PostgreSQL vs. MySQL

        A Comparison of Enterprise Suitability




                   An EnterpriseDB White Paper
    for DBAs, Application Developers, Enterprise Architects, and IT Managers

                                  June, 2009




http://www.enterprisedb.com
PostgreSQL vs. MySQL, A Comparison of Enterprise Suitability                                                            2




   Executive Summary
                       Most IT professionals generally recognize that PostgreSQL is better suited
                       for enterprise database responsibilities than MySQL.

                       Fundamental and more sophisticated features and performance that
                       characterize enterprise capable databases are contrasted between
                       PostgreSQL and MySQL.

                       Topics addressed include:
                          Database performance,
                          Query optimization,
                          ACID Transaction support,
                          Data durability,
                          Referential integrity,
                          Support for procedural languages and triggers, and
                          Support for industry standard authentication methods

                       Because many of MySQL’s limitations only become apparent post-
                       deployment when a full re-architecting of an organization’s data
                       infrastructure is difficult, this comparison will be of particular interest to
                       those who have little or no experience with MySQL in deployment.

                       An in-depth feature comparison chart is provided detailing the differences
                       between MySQL and Postgres Plus Advanced Server.

                       An in depth discussion targeted specifically to your organization’s
                       consideration of MySQL or PostgreSQL can be scheduled with an
                       EnterpriseDB    domain  expert   by     sending   an    email    to
                       sales@enterprisedb.com.




                                         © EnterpriseDB Corporation, 2009 All rights reserved.
EnterpriseDB and Postgres Plus are trademarks of EnterpriseDB Corporation. Other names may be trademarks of their respective owners.
                                             http://www.enterprisedb.com
PostgreSQL vs. MySQL, A Comparison of Enterprise Suitability                                                            3




   Performance
                       MySQL is considered by some to be a high-performance database, and
                       this can be true for certain classes of read-mostly, Web-based
                       applications. However, acceptable performance is generally considered to
                       be only available from MySQL’s default storage engine, MyISAM, which
                       has several important limitations that make it unsuitable for enterprise
                       deployment.

                       MyISAM is based on IBM’s Indexed Sequential Access Method (ISAM) for
                       data storage, which was designed primarily for extremely fast retrieval of
                       keyed data. In this context, MyISAM is considered to provide adequate
                       speed. However, MySQL’s implementation of ISAM is known for causing
                       routine and somewhat antiquated database problems, such as:

                                Data Corruption
                                Once committed to an enterprise database, data should remain
                                usable and intact. However, MyISAM’s data corruption problems
                                are so infamously common that the myisamchk utility, which is used
                                to find corruption in MySQL data files, is scheduled as a daily
                                operation on many production MySQL systems. Further, in cases
                                where catalog corruption occurs, it is difficult, if not impossible, to
                                recover successfully.

                                Lock Contention
                                Row-level locking is well understood as a foundational requirement
                                of enterprise database operation. MyISAM lacks this feature, and
                                instead locks rows at the less granular table level. This simpler and
                                less-granular approach causes significant lock contention in multi-
                                user environments.
                                 
                                Offline Management
                                Because MyISAM does not support multi-versioning, many routine
                                administrative tasks, like adding a column to a table, become
                                impossible to perform during normal use. This lack of multi-
                                versioning often requires the DBA to take down the database just to
                                perform simple changes.


                       Some of the problems with MyISAM may be avoided on a table-by-table
                       basis using alternative storage engines, such as InnoDB. However, the
                       MySQL catalog only operates on MyISAM. Because of this limitation,
                       catalog corruption and administrative tasks are still problematic. MySQL
                       developer and co-founder Michael “Monty” Widenius has acknowledged
                       this as a severe limitation, with a partial fix scheduled for MySQL 6.1.



                                         © EnterpriseDB Corporation, 2009 All rights reserved.
EnterpriseDB and Postgres Plus are trademarks of EnterpriseDB Corporation. Other names may be trademarks of their respective owners.
                                             http://www.enterprisedb.com
PostgreSQL vs. MySQL, A Comparison of Enterprise Suitability                                                            4


                       In contrast, PostgreSQL is very differently architected and presents none
                       of these problems. All PostgreSQL operations are multi-versioned using
                       Multi-Version Concurrency Control (MVCC). As a result, common
                       operations such as re-indexing, adding or dropping columns, and
                       recreating views can be performed online and without excessive locking,
                       allowing a DBA to perform routine maintenance transparently to the
                       database’s users and to the applications running against the database.




   Multiple Storage Engines and Query Optimization
                       PostgreSQL supported multiple storage engines in the late 1980’s and
                       over time this functionality was removed learning the lesson that it is better
                       to concentrate efforts on a single storage engine. It wasn’t until just
                       recently that MySQL implemented similar functionality via their newly
                       developed Pluggable Storage Engine API. However, MySQL’s API is not
                       robust enough to allow for accurate query optimization and makes query
                       planning and tuning difficult, if not impossible, to perform.

                       MySQL’s API presents only two optimizer-related function calls to storage
                       engine developers. These calls, if implemented, can assist in costing
                       plans for the query optimizer. However, because these calls do not
                       present the context of the query to the storage engines, the engines
                       themselves cannot accurately return a proper estimate. Often, this results
                       in the generation of slow query plans.




   Transaction Support
                       Enterprise-class databases must include transactional support. In
                       database terms, a transaction is a single unit of work, which may include
                       two or more operations. For example, in a simple debit/credit operation,
                       two operations must be performed. First, an amount is debited from an
                       account. Second, the same amount is credited to another account. What if
                       the first operation succeeded but the second failed? In a database without
                       transaction support, the application would be responsible to notice the
                       failure and correct it.

                       Conversely, in a database that supports transactions, the database would
                       properly undo the debit; this is called atomicity. The following properties,
                       which are referred to by the acronym “ACID”, are generally understood to
                       be required for the reliable handling of transactions:

                           Atomicity: guarantees that either all or none of the tasks within a
                              transaction are performed.

                                         © EnterpriseDB Corporation, 2009 All rights reserved.
EnterpriseDB and Postgres Plus are trademarks of EnterpriseDB Corporation. Other names may be trademarks of their respective owners.
                                             http://www.enterprisedb.com
PostgreSQL vs. MySQL, A Comparison of Enterprise Suitability                                                            5


                           Consistency: ensures that, irrespective of the success or failure of a
                               transaction, the database will remain in a consistent state.
                           Isolation: makes operations in a transaction appear isolated from all
                               other operations.
                           Durability: guarantees that when a commit succeeds, the transaction
                               will persist, not be undone, and can be recovered.

                       Simply put, PostgreSQL is ACID-compliant, but MyISAM is not, either with
                       respect to the data in the database or with respect to the database
                       metadata. As a result, PostgreSQL reliably handles transactions, but
                       MyISAM does not.



   Referential Integrity
                       Referential integrity, the guaranteed data consistency between coupled
                       tables, is another requirement for enterprise class database operations.
                       An example of referential integrity may be found in an employee database
                       in which employees are linked to their departments using a field. In the
                       employee table, this field would be declared as a foreign key to the
                       department table, which contains a list of all company departments.

                       If referential integrity were not enforced, a department could be dropped
                       from the department table, leaving employees working for a non-existent
                       department. PostgreSQL maintains referential integrity. In contrast, very
                       few MySQL storage engines support referential integrity, and, because
                       MySQL will quietly accept the syntax for creating referential integrity rules
                       without actually enforcing them, administrators are often forced to double-
                       check their changes.



   Procedural Language Support
                       From business processes to utility functions, procedural languages allow
                       developers and DBAs to implement programmatic logic within the
                       database, speeding up access and response times by reducing network
                       round-trips and by executing more closely to the data.

                       While procedural language support was just recently added to MySQL,
                       PostgreSQL has supported procedural languages for both Tcl and a
                       PL/SQL-like dialects since version 6.3 in 1998.

                       Because PostgreSQL is an extensible database, developers can write
                       their own procedural language handlers. As a result, PostgreSQL has
                       stable implementations of procedural language handlers for many

                                         © EnterpriseDB Corporation, 2009 All rights reserved.
EnterpriseDB and Postgres Plus are trademarks of EnterpriseDB Corporation. Other names may be trademarks of their respective owners.
                                             http://www.enterprisedb.com
PostgreSQL vs. MySQL, A Comparison of Enterprise Suitability                                                            6


                       common programming languages, such as Perl, Tcl, Python, Ruby, and
                       PHP.


   Support for Triggers
                       Support for triggers was also only recently added to MySQL.
                       Unfortunately, MySQL’s triggers were only implemented per-row, thus
                       lacking the ability to execute per-statement. This is a significant omission,
                       as statement-level triggers are the commonly implemented. Statement-
                       level triggers have been supported in PostgreSQL since version 6.3 was
                       introduced in 1998.




   Supported Authentication Methods
                       PostgreSQL offers a wide variety of well-known, industry-standard
                       methods to authenticate database users, including trust, password,
                       GSSAPI, SSPI, Kerberos, Ident, LDAP, and PAM. MySQL only supports
                       its own, non-standard, non-pluggable, internal authentication system. This
                       makes enterprise use difficult, because database accounts cannot be
                       centrally provisioned or managed.




   Conclusion
                       The idea that PostgreSQL is better suited for enterprise deployment than
                       MySQL is rooted in concrete differences between the two databases’
                       features, maturity, functionality, and performance. MySQL is widely
                       deployed, but its legitimate uses are limited to a narrow range of
                       applications that can tolerate MySQL’s inherent limitations.

                       Many enterprise IT departments have optimistically selected MySQL
                       because of its popularity and then “hit the wall” once the database is in
                       production. The following section titled ‘PostgreSQL vs. MySQL Feature
                       Comparison’ presents an overview of enterprise attributes of PostgreSQL
                       that are absent or limited in MySQL.

                       For more information comparing MySQL to PostgreSQL in the context of
                       your organizations usage, please visit or email:

                       http://www.enterprisedb.com/tservices/professional_services.do

                       sales@enterprisedb.com

                                         © EnterpriseDB Corporation, 2009 All rights reserved.
EnterpriseDB and Postgres Plus are trademarks of EnterpriseDB Corporation. Other names may be trademarks of their respective owners.
                                             http://www.enterprisedb.com
PostgreSQL vs. MySQL, A Comparison of Enterprise Suitability                                                            7




                                       PostgreSQL vs. MySQL
                                        Feature Comparison

                                                                    Postgres
                                                                      Plus
                                                                    Advanced
   Feature                                          MySQL            Server                          Comments

   VLDB, Data Warehousing, Business Intelligence
   Bulk Data Loader               Y            Y
   Direct Path Load               N            Y                                       EDB*Loader
   Function-based Indexes         N            Y
   Optimizer Statistics
                                  Y            Y
   Management
   Pipelined Table Functions      N            Y                                       Use SETOF function
   Partitioning                   Y            Y

   Parallel Database
   Parallel Query                                        N                 Y           GridSQL provides parallel query

   High Availability
   Physical Standby Database                            N                  Y
   Online Operations                                    N                  Y
   Online Backup                                        Y*                 Y           * Dependent on storage engine
   Online Reorganization                                N                  Y

   Content Management
   Text Data Support / Access                           Y*                 Y           * InnoDB does not support text
   Geo-Spatial Data Support                             Y*                 Y           * InnoDB cannot index

   Information Integration
   Capture / Consumedata /                                                             Through JMS
                                                         Y                 Y
   Transactions / Events

   Networking
   Connection Manager                                    Y                 Y
   Multi-Protocol Connectivity                           Y                 Y
   Connection Pooling                                    Y                 Y




                                         © EnterpriseDB Corporation, 2009 All rights reserved.
EnterpriseDB and Postgres Plus are trademarks of EnterpriseDB Corporation. Other names may be trademarks of their respective owners.
                                             http://www.enterprisedb.com
PostgreSQL vs. MySQL, A Comparison of Enterprise Suitability                                                            8



                                                                    Postgres
                                                                      Plus
                                                                    Advanced
   Feature                                          MySQL            Server                          Comments

   Database Features
   ANSI SQL Support                                     Y*                 Y           * Dependent on selected mode
   ACID Compliance                                      Y*                 Y           * Dependent on storage engine
   Transactions                                         Y*                 Y           * Dependent on storage engine
   Nested Transactions                                  Y                  Y
   ANSI Constraints                                     Y*                 Y           * Dependent on storage engine
   Check Constraints                                    N                  Y
   Synonyms                                             N                  Y
   Cursors                                              Y*                 Y           * Limited to read-only
   Globalization Support                                Y                  Y
   Index-Organized Tables                               Y                  Y
   Instead-Of Triggers                                  N                  Y
   Nested Triggers                                      N                  Y
   LOB Support                                          Y                  Y
   User-Defined Datatypes                               N                  Y
   Domains                                              N                  Y
   Temporary Tables                                     Y                  Y
   JDBC Drivers                                         Y                  Y
   Object-relational Extensions                         N                  Y
   Table Collections                                    N                  Y
   Bulk Binding                                         N                  Y
   Bulk Collect                                         N                  Y
   XML Datatype Support                                 N                  Y
   XML Functions                                        Y                  Y
   Partial Indexes                                      N                  Y
   IP Address Datatype                                  N                  Y

   System Management
   Tablespace Support                                   Y                  Y
   Online Backup and Recovery                           N*                 Y           * Dependent on storage engine
   GUI for Performance
                                                         Y                 Y
   Management
   GUI Framework for Database /
                                                         Y                 Y
   Network Management




                                         © EnterpriseDB Corporation, 2009 All rights reserved.
EnterpriseDB and Postgres Plus are trademarks of EnterpriseDB Corporation. Other names may be trademarks of their respective owners.
                                             http://www.enterprisedb.com
PostgreSQL vs. MySQL, A Comparison of Enterprise Suitability                                                            9



                                                                    Postgres
                                                                      Plus
                                                                    Advanced
   Feature                                          MySQL            Server                          Comments

   Development
   Pre-compiler Support                                  Y                 Y
   OCI Support                                           N                 Y           OCL-compatible layer
   PL/SQL Stored Procedures                              N                 Y
   PL/SQL Functions                                      N                 Y
   PL/SQL Packages                                       N                 Y
   PL/SQL Triggers                                       N                 Y
   Java Stored Procedures                                N                 Y
   Perl Stored Procedures                                N                 Y
   TCL Stored Procedures                                 N                 Y
   Python Stored Procedures                              N                 Y
   Ruby Stored Procedures                                N                 Y
   PHP Stored Procedures                                 N                 Y
   .NET Connector                                        Y                 Y
   ODBC                                                  Y                 Y
   JDBC                                                  Y                 Y
   PHP                                                   Y                 Y
   C API                                                 Y                 Y

   Migration
   GUI Tool to Assist                                   Y                  Y
   Command Line Tool                                    N*                 Y           * Can be self-scripted
   SQL Server Migration                                 Y                  Y
   Sybase Migration                                     N                  Y
   Oracle Migration                                     Y                  Y
         - data                                         Y                  Y
         - schema                                       Y                  Y
         - stored procedures                            N                  Y           EnterpriseDB Migration Toolkit
         - functions                                    N                  Y           EnterpriseDB Migration Toolkit
                                                        N                  Y           EnterpriseDB Migration Toolkit
         - triggers
         - packages                                     N                  Y
   Oracle-like Tools                                     N                 Y           EDB*Plus and EDB*Loader




                                         © EnterpriseDB Corporation, 2009 All rights reserved.
EnterpriseDB and Postgres Plus are trademarks of EnterpriseDB Corporation. Other names may be trademarks of their respective owners.
                                             http://www.enterprisedb.com
PostgreSQL vs. MySQL, A Comparison of Enterprise Suitability                                                           10



                                                                    Postgres
                                                                      Plus
                                                                    Advanced
   Feature                                          MySQL            Server                          Comments

   Distributed
   Basic Replication                                     Y                 Y
   Oracle Replication (To and
                                                         N                 Y
   From)
   Distributed Queries                                   Y                 Y
   Distributed Transactions                              Y                 Y
                                                                                       * DB links over ODBC planned
                                                                                       for future release. Currently
   Heterogeneous Connectivity                            N                Y*           supports db links to Oracle,
                                                                                       PostgreSQL, and
                                                                                       EnterpriseDB.

   Security
                                                                                       Security policies for row-level
   Virtual Private Database                              N                Y*           security (have to download
                                                                                       Veil)
   Fine Grained Auditing                                 N                 N
   Roles or Groups                                       N                 Y
   Enterprise User Security                              N                 Y
   Password Management                                   Y                 Y
   Encryption                                            Y                 Y
   PAM Authentication                                    N                 Y
   LDAP Support                                          N                 Y




   About EnterpriseDB
                       EnterpriseDB is the leading provider of enterprise class products and
                       services based on PostgreSQL, the world's most advanced open source
                       database. The company's Postgres Plus products are ideally suited for
                       transaction-intensive applications requiring superior performance, massive
                       scalability, and compatibility with proprietary database products.
                       EnterpriseDB has offices in North America, Europe, and Asia. The
                       company was founded in 2004 and is headquartered in Edison, N.J. For
                       more      information,   please      call    +1-732-331-1300     or   visit
                       http://www.enterprisedb.com



                                         © EnterpriseDB Corporation, 2009 All rights reserved.
EnterpriseDB and Postgres Plus are trademarks of EnterpriseDB Corporation. Other names may be trademarks of their respective owners.
                                             http://www.enterprisedb.com

More Related Content

What's hot

Microsoft SQL Azure - Agility in the New Economy Technical Datasheet
Microsoft SQL Azure - Agility in the New Economy Technical DatasheetMicrosoft SQL Azure - Agility in the New Economy Technical Datasheet
Microsoft SQL Azure - Agility in the New Economy Technical DatasheetMicrosoft Private Cloud
 
The Whats, Whys and Hows of Database as a Service
The Whats, Whys and Hows of Database as a ServiceThe Whats, Whys and Hows of Database as a Service
The Whats, Whys and Hows of Database as a ServicePeak 10
 
Oracle 11g certified professional (ocp)
Oracle 11g certified professional (ocp)Oracle 11g certified professional (ocp)
Oracle 11g certified professional (ocp)elshiekh1980
 
Effective Usage of SQL Server 2005 Database Mirroring
Effective Usage of SQL Server 2005 Database MirroringEffective Usage of SQL Server 2005 Database Mirroring
Effective Usage of SQL Server 2005 Database Mirroringwebhostingguy
 
Rackwise DCM
Rackwise DCMRackwise DCM
Rackwise DCMthamner
 
Server Virtualization With VMware_Project Doc [Latest Updated]
Server Virtualization With VMware_Project Doc [Latest Updated]Server Virtualization With VMware_Project Doc [Latest Updated]
Server Virtualization With VMware_Project Doc [Latest Updated]Smit Bhilare
 
Oracle enterprise manager cloud control 12c
Oracle enterprise manager cloud control 12cOracle enterprise manager cloud control 12c
Oracle enterprise manager cloud control 12csolarisyougood
 
ScaleBase Webinar: Strategies for scaling MySQL
ScaleBase Webinar: Strategies for scaling MySQLScaleBase Webinar: Strategies for scaling MySQL
ScaleBase Webinar: Strategies for scaling MySQLScaleBase
 
System Center 2012 Virtual Machine Manager
System Center 2012 Virtual Machine ManagerSystem Center 2012 Virtual Machine Manager
System Center 2012 Virtual Machine ManagerNorman Mayes
 
VMworld 2013: Virtualization 101
VMworld 2013: Virtualization 101 VMworld 2013: Virtualization 101
VMworld 2013: Virtualization 101 VMworld
 
IBM Flex System Reference Architecture for Microsoft SQL Server 2012 High Ava...
IBM Flex System Reference Architecture for Microsoft SQL Server 2012 High Ava...IBM Flex System Reference Architecture for Microsoft SQL Server 2012 High Ava...
IBM Flex System Reference Architecture for Microsoft SQL Server 2012 High Ava...IBM India Smarter Computing
 
Automating virtual workload mobility with IBM Vmready
Automating virtual workload mobility with IBM VmreadyAutomating virtual workload mobility with IBM Vmready
Automating virtual workload mobility with IBM VmreadyIBM India Smarter Computing
 
Cidr11 paper32
Cidr11 paper32Cidr11 paper32
Cidr11 paper32jujukoko
 
02 -my_sql_roma-may2011
02  -my_sql_roma-may201102  -my_sql_roma-may2011
02 -my_sql_roma-may2011testfank
 

What's hot (16)

Microsoft SQL Azure - Agility in the New Economy Technical Datasheet
Microsoft SQL Azure - Agility in the New Economy Technical DatasheetMicrosoft SQL Azure - Agility in the New Economy Technical Datasheet
Microsoft SQL Azure - Agility in the New Economy Technical Datasheet
 
The Whats, Whys and Hows of Database as a Service
The Whats, Whys and Hows of Database as a ServiceThe Whats, Whys and Hows of Database as a Service
The Whats, Whys and Hows of Database as a Service
 
Oracle 11g certified professional (ocp)
Oracle 11g certified professional (ocp)Oracle 11g certified professional (ocp)
Oracle 11g certified professional (ocp)
 
Effective Usage of SQL Server 2005 Database Mirroring
Effective Usage of SQL Server 2005 Database MirroringEffective Usage of SQL Server 2005 Database Mirroring
Effective Usage of SQL Server 2005 Database Mirroring
 
Rackwise DCM
Rackwise DCMRackwise DCM
Rackwise DCM
 
Server Virtualization With VMware_Project Doc [Latest Updated]
Server Virtualization With VMware_Project Doc [Latest Updated]Server Virtualization With VMware_Project Doc [Latest Updated]
Server Virtualization With VMware_Project Doc [Latest Updated]
 
Oracle enterprise manager cloud control 12c
Oracle enterprise manager cloud control 12cOracle enterprise manager cloud control 12c
Oracle enterprise manager cloud control 12c
 
EIM Tutorial
EIM TutorialEIM Tutorial
EIM Tutorial
 
Data Stagev8
Data Stagev8Data Stagev8
Data Stagev8
 
ScaleBase Webinar: Strategies for scaling MySQL
ScaleBase Webinar: Strategies for scaling MySQLScaleBase Webinar: Strategies for scaling MySQL
ScaleBase Webinar: Strategies for scaling MySQL
 
System Center 2012 Virtual Machine Manager
System Center 2012 Virtual Machine ManagerSystem Center 2012 Virtual Machine Manager
System Center 2012 Virtual Machine Manager
 
VMworld 2013: Virtualization 101
VMworld 2013: Virtualization 101 VMworld 2013: Virtualization 101
VMworld 2013: Virtualization 101
 
IBM Flex System Reference Architecture for Microsoft SQL Server 2012 High Ava...
IBM Flex System Reference Architecture for Microsoft SQL Server 2012 High Ava...IBM Flex System Reference Architecture for Microsoft SQL Server 2012 High Ava...
IBM Flex System Reference Architecture for Microsoft SQL Server 2012 High Ava...
 
Automating virtual workload mobility with IBM Vmready
Automating virtual workload mobility with IBM VmreadyAutomating virtual workload mobility with IBM Vmready
Automating virtual workload mobility with IBM Vmready
 
Cidr11 paper32
Cidr11 paper32Cidr11 paper32
Cidr11 paper32
 
02 -my_sql_roma-may2011
02  -my_sql_roma-may201102  -my_sql_roma-may2011
02 -my_sql_roma-may2011
 

Similar to PgSQL vs MySQL

Ieee-no sql distributed db and cloud architecture report
Ieee-no sql distributed db and cloud architecture reportIeee-no sql distributed db and cloud architecture report
Ieee-no sql distributed db and cloud architecture reportOutsource Portfolio
 
mysql-whitepaper
mysql-whitepapermysql-whitepaper
mysql-whitepaperAaron Wood
 
My sql performance tuning course
My sql performance tuning courseMy sql performance tuning course
My sql performance tuning courseAlberto Centanni
 
how-to-become-a-mysql-dba.pdf
how-to-become-a-mysql-dba.pdfhow-to-become-a-mysql-dba.pdf
how-to-become-a-mysql-dba.pdfALI ANWAR, OCP®
 
Challenges Management and Opportunities of Cloud DBA
Challenges Management and Opportunities of Cloud DBAChallenges Management and Opportunities of Cloud DBA
Challenges Management and Opportunities of Cloud DBAinventy
 
Mysql Enterprise Edition Feature and Tools
Mysql  Enterprise Edition Feature and Tools Mysql  Enterprise Edition Feature and Tools
Mysql Enterprise Edition Feature and Tools jones4u
 
MySQL - powering the web economy v1.0
MySQL - powering the web economy v1.0MySQL - powering the web economy v1.0
MySQL - powering the web economy v1.0IDG Romania
 
ScaleBase Webinar: Scaling MySQL - Sharding Made Easy!
ScaleBase Webinar: Scaling MySQL - Sharding Made Easy!ScaleBase Webinar: Scaling MySQL - Sharding Made Easy!
ScaleBase Webinar: Scaling MySQL - Sharding Made Easy!ScaleBase
 
Posscon my sql56
Posscon my sql56Posscon my sql56
Posscon my sql56Dave Stokes
 
Efficient Performance Analysis and Tuning with MySQL Enterprise Monitor
Efficient Performance Analysis and Tuning with MySQL Enterprise MonitorEfficient Performance Analysis and Tuning with MySQL Enterprise Monitor
Efficient Performance Analysis and Tuning with MySQL Enterprise MonitorMark Matthews
 
My First 100 days with a MySQL DBMS (WP)
My First 100 days with a MySQL DBMS (WP)My First 100 days with a MySQL DBMS (WP)
My First 100 days with a MySQL DBMS (WP)Gustavo Rene Antunez
 
3170722_BDA_GTU_Study_Material_Presentations_Unit-3_29092021094744AM.pdf
3170722_BDA_GTU_Study_Material_Presentations_Unit-3_29092021094744AM.pdf3170722_BDA_GTU_Study_Material_Presentations_Unit-3_29092021094744AM.pdf
3170722_BDA_GTU_Study_Material_Presentations_Unit-3_29092021094744AM.pdfKrishnaShah908060
 
Design Patterns for Micro Service Architecture
Design Patterns for Micro Service ArchitectureDesign Patterns for Micro Service Architecture
Design Patterns for Micro Service ArchitectureSarah Elson
 
Advantage & Disadvantage of MySQL
Advantage & Disadvantage of MySQLAdvantage & Disadvantage of MySQL
Advantage & Disadvantage of MySQLKentAnderson43
 
My sql enterprise_edition_wp_v38
My sql enterprise_edition_wp_v38My sql enterprise_edition_wp_v38
My sql enterprise_edition_wp_v38Jeton Selimi
 
Oracle mysql comparison
Oracle mysql comparisonOracle mysql comparison
Oracle mysql comparisonArun Sharma
 

Similar to PgSQL vs MySQL (20)

Ieee-no sql distributed db and cloud architecture report
Ieee-no sql distributed db and cloud architecture reportIeee-no sql distributed db and cloud architecture report
Ieee-no sql distributed db and cloud architecture report
 
mysql-whitepaper
mysql-whitepapermysql-whitepaper
mysql-whitepaper
 
My sql performance tuning course
My sql performance tuning courseMy sql performance tuning course
My sql performance tuning course
 
Usability of MySQL
Usability of MySQLUsability of MySQL
Usability of MySQL
 
how-to-become-a-mysql-dba.pdf
how-to-become-a-mysql-dba.pdfhow-to-become-a-mysql-dba.pdf
how-to-become-a-mysql-dba.pdf
 
Challenges Management and Opportunities of Cloud DBA
Challenges Management and Opportunities of Cloud DBAChallenges Management and Opportunities of Cloud DBA
Challenges Management and Opportunities of Cloud DBA
 
Mysql Enterprise Edition Feature and Tools
Mysql  Enterprise Edition Feature and Tools Mysql  Enterprise Edition Feature and Tools
Mysql Enterprise Edition Feature and Tools
 
MySQL - powering the web economy v1.0
MySQL - powering the web economy v1.0MySQL - powering the web economy v1.0
MySQL - powering the web economy v1.0
 
ScaleBase Webinar: Scaling MySQL - Sharding Made Easy!
ScaleBase Webinar: Scaling MySQL - Sharding Made Easy!ScaleBase Webinar: Scaling MySQL - Sharding Made Easy!
ScaleBase Webinar: Scaling MySQL - Sharding Made Easy!
 
Introduction to Mysql
Introduction to MysqlIntroduction to Mysql
Introduction to Mysql
 
Posscon my sql56
Posscon my sql56Posscon my sql56
Posscon my sql56
 
Efficient Performance Analysis and Tuning with MySQL Enterprise Monitor
Efficient Performance Analysis and Tuning with MySQL Enterprise MonitorEfficient Performance Analysis and Tuning with MySQL Enterprise Monitor
Efficient Performance Analysis and Tuning with MySQL Enterprise Monitor
 
My First 100 days with a MySQL DBMS (WP)
My First 100 days with a MySQL DBMS (WP)My First 100 days with a MySQL DBMS (WP)
My First 100 days with a MySQL DBMS (WP)
 
3170722_BDA_GTU_Study_Material_Presentations_Unit-3_29092021094744AM.pdf
3170722_BDA_GTU_Study_Material_Presentations_Unit-3_29092021094744AM.pdf3170722_BDA_GTU_Study_Material_Presentations_Unit-3_29092021094744AM.pdf
3170722_BDA_GTU_Study_Material_Presentations_Unit-3_29092021094744AM.pdf
 
Rise of NewSQL
Rise of NewSQLRise of NewSQL
Rise of NewSQL
 
MySQL
MySQL MySQL
MySQL
 
Design Patterns for Micro Service Architecture
Design Patterns for Micro Service ArchitectureDesign Patterns for Micro Service Architecture
Design Patterns for Micro Service Architecture
 
Advantage & Disadvantage of MySQL
Advantage & Disadvantage of MySQLAdvantage & Disadvantage of MySQL
Advantage & Disadvantage of MySQL
 
My sql enterprise_edition_wp_v38
My sql enterprise_edition_wp_v38My sql enterprise_edition_wp_v38
My sql enterprise_edition_wp_v38
 
Oracle mysql comparison
Oracle mysql comparisonOracle mysql comparison
Oracle mysql comparison
 

More from xlight

What does it take to make google work at scale
What does it take to make google work at scale What does it take to make google work at scale
What does it take to make google work at scale xlight
 
淘宝无线电子商务数据报告
淘宝无线电子商务数据报告淘宝无线电子商务数据报告
淘宝无线电子商务数据报告xlight
 
New zealand bloom filter
New zealand bloom filterNew zealand bloom filter
New zealand bloom filterxlight
 
Product manager-chrissyuan v1.0
Product manager-chrissyuan v1.0Product manager-chrissyuan v1.0
Product manager-chrissyuan v1.0xlight
 
Oracle ha
Oracle haOracle ha
Oracle haxlight
 
Oracle 高可用概述
Oracle 高可用概述Oracle 高可用概述
Oracle 高可用概述xlight
 
Stats partitioned table
Stats partitioned tableStats partitioned table
Stats partitioned tablexlight
 
Optimizing Drupal Performance Zend Acquia Whitepaper Feb2010
Optimizing Drupal Performance Zend Acquia Whitepaper Feb2010Optimizing Drupal Performance Zend Acquia Whitepaper Feb2010
Optimizing Drupal Performance Zend Acquia Whitepaper Feb2010xlight
 
C/C++与Lua混合编程
C/C++与Lua混合编程C/C++与Lua混合编程
C/C++与Lua混合编程xlight
 
Google: The Chubby Lock Service for Loosely-Coupled Distributed Systems
Google: The Chubby Lock Service for Loosely-Coupled Distributed SystemsGoogle: The Chubby Lock Service for Loosely-Coupled Distributed Systems
Google: The Chubby Lock Service for Loosely-Coupled Distributed Systemsxlight
 
Google: The Chubby Lock Service for Loosely-Coupled Distributed Systems
Google: The Chubby Lock Service for Loosely-Coupled Distributed SystemsGoogle: The Chubby Lock Service for Loosely-Coupled Distributed Systems
Google: The Chubby Lock Service for Loosely-Coupled Distributed Systemsxlight
 
High Availability MySQL with DRBD and Heartbeat MTV Japan Mobile Service
High Availability MySQL with DRBD and Heartbeat MTV Japan Mobile ServiceHigh Availability MySQL with DRBD and Heartbeat MTV Japan Mobile Service
High Availability MySQL with DRBD and Heartbeat MTV Japan Mobile Servicexlight
 
SpeedGeeks
SpeedGeeksSpeedGeeks
SpeedGeeksxlight
 
GOOGLE: Designs, Lessons and Advice from Building Large Distributed Systems
GOOGLE: Designs, Lessons and Advice from Building Large   Distributed Systems GOOGLE: Designs, Lessons and Advice from Building Large   Distributed Systems
GOOGLE: Designs, Lessons and Advice from Building Large Distributed Systems xlight
 
sector-sphere
sector-spheresector-sphere
sector-spherexlight
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...xlight
 
Gfarm Fs Tatebe Tip2004
Gfarm Fs Tatebe Tip2004Gfarm Fs Tatebe Tip2004
Gfarm Fs Tatebe Tip2004xlight
 
Make Your web Work
Make Your web WorkMake Your web Work
Make Your web Workxlight
 
Capacity Management from Flickr
Capacity Management from FlickrCapacity Management from Flickr
Capacity Management from Flickrxlight
 

More from xlight (20)

What does it take to make google work at scale
What does it take to make google work at scale What does it take to make google work at scale
What does it take to make google work at scale
 
淘宝无线电子商务数据报告
淘宝无线电子商务数据报告淘宝无线电子商务数据报告
淘宝无线电子商务数据报告
 
New zealand bloom filter
New zealand bloom filterNew zealand bloom filter
New zealand bloom filter
 
Product manager-chrissyuan v1.0
Product manager-chrissyuan v1.0Product manager-chrissyuan v1.0
Product manager-chrissyuan v1.0
 
Oracle ha
Oracle haOracle ha
Oracle ha
 
Oracle 高可用概述
Oracle 高可用概述Oracle 高可用概述
Oracle 高可用概述
 
Stats partitioned table
Stats partitioned tableStats partitioned table
Stats partitioned table
 
Optimizing Drupal Performance Zend Acquia Whitepaper Feb2010
Optimizing Drupal Performance Zend Acquia Whitepaper Feb2010Optimizing Drupal Performance Zend Acquia Whitepaper Feb2010
Optimizing Drupal Performance Zend Acquia Whitepaper Feb2010
 
C/C++与Lua混合编程
C/C++与Lua混合编程C/C++与Lua混合编程
C/C++与Lua混合编程
 
Google: The Chubby Lock Service for Loosely-Coupled Distributed Systems
Google: The Chubby Lock Service for Loosely-Coupled Distributed SystemsGoogle: The Chubby Lock Service for Loosely-Coupled Distributed Systems
Google: The Chubby Lock Service for Loosely-Coupled Distributed Systems
 
Google: The Chubby Lock Service for Loosely-Coupled Distributed Systems
Google: The Chubby Lock Service for Loosely-Coupled Distributed SystemsGoogle: The Chubby Lock Service for Loosely-Coupled Distributed Systems
Google: The Chubby Lock Service for Loosely-Coupled Distributed Systems
 
High Availability MySQL with DRBD and Heartbeat MTV Japan Mobile Service
High Availability MySQL with DRBD and Heartbeat MTV Japan Mobile ServiceHigh Availability MySQL with DRBD and Heartbeat MTV Japan Mobile Service
High Availability MySQL with DRBD and Heartbeat MTV Japan Mobile Service
 
SpeedGeeks
SpeedGeeksSpeedGeeks
SpeedGeeks
 
GOOGLE: Designs, Lessons and Advice from Building Large Distributed Systems
GOOGLE: Designs, Lessons and Advice from Building Large   Distributed Systems GOOGLE: Designs, Lessons and Advice from Building Large   Distributed Systems
GOOGLE: Designs, Lessons and Advice from Building Large Distributed Systems
 
UDT
UDTUDT
UDT
 
sector-sphere
sector-spheresector-sphere
sector-sphere
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
 
Gfarm Fs Tatebe Tip2004
Gfarm Fs Tatebe Tip2004Gfarm Fs Tatebe Tip2004
Gfarm Fs Tatebe Tip2004
 
Make Your web Work
Make Your web WorkMake Your web Work
Make Your web Work
 
Capacity Management from Flickr
Capacity Management from FlickrCapacity Management from Flickr
Capacity Management from Flickr
 

Recently uploaded

SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 

PgSQL vs MySQL

  • 1. PostgreSQL vs. MySQL A Comparison of Enterprise Suitability An EnterpriseDB White Paper for DBAs, Application Developers, Enterprise Architects, and IT Managers June, 2009 http://www.enterprisedb.com
  • 2. PostgreSQL vs. MySQL, A Comparison of Enterprise Suitability 2 Executive Summary Most IT professionals generally recognize that PostgreSQL is better suited for enterprise database responsibilities than MySQL. Fundamental and more sophisticated features and performance that characterize enterprise capable databases are contrasted between PostgreSQL and MySQL. Topics addressed include:  Database performance,  Query optimization,  ACID Transaction support,  Data durability,  Referential integrity,  Support for procedural languages and triggers, and  Support for industry standard authentication methods Because many of MySQL’s limitations only become apparent post- deployment when a full re-architecting of an organization’s data infrastructure is difficult, this comparison will be of particular interest to those who have little or no experience with MySQL in deployment. An in-depth feature comparison chart is provided detailing the differences between MySQL and Postgres Plus Advanced Server. An in depth discussion targeted specifically to your organization’s consideration of MySQL or PostgreSQL can be scheduled with an EnterpriseDB domain expert by sending an email to sales@enterprisedb.com. © EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB and Postgres Plus are trademarks of EnterpriseDB Corporation. Other names may be trademarks of their respective owners. http://www.enterprisedb.com
  • 3. PostgreSQL vs. MySQL, A Comparison of Enterprise Suitability 3 Performance MySQL is considered by some to be a high-performance database, and this can be true for certain classes of read-mostly, Web-based applications. However, acceptable performance is generally considered to be only available from MySQL’s default storage engine, MyISAM, which has several important limitations that make it unsuitable for enterprise deployment. MyISAM is based on IBM’s Indexed Sequential Access Method (ISAM) for data storage, which was designed primarily for extremely fast retrieval of keyed data. In this context, MyISAM is considered to provide adequate speed. However, MySQL’s implementation of ISAM is known for causing routine and somewhat antiquated database problems, such as: Data Corruption Once committed to an enterprise database, data should remain usable and intact. However, MyISAM’s data corruption problems are so infamously common that the myisamchk utility, which is used to find corruption in MySQL data files, is scheduled as a daily operation on many production MySQL systems. Further, in cases where catalog corruption occurs, it is difficult, if not impossible, to recover successfully. Lock Contention Row-level locking is well understood as a foundational requirement of enterprise database operation. MyISAM lacks this feature, and instead locks rows at the less granular table level. This simpler and less-granular approach causes significant lock contention in multi- user environments.   Offline Management Because MyISAM does not support multi-versioning, many routine administrative tasks, like adding a column to a table, become impossible to perform during normal use. This lack of multi- versioning often requires the DBA to take down the database just to perform simple changes. Some of the problems with MyISAM may be avoided on a table-by-table basis using alternative storage engines, such as InnoDB. However, the MySQL catalog only operates on MyISAM. Because of this limitation, catalog corruption and administrative tasks are still problematic. MySQL developer and co-founder Michael “Monty” Widenius has acknowledged this as a severe limitation, with a partial fix scheduled for MySQL 6.1. © EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB and Postgres Plus are trademarks of EnterpriseDB Corporation. Other names may be trademarks of their respective owners. http://www.enterprisedb.com
  • 4. PostgreSQL vs. MySQL, A Comparison of Enterprise Suitability 4 In contrast, PostgreSQL is very differently architected and presents none of these problems. All PostgreSQL operations are multi-versioned using Multi-Version Concurrency Control (MVCC). As a result, common operations such as re-indexing, adding or dropping columns, and recreating views can be performed online and without excessive locking, allowing a DBA to perform routine maintenance transparently to the database’s users and to the applications running against the database. Multiple Storage Engines and Query Optimization PostgreSQL supported multiple storage engines in the late 1980’s and over time this functionality was removed learning the lesson that it is better to concentrate efforts on a single storage engine. It wasn’t until just recently that MySQL implemented similar functionality via their newly developed Pluggable Storage Engine API. However, MySQL’s API is not robust enough to allow for accurate query optimization and makes query planning and tuning difficult, if not impossible, to perform. MySQL’s API presents only two optimizer-related function calls to storage engine developers. These calls, if implemented, can assist in costing plans for the query optimizer. However, because these calls do not present the context of the query to the storage engines, the engines themselves cannot accurately return a proper estimate. Often, this results in the generation of slow query plans. Transaction Support Enterprise-class databases must include transactional support. In database terms, a transaction is a single unit of work, which may include two or more operations. For example, in a simple debit/credit operation, two operations must be performed. First, an amount is debited from an account. Second, the same amount is credited to another account. What if the first operation succeeded but the second failed? In a database without transaction support, the application would be responsible to notice the failure and correct it. Conversely, in a database that supports transactions, the database would properly undo the debit; this is called atomicity. The following properties, which are referred to by the acronym “ACID”, are generally understood to be required for the reliable handling of transactions:  Atomicity: guarantees that either all or none of the tasks within a transaction are performed. © EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB and Postgres Plus are trademarks of EnterpriseDB Corporation. Other names may be trademarks of their respective owners. http://www.enterprisedb.com
  • 5. PostgreSQL vs. MySQL, A Comparison of Enterprise Suitability 5  Consistency: ensures that, irrespective of the success or failure of a transaction, the database will remain in a consistent state.  Isolation: makes operations in a transaction appear isolated from all other operations.  Durability: guarantees that when a commit succeeds, the transaction will persist, not be undone, and can be recovered. Simply put, PostgreSQL is ACID-compliant, but MyISAM is not, either with respect to the data in the database or with respect to the database metadata. As a result, PostgreSQL reliably handles transactions, but MyISAM does not. Referential Integrity Referential integrity, the guaranteed data consistency between coupled tables, is another requirement for enterprise class database operations. An example of referential integrity may be found in an employee database in which employees are linked to their departments using a field. In the employee table, this field would be declared as a foreign key to the department table, which contains a list of all company departments. If referential integrity were not enforced, a department could be dropped from the department table, leaving employees working for a non-existent department. PostgreSQL maintains referential integrity. In contrast, very few MySQL storage engines support referential integrity, and, because MySQL will quietly accept the syntax for creating referential integrity rules without actually enforcing them, administrators are often forced to double- check their changes. Procedural Language Support From business processes to utility functions, procedural languages allow developers and DBAs to implement programmatic logic within the database, speeding up access and response times by reducing network round-trips and by executing more closely to the data. While procedural language support was just recently added to MySQL, PostgreSQL has supported procedural languages for both Tcl and a PL/SQL-like dialects since version 6.3 in 1998. Because PostgreSQL is an extensible database, developers can write their own procedural language handlers. As a result, PostgreSQL has stable implementations of procedural language handlers for many © EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB and Postgres Plus are trademarks of EnterpriseDB Corporation. Other names may be trademarks of their respective owners. http://www.enterprisedb.com
  • 6. PostgreSQL vs. MySQL, A Comparison of Enterprise Suitability 6 common programming languages, such as Perl, Tcl, Python, Ruby, and PHP. Support for Triggers Support for triggers was also only recently added to MySQL. Unfortunately, MySQL’s triggers were only implemented per-row, thus lacking the ability to execute per-statement. This is a significant omission, as statement-level triggers are the commonly implemented. Statement- level triggers have been supported in PostgreSQL since version 6.3 was introduced in 1998. Supported Authentication Methods PostgreSQL offers a wide variety of well-known, industry-standard methods to authenticate database users, including trust, password, GSSAPI, SSPI, Kerberos, Ident, LDAP, and PAM. MySQL only supports its own, non-standard, non-pluggable, internal authentication system. This makes enterprise use difficult, because database accounts cannot be centrally provisioned or managed. Conclusion The idea that PostgreSQL is better suited for enterprise deployment than MySQL is rooted in concrete differences between the two databases’ features, maturity, functionality, and performance. MySQL is widely deployed, but its legitimate uses are limited to a narrow range of applications that can tolerate MySQL’s inherent limitations. Many enterprise IT departments have optimistically selected MySQL because of its popularity and then “hit the wall” once the database is in production. The following section titled ‘PostgreSQL vs. MySQL Feature Comparison’ presents an overview of enterprise attributes of PostgreSQL that are absent or limited in MySQL. For more information comparing MySQL to PostgreSQL in the context of your organizations usage, please visit or email: http://www.enterprisedb.com/tservices/professional_services.do sales@enterprisedb.com © EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB and Postgres Plus are trademarks of EnterpriseDB Corporation. Other names may be trademarks of their respective owners. http://www.enterprisedb.com
  • 7. PostgreSQL vs. MySQL, A Comparison of Enterprise Suitability 7 PostgreSQL vs. MySQL Feature Comparison Postgres Plus Advanced Feature MySQL Server Comments VLDB, Data Warehousing, Business Intelligence Bulk Data Loader Y Y Direct Path Load N Y EDB*Loader Function-based Indexes N Y Optimizer Statistics Y Y Management Pipelined Table Functions N Y Use SETOF function Partitioning Y Y Parallel Database Parallel Query N Y GridSQL provides parallel query High Availability Physical Standby Database N Y Online Operations N Y Online Backup Y* Y * Dependent on storage engine Online Reorganization N Y Content Management Text Data Support / Access Y* Y * InnoDB does not support text Geo-Spatial Data Support Y* Y * InnoDB cannot index Information Integration Capture / Consumedata / Through JMS Y Y Transactions / Events Networking Connection Manager Y Y Multi-Protocol Connectivity Y Y Connection Pooling Y Y © EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB and Postgres Plus are trademarks of EnterpriseDB Corporation. Other names may be trademarks of their respective owners. http://www.enterprisedb.com
  • 8. PostgreSQL vs. MySQL, A Comparison of Enterprise Suitability 8 Postgres Plus Advanced Feature MySQL Server Comments Database Features ANSI SQL Support Y* Y * Dependent on selected mode ACID Compliance Y* Y * Dependent on storage engine Transactions Y* Y * Dependent on storage engine Nested Transactions Y Y ANSI Constraints Y* Y * Dependent on storage engine Check Constraints N Y Synonyms N Y Cursors Y* Y * Limited to read-only Globalization Support Y Y Index-Organized Tables Y Y Instead-Of Triggers N Y Nested Triggers N Y LOB Support Y Y User-Defined Datatypes N Y Domains N Y Temporary Tables Y Y JDBC Drivers Y Y Object-relational Extensions N Y Table Collections N Y Bulk Binding N Y Bulk Collect N Y XML Datatype Support N Y XML Functions Y Y Partial Indexes N Y IP Address Datatype N Y System Management Tablespace Support Y Y Online Backup and Recovery N* Y * Dependent on storage engine GUI for Performance Y Y Management GUI Framework for Database / Y Y Network Management © EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB and Postgres Plus are trademarks of EnterpriseDB Corporation. Other names may be trademarks of their respective owners. http://www.enterprisedb.com
  • 9. PostgreSQL vs. MySQL, A Comparison of Enterprise Suitability 9 Postgres Plus Advanced Feature MySQL Server Comments Development Pre-compiler Support Y Y OCI Support N Y OCL-compatible layer PL/SQL Stored Procedures N Y PL/SQL Functions N Y PL/SQL Packages N Y PL/SQL Triggers N Y Java Stored Procedures N Y Perl Stored Procedures N Y TCL Stored Procedures N Y Python Stored Procedures N Y Ruby Stored Procedures N Y PHP Stored Procedures N Y .NET Connector Y Y ODBC Y Y JDBC Y Y PHP Y Y C API Y Y Migration GUI Tool to Assist Y Y Command Line Tool N* Y * Can be self-scripted SQL Server Migration Y Y Sybase Migration N Y Oracle Migration Y Y - data Y Y - schema Y Y - stored procedures N Y EnterpriseDB Migration Toolkit - functions N Y EnterpriseDB Migration Toolkit N Y EnterpriseDB Migration Toolkit - triggers - packages N Y Oracle-like Tools N Y EDB*Plus and EDB*Loader © EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB and Postgres Plus are trademarks of EnterpriseDB Corporation. Other names may be trademarks of their respective owners. http://www.enterprisedb.com
  • 10. PostgreSQL vs. MySQL, A Comparison of Enterprise Suitability 10 Postgres Plus Advanced Feature MySQL Server Comments Distributed Basic Replication Y Y Oracle Replication (To and N Y From) Distributed Queries Y Y Distributed Transactions Y Y * DB links over ODBC planned for future release. Currently Heterogeneous Connectivity N Y* supports db links to Oracle, PostgreSQL, and EnterpriseDB. Security Security policies for row-level Virtual Private Database N Y* security (have to download Veil) Fine Grained Auditing N N Roles or Groups N Y Enterprise User Security N Y Password Management Y Y Encryption Y Y PAM Authentication N Y LDAP Support N Y About EnterpriseDB EnterpriseDB is the leading provider of enterprise class products and services based on PostgreSQL, the world's most advanced open source database. The company's Postgres Plus products are ideally suited for transaction-intensive applications requiring superior performance, massive scalability, and compatibility with proprietary database products. EnterpriseDB has offices in North America, Europe, and Asia. The company was founded in 2004 and is headquartered in Edison, N.J. For more information, please call +1-732-331-1300 or visit http://www.enterprisedb.com © EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB and Postgres Plus are trademarks of EnterpriseDB Corporation. Other names may be trademarks of their respective owners. http://www.enterprisedb.com