Apples and Oranges: A Linux DBMS Comparison
Introducing the Series
When it was first suggested to me that I write a comparison of database-management systems for LinuxPlanet, I shook my head. I have never done such a comparison. But then, I thought: why not? Maybe a fresh, naï¿½ve approach isn't all that bad. So here you have it: a fresh-eyed look at the wild world of Linux DBMS systems, done in four parts.
The database managers compared here are free or cheap to license, and they run on all levels of Linux systems, from the lowest-end hardware to high-end multiple-CPU servers. And they are widely used in production systems all over the world. For this comparison, I put myself in the situation of someone running typical Linux boxes, powering an everyday DBMS.
I'll be looking at:
I'll begin with a discussion of the installation and configuration of these three database systems; then I'll proceed, in Part II, with the design of a small database in SQL, pointing out the difficulties and differences I encountered trying to make the DBMS swallow it. I'll also explain the coding of a program that will perform various real-life actions on the database, such as adding data and generating reports, while discussing the various differences of the databases in the process. This client will be implemented in C for all three DBMSes. To do this, I must learn not only the SQL APIs of all the systems, but SQL, too. If nothing else, this will surely be fun to watch.
Part III will contain some actual benchmarks, as a bonus. I have had the dubious pleasure of watching endless debates about database benchmarking on Linux newsgroups, so I will only time the performance of the client doing random stuff, both when done in one run under ideal conditions and when done via several concurrent processes. At that time I'll have already covered lots of differences between the DBMSes, so you should have a good idea of their strengths and weaknesses.
The final part will be what you'll all be waiting for: the conclusion, covering feature, implementation, API and performance differences between the DBMSes.
But now, grab your towel for a venture deep into the wonders of homebrew database management.