Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

PostgreSQL vs. MySQL (Web Techniques, Sep 2001)


Web Techniques: Sidebar

Sidebar: When Open Source Isn't Enough


Open-source databases like PostgreSQL, MySQL, and Borland's Interbase have made big strides in recent years. As they've matured, these low-cost packages have grown particularly attractive to Web developers as alternatives to commercial software—for which they must pay high licensing fees. Sometimes, however, the least expensive solution just won't cut it. Vendors like Oracle, Sybase, IBM, and Microsoft have each invested heavily in research and development to hone the capabilities of their respective products. As a result, commercial databases typically offer advanced features in areas where open-source alternatives can't compete. For example:

Speed. Improving database performance starts with more powerful processors and faster hard drives, but when speed is absolutely critical, you'll want software options as well. One way some commercial databases bypass the hardware bottleneck is through clustering, which lets several servers share the processing burden for a single data store. Another sophisticated technique is the use of raw file systems, with which the database bypasses the underlying operating system to access disks directly.

Scalability. It's easy to run a single database instance on a single machine with a moderate amount of data. When your needs grow beyond this simple setup, however, you'll need software that can grow with you.

It's not uncommon for enterprises to host databases that are several terabytes in size. Typically, open-source databases handle large amounts of information poorly, sometimes limiting individual records to just a few kilobytes. If you find you need more than a single server, you'll want a database that supports replication, as well. There's no easy way to duplicate an open-source database across several machines and keep the machines synchronized.

Reliability. If you need 100 percent uptime, commercial packages offer the kind of failover solutions that will let you sleep at night. The most advanced systems allow hot standby servers to take over immediately if the primary database server fails. The end user need never know there's a problem. Also, commercial databases allow hot backups, where the information can be archived while the database is still running, and point-in-time recovery, which lets administrators reconstruct the data store exactly as it was immediately before a catastrophe.

Programmability. Though SQL is an industry standard, most database packages expand beyond the basics with advanced query capabilities like outer joins and subselects. Oracle's PL/SQL is one example of such a sophisticated query language, though most vendors provide something comparable. Oracle has recently taken database programming a step further, however, offering native support for Java code inside the database itself.

Support. Most support for open-source software is peer-based, in the form of newsgroups and mailing lists. Despite commercial support for open-source databases, many businesses still prefer the reassurance of a large corporate services department backing their product of choice. In this area, vendors like Oracle or IBM can't be beat. Still others would settle for a decent manual. It won't take more than a quick scan of your local shelves to estimate the number of books written about Oracle, versus those on PostgreSQL. If RTFM is your mantra, it may be worth spending extra dollars for commercial-grade documentation.

—Neil McAllister, Web Techniques Technical Editor



Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.