We have similar databases running on MySql, Postgresql and Firebird. One of the reasons for moving away from MySql was the fact that the UTF8 support didn't work properly. I cannot remember the details, but it had to do with non-Latin-1 data, such as text in Czech or Russian. In some situations MySql refused to correctly identify equal UTF8 strings. You put in some word that you cannot retrieve again, bleh!
Furthermore, we've never understood how the user permissions are supposed to work in MySql (we always end up frantically running all possible variants of the GRANT ALL command).
We moved to Postgresql, which worked a lot better. Now we've started using Firebird, that also seems like a very nice piece of software.
Here is list of a few things I've noticed when moving from Postgresql to Firebird:
* Firebird lacks built-in support for regular expressions. (We make heavy use of complex string searches of natural language data. If we hadn't got help from an expert, who helped us compile some user defined functions, UDF:s, for this purpose, this would have been a show-stopper.)
* Postgres' psql command line tool is better than Firebird's isql(-fb). (If you are a Windows user, see Carlos' comment below)
* Firebird database files grow and grow. This is true even if you delete data. You have to manually back-up and restore a database to reclaim disk space. Maybe this is not a great problem in normal usage, but I noticed that the databases I use for running test suits against keep growing, though the test database itself is quite small (and the data are cleared out between test runs). [Update: Please notice that long-time users of Firebird insist that this is not a problem. See Carlos', Sergio Marcelo's and also Michal's comments below.]
* I've never had any luck installing Firebird from a Debian package. I have had to do a manual install to get it to work
* Firebird has a useful GUI, FlameRobin, that let's you inspect and change your databases. FlameRobin comes with an editor useful for writing/editing stored procedures. The editor has code completion, that helps you with suggestions of table and column names and the like as you type.
* Firebird has a nice way to manage database files: all tables of a database end up in a single file, that you can name whatever you like, and put wherever you like.
* It appears to be easier to find useful documentation for Postgres than for Firebird (but Firebird does have a nice FAQ site)
Answer to Darius Damalakas comment below: I'm not the right person to comment on the performance of the different DBMSs. However, we haven't noticed any significant difference in performance between MySql, Postgresql and Firebird. Currently, the bottlenecks in our software are to be found outside of the databases, so the performance of the individual DBMSs has not been a big concern. They're all fast enough.
Firebird does seem to be a snappy system, and I would be surprised to find it to perform less good than Postgres.
So far, the only difference in features that has mattered to us, is the lack of built-in support for regular expressions in Firebird (see above). In all other respects (of importance to us), the functionality of Postgres and Firebird seems equivalent.
Update: Support for regular expressions is scheduled for the upcoming 2.5.0 release of Firebird.
Update: In response to an anonymous (and rather critical) comment, mariuz has added some useful links in a comment below.
Update: In a comment below, Michal has posted some information on DatabaseGrowthIncrement, taken from the release notes of Firebird 2.1.
Showing posts with label mysql. Show all posts
Showing posts with label mysql. Show all posts
Tuesday, 18 March 2008
Firebird vs Postgresql
Labels:
firebird,
mysql,
postgresql,
utf8
Subscribe to:
Posts (Atom)