Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Top 5 Reasons People Dismiss PostgreSQL

ScuttleMonkey posted more than 8 years ago | from the dispell-rank-2006 dept.


Jane Walker writes "In an effort to dispel some of the FUD surrounding this impressive product, this article puts forth several of the most commonplace reasons for a user to dismiss PostgreSQL." From the article: "While PostgreSQL's adoption rate continues to accelerate, some folks wonder why that rate isn't even steeper given its impressive array of features. One can speculate that many of the reasons for not considering its adoption tend to be based on either outdated or misinformed sources."

cancel ×


Sorry! There are no comments related to the filter you selected.

ha ha (-1, Troll)

Anonymous Coward | more than 8 years ago | (#14921514)


fuck da jewish people

Availability (5, Insightful)

Anonymous Coward | more than 8 years ago | (#14921520)

MySQL is pre-installed by most webhosts, and does the job for most tasks.

First post?

Other things... (5, Insightful)

Saeed al-Sahaf (665390) | more than 8 years ago | (#14921549)

Indeed. And once most people are familure with MySQL and the various tools and language support, there tends to be little reason to switch. PostgreSQL is a better database product, but many (all?) of the features that it's cheering section continue to tell us all about whenever the issue comes up, are simply not ones that the majority of MySQL users want or need. Maybe PostgreSQL fans should target Oracle usres.

Re:Other things... (5, Insightful)

jadavis (473492) | more than 8 years ago | (#14921682)

What about consistency? I talk to people all the time who are befuddled by MySQL's lax type checking. I know it's been hashed out before on /., but February 31st is NOT a date, and does not belong in any column named "date".

If your application has an bug and inserts an invalid date, you don't want that error to cascade to another application (or another part in your application) and cause more errors down the line. By the time you detect the bug, it could be almost impossible to determine the source of the bug.

Putting consistency checking in application A doesn't prevent application B from inserting invalid data. And when application A reports an error (due to it's wonderful in-application consistency checking), now you don't know what caused the error. It's long past the time that you can get meaningful state information from application B, at most you have database auditing tools that tell you "application B did it", but that's more easily implemented in PostgreSQL as well (triggers).

And I'm not talking about super-advanced users only. I am talking about everyone who wants to catch the error early when they have the most possible information. Everyone who's just a programmer who wants to be able to trust that data from the database comes in a meaningful form. Everyone that just wants the database to do either what they expect, or throw an error.

Re:Other things... (1)

consumer (9588) | more than 8 years ago | (#14921686)

In addition, MySQL has just about everything that a normal user could ask for from a database. The feature disparity is just not very large anymore.

Re:Availability (1)

JordanL (886154) | more than 8 years ago | (#14921737)

Exactly what I was thinking. I know mysql, mysql is already available on my host, mysql is fast and easy, and mysql does all the things that I need a database to do...

Why would I ever use Postgre?

obviously (-1, Troll)

Anonymous Coward | more than 8 years ago | (#14921531)

coz mysql kicks ass!!

let comparison begin....again!!...

The author, Jason Gilmore... (4, Informative)

tcopeland (32225) | more than 8 years ago | (#14921536)

...coauthored an excellent book on PostgreSQL [] that was just published by Apress. The title makes it sound like it'd be a bit light, but it takes you all the way up to writing stored procedures, writing C programs that hit the database, using all the utilities, and so forth. I'm using PostgreSQL as a Jabber backend [] and the book has already proved useful.

Too bad they didn't talk about hitting PostgreSQL from Ruby... but since most folks are using ActiveRecord to do that, it's probably not a big deal. And if you use the Ruby/C client [] , it's quite snappy.

Re:The author, Jason Gilmore... (-1)

Anonymous Coward | more than 8 years ago | (#14921553)

Parent contains referral link. Here is the clean link []

Re:The author, Jason Gilmore... (0)

eln (21727) | more than 8 years ago | (#14921618)

How odd that the author of this article is has written books about postgres, and apparently makes at least some money off of it. This article was little more than a collection of straw men. None of the issues presented are issues that I've heard people use to explain why they won't use Postgres.

Re:The author, Jason Gilmore... (3, Informative)

jadavis (473492) | more than 8 years ago | (#14921695)

Lack of support is certainly a reason that concerned many companies in the past.

Now that Sun has 24x7 support for PostgreSQL, that issue has been soundly put to rest.

Crystal Reports (1)

barik (160226) | more than 8 years ago | (#14921537)

Really? Has anyone actually gotten PostgreSQL to work with Crystal Reports? The article claims this, but I've run into all sorts of issues trying to get data from PostgreSQL into Crystal relating to types and stored procedures. Crystal Reports themselves won't tell me if they support PostgreSQL, and I've tried numerous times to call them on it.

Re:Crystal Reports (1)

NeuralAbyss (12335) | more than 8 years ago | (#14921560)

Works for me via ODBC with both raw tables and views.

Re:Crystal Reports (1)

barik (160226) | more than 8 years ago | (#14921613)

It's my understanding that raw tables only work if they are in the public member schema. Stored procedures look hideous. And why should I be forced to use legacy ODBC, when there are far far better ways to connect to databases these days? PostgreSQL is a great database, but it's Enterprise support really isn't there yet. Close, but not quite there.

Re:Crystal Reports (0)

Anonymous Coward | more than 8 years ago | (#14921689)

And why should I be forced to use legacy ODBC, when there are far far better ways to connect to databases these days? PostgreSQL is a great database, but it's Enterprise support really isn't there yet.

I don't see how not being as easy to use with Crystal Reports makes it less "Enterprise". That's actually the fault of the makers of Crystal Reports for not supporting it natively, if ODBC is the only option. Personally, I see the fact that it isn't supported natively by the horrible abomination that is Crystal Reports to be a good thing (I have to use it at work occasionally, and I would take any excuse not to have to use it again). If I really must use a reporting tool, I'll be using JasperReports or maybe BIRT, which support PostgreSQL easilly since all they need is a JDBC driver. Personally, I'm writing all my new reports in JasperReports, and will be eventually porting the existing Crystal Reports we have to Jasper at some point.

Re:Crystal Reports (0, Troll)

Billly Gates (198444) | more than 8 years ago | (#14921586)

Microsoft owns crystal reports. that should tell you alot.

Like the other guy said use odbc. Too bad the native windows port of postgresql is still lacking and requires cygwin. support would be nice.

Re:Crystal Reports (2, Informative)

MagikSlinger (259969) | more than 8 years ago | (#14921607)

Microsoft owns crystal reports.

No, they don't. It's owned by a French company called Business Objects [] . Microsoft just licensed a stripped down version of CR for VB6.

Re:Crystal Reports (0)

Anonymous Coward | more than 8 years ago | (#14921615)

Actually, Postgresql no longer uses Cygwin on Windows.

Re:Crystal Reports (1)

jbplou (732414) | more than 8 years ago | (#14921620)

Microsoft owns crystal reports. that should tell you alot.

Where did you come up with that? Crystal Reports is owned by Businss Objects S A stock ticker symbol BOBJ.

psqlODBC - PostGreSQL's ODBC Interface (0)

Anonymous Coward | more than 8 years ago | (#14921601)

Crystal Reports can connect to an ODBC data source and psqlODBC is the official PostgreSQL ODBC Driver [] .

The name (4, Interesting)

smitty_one_each (243267) | more than 8 years ago | (#14921544)

"Postgre" is three times as long as "My".

Then again, the P in LAMP has always been about the scripting language, not the database.

MySQL and PHP have been quite the dynamic duo of the internet.

That, and PostgreSQL took longer to have a native Lose32 port.

The fact that you can bring Python right into PostgreSQL for good stored procedure justice seems to go unnoticed.

Re:The name (3, Insightful)

XxtraLarGe (551297) | more than 8 years ago | (#14921638)

This is exactly what I've thought. I'm an occasional PHP/mySQL coder, but I haven't even approached PostgreSQL. Partly because mySQL works for me, and partly because I can't figure out what the Postgre part is supposed to stand for. It's not a word, it doesn't sound like an acronym, is it the creator's name? The name is pretty awkward, and that can be a fast turn-off for many people. The OSS community might help PostgreSQL gain wider interest/acceptance/adaptation with a simple name change. I'm not trying to troll here, I'm trying to help explain the apprehension from a casual coder viewpoint.

Re:The name (5, Informative)

ZaMoose (24734) | more than 8 years ago | (#14921736)

The inventors of Ingres left the company formed around it when it was bought by Computer Associates and started developing the successor to Ingres, hence: Postgres. Make sense?

Re:The name (1)

rossifer (581396) | more than 8 years ago | (#14921744)

Most people pronounce the name "postgres" (with a silent QL). A brief history of the name is here [] .

Even more briefly: Starting in 1986, there was a database named POSTGRES developed at Berkeley by a team led by Professor Michael Stonebraker. In 1994, Andrew Yu and Jolly Chen strapped a SQL front-end on the database and called the result "Postgres95". Since that name wouldn't last very long, it was renamed "PostgreSQL" in 1996 and it's stuck since then.

If you say "postgres" in most dev shops, they'll know what you mean (yes, even if they're using something else).


Re:The name (0)

Anonymous Coward | more than 8 years ago | (#14921747)

PostgreSQL is descends from Ingres, both of which were projects at Berkeley. So, the name comes from that it's Post-Ingres... Postgres... An SQL interface was added to the project, so the name was changed to PostgreSQL to reflect this.


Re:The name (1)

robbak (775424) | more than 8 years ago | (#14921763)

Where postgres comes from:
PostgreSQL, originally called Postgres, was created at UCB by a computer science professor named Michael Stonebraker, who went on to become the CTO of Informix Corporation. Stonebraker started Postgres in 1986 as a followup project to its predecessor, Ingres, now owned by Compter Associates. Postgres' name thus plays off of its successor (as in "after Ingres"). Ingres, developed from 1977 to 1985, had been an exercise in creating a database system according to classic RDBMS theory. Postgres, developed between 1986-1994, was a project meant to break new ground in database concepts such as exploration of "object relational" technologies.
I did go to, but was bombarded by Too Much Flash. You have been warned.

Re:The name (1)

edwdig (47888) | more than 8 years ago | (#14921775)

Ingres was an early database project. IIRC it was designed at Berkeley. Various modern databases, such as Sybase and MS SQL Server, have their roots in Ingres.

Postgres was a fork of Ingres. I'm not sure the history of how it started.

Postgres was renamed/forked (not sure which) to PostgreSQL when it was changed to use SQL as the query language.

Re:The name (0, Offtopic)

mnemonic_ (164550) | more than 8 years ago | (#14921724)

I cannot believe the parent got modded to +4.

Heard it through the grapevine (1, Informative)

Neo-Rio-101 (700494) | more than 8 years ago | (#14921548)

Most complaints I hear about it have to do with that vacuuming thing and clustering issues. ...and speed of course. Never used PostgreSQL though *ducks*

Re:Heard it through the grapevine (1)

pebs (654334) | more than 8 years ago | (#14921707)

Most complaints I hear about it have to do with that vacuuming thing and clustering issues. ...and speed of course. Never used PostgreSQL though *ducks*

The vacuum thing is not so much an issue with recent versions as there is an option to setup automatic vacuuming.

Web developers... (5, Interesting)

schon (31600) | more than 8 years ago | (#14921551)

I think first and foremost is that is web developers who don't understand SQL, and so go about happily re-inventing its functionality in their web apps.

99% of the problems that web developers face have already been solved for them, but they think that SQL is just a data dump, and thus see no reason to use Postgres, because they think that MySQL does everything they need. In reality, their apps would be faster to write and easier to maintain if they used SQL features.

It's kind of like perl-syndrome, but on a larger scale.

Re:Web developers... (0, Offtopic)

sheister (614440) | more than 8 years ago | (#14921590)

WHAT? You're crazy, schon, web development is all about databases, and I would guess that at least half of all web development has some sort of SQL backend doing at least some of the work. What web developers are using flat files for data storage on their sites? If it's not static pages, then SQL is bound to be invloved. I think the web community has embraced SQL out of necessity, not backed away from it in favor of some other backend solution.

Re:Web developers... (4, Insightful)

syphax (189065) | more than 8 years ago | (#14921622)

I think what the grandparent meant is that a database can do more than handle SELECT, UPDATE, and INSERT queries, and that web apps that use DB backends contain a lot of code for functionality that could have been handled more efficiently and cleanly by the DB itself.

Ironically, I think your post kind of validates the grandparent, in that you seem to implicitly be thinking of SQL databases as little more than a better place to store data than a flat file.


Re:Web developers... (0)

Anonymous Coward | more than 8 years ago | (#14921600)

What the hell is perl-syndrome?

Re:Web developers... (4, Funny)

ttfkam (37064) | more than 8 years ago | (#14921646)

I could tell you, but it'll take me a while to explain it in just one line.

Re:Web developers... (4, Interesting)

schon (31600) | more than 8 years ago | (#14921709)

perl-syndrome is the nasty habit that perl programmers get into (some might call it a mild case of brain damage), wherein when presented with a problem, say "oh, that's easy - it will only take me 10 minutes to whip up a perl script" rather than using an existing tool that does the same thing, easier, with much less hassle and opportunity for error.

An example:

Newbie-admin asks "how do you make your syslog files go to a different machine?"

Perl-syndrome admin says "oh, that's easy - just write a quick perl script to tail the log files you want, then open a TCP connection to a perl script on the remote machine to write the data. I could write that in 15 minutes!"

Experienced-admin says "Why don't you just configure syslog to send the files to the remote machine? It takes all of 5 seconds."

perl-syndrome admin "TMTOWTDI!"

(and yes, this exchange *really* happened, but it's not the only one - I've seen lots of other examples of guys with perl-syndrome posting perl scripts that could be done much easier with things like sed and awk.)

Re:Web developers... (1)

consumer (9588) | more than 8 years ago | (#14921673)

Since MySQL has a very complete set of features at this point, it almost certainly DOES do everything they need. If they aren't using advanced SQL features, you can't blame it on MySQL anymore.

Re:Web developers... (1)

felix9x (562120) | more than 8 years ago | (#14921700)

You are not accurate at your assumptions. I work with mysql everyday. I know the limitations and I know why the company that I work for picked to use mysql instead of postgres. First and formost mysql is fast for 95% of what our webapps do. We very often join across many tables for front page type stuff and its fast. So if you dont want your users to sit there wait for page to load ...

On the other hand having triggers would have been gold. But hey mysql5 now has even those. We could use referential integrity but its not too essential if you code things carefully.

Only 2 Reasons (-1, Redundant)

Anonymous Coward | more than 8 years ago | (#14921552)

1. It has a bad name
2. There is MySQL (which has a shorter and better name)

Re:Only 2 Reasons (1)

Cobralisk (666114) | more than 8 years ago | (#14921589)

Exactly how do you pronounce it anyway?

Re:Only 2 Reasons (1)

Anonymous Coward | more than 8 years ago | (#14921611)

From what I understand "Post-gres-que-ell"

Nobody's heard of it (4, Interesting)

Dlugar (124619) | more than 8 years ago | (#14921558)

The biggest reason I've found personally why people don't use postgres is because they've never heard of it. Everybody and their dog has heard of mysql, but I've never found somebody who knows about postgres who isn't actually using it. mysql, for whatever reason, just has better marketing.

Why that is I'm not entirely sure, since ever since I discovered postgres, mysql has been relegated to the role of "use-only-when-a-stupid-web-app-can't-use-anything -else". If I want a toy database, I'll use sqlite. If I want a real database, I'll use postgres. There really isn't much room in between the two.


Re:Nobody's heard of it (2, Funny)

TekPolitik (147802) | more than 8 years ago | (#14921743)

I've never found somebody who knows about postgres who isn't actually using it.

Of course! PostgreSQL is so good that when people learn about it they switch to it. Hence anybody who knows about PostgreSQL uses it.

Ever since I discovered postgres, mysql has been relegated to...


But how can I get a kickback by buying Postgres? (0)

Anonymous Coward | more than 8 years ago | (#14921559)

Perhaps I have to fill out a form on the website?

Interesting article, but not the reasons I hear (5, Interesting)

dskoll (99328) | more than 8 years ago | (#14921563)

I don't hear those reasons when people dismiss PostgreSQL. The ones I hear are:

  • VACUUM is a pain. It's true that VACUUM is annoying, but later releases (especially 8.0 and 8.1) make VACUUM much more tolerable; we have customers whose databases are busy 24/7, and although the load does go up during a VACUUM, the database is still perfectly usable.
  • PostgreSQL is slow. That was true, but the 8.x series has improved performance dramatically.
  • PostgreSQL is hard to install and administer. Really, I think this is a matter of taste. If you are used to MySQL, then yes, there is a learning curve. OTOH, I'm used to PostgreSQL and find myself having to learn MySQL, and MySQL feels just as weird and unintuitive to me as PostgreSQL might to a long-time PostgreSQL user.

Re:Interesting article, but not the reasons I hear (4, Funny)

The Master Control P (655590) | more than 8 years ago | (#14921584)

OTOH, I'm used to PostgreSQL and find myself having to learn MySQL, and MySQL feels just as weird and unintuitive to me as PostgreSQL might to a long-time PostgreSQL user.
So, what you're saying is... PostgreSQL will be strange and unintuitive, no matter what database you prefer and use? :P

Re:Interesting article, but not the reasons I hear (0)

Anonymous Coward | more than 8 years ago | (#14921705)

Clustering? Oracle has a product called "parallel Oracle": the idea is that you have N nodes (typically up to four or so) hooked up to shared storage (typically fibre channel), each node running an Oracle instance. The application connects to one of the instances; any changes made by that application are propagated across to the other nodes. Locks propagate too, so if you lock a table for reading, any writes to that table are blocked until the read lock is released, regardless of whether the write is on the same node as the read.

Granted, it's not a very common installation. I used it in my first job, and the guys who setup the Solaris systems to do it commented that it was the first time they'd seen the PDB setup on Solaris clustering, whereas they'd seen plenty of HA setups. Sun had to fly a guy out from the UK (I'm in Australia) to do the training on it. (As an aside, the shared storage was managed using Veritas Volume Manager, and Oracle used the raw volumes presented by Veritas.)

I'd be very surprised if PostgreSQL had anything to match that.

Re:Interesting article, but not the reasons I hear (2, Informative)

jadavis (473492) | more than 8 years ago | (#14921746)

VACUUM is a pain.

Use autovacuum. The current version has autovacuum built into the backend. How much easier can it get? And it shouldn't interfere to much with concurrent connections.

PostgreSQL is slow.

It gets this reputation if you run a MySQL app on top of PostgreSQL because MySQL does some types of things faster. However, I think you'll find in many cases the application will have superior performance to the MySQL version if you write PostgreSQL specific code in the application's data access layer.

Number 1 (missing) reason (4, Insightful)

malraid (592373) | more than 8 years ago | (#14921564)

Their database (MySQL, Access, Oracle, whatever) is working for them good enough to justify switching. Me? I'm using PostgreSQL, and I won't switch, even though Oracle now has a free version. Too much work to fix something that's not broken. And while I might never be able to use MySQL in my main project because it lacks some features I really need, it's good enough for lots of people.

Re:Number 1 (missing) reason (1)

sheister (614440) | more than 8 years ago | (#14921597)

just curious, what features do you need that MySQL 5.x doesn't have?

Re:Number 1 (missing) reason (2, Informative)

malraid (592373) | more than 8 years ago | (#14921651)

Namely notifications. This allows me create a very "interactive" aplication.
To a lesser extent, table inheritance, although I could probably work something out with triggers and a materialized view (but it would be a bigger pain) . Also triggers in MySQL must be done with normal SQL I thinks, while on PostgreSQL I can use a procedural language to make a more complex trigger (There's probably some workarounds for this too, but still... ) There used to be others, but I think they have closed the gap.

Re:Number 1 (missing) reason (0)

Anonymous Coward | more than 8 years ago | (#14921671)

I have databases in Sybase, Access, and PostgreSQL. Why all 3? Because once I got it working there wasn't a reason to switch. Someday I'd like to put everything in one brand of database. Someday I'd like to win the lottery, too, to have the time to do it.

rep-lih-kay-shun (3, Interesting)

buddha42 (539539) | more than 8 years ago | (#14921565)

None of those five had anything to do with why we can't use it. Postgres's replication options are niche afterthought hacks. This immediatly makes it an unacceptable choice for anyone who's reliability or performance needs exceed that of one server. Which is pretty much any system where the cost of downtime is non-trivial.

Re:rep-lih-kay-shun (1)

jadavis (473492) | more than 8 years ago | (#14921778)

Postgres's replication options are niche afterthought hacks.

Kind of like how Firefox, Opera, &etc. are "niche afterthought hacks" on top of Linux? (After all, aren't browsers supposed to be integrated into the OS?)

More accurately, PostgreSQL's amazing extensibility, which was planned since the beginning, allowed it to employ a variety of replication solutions without hacking up the base server. This means that if you need a new replication feature, you don't have to wait for the next release of the entire server, or upgrade anything.

Reason #6 (0)

Anonymous Coward | more than 8 years ago | (#14921569)

Reason #6: Mysql

Because PostgreSQL is not MySQL (0)

zanderredux (564003) | more than 8 years ago | (#14921572)

My top demotivator for the change is the inherent weird feel of using PostgreSQL. Call me flamebait, but the problem is that it is just not MySQL.

For instance, database manipulation is done directly via the command line (yes, screw the shiny GUIs). You run a program that somehow sets the environment and retains the password somewhere establishing a session or something like thant, and then you use other programs that take SQL as parameters. Table creation from the command line is downright unnatural. In MySQL you have a contained enviroment, the MySQL client, and you have special (non-standard) SQL to deal with the database. It took me almost a week to get this concept difference and it was very frustrating.

Some concepts also do not translate easily for MySQL users. Postgres terminology for certain things is completely different (academic, some might say). There's a learning curve, for sure.

For people coming from Clipper, DBase and Access, MySQL "feels" more natural than Postgres. If they're given a choice, they'll stick with MySQL until someone comes up with a book like "Postgres for MySQL users". Until then, oh well.

Re:Because PostgreSQL is not MySQL (1)

Forbman (794277) | more than 8 years ago | (#14921716)

My top demotivator for the change is the inherent weird feel of using PostgreSQL. Call me flamebait, but the problem is that it is just not MySQL.

Thank the gods for that. Coming to Postgres from any other SQL database is nice. The goofy MySQLisms just plain blow.

Access, MySQL "feels" more natural than Postgres

Bzzzt. Wrong. MySQL feels about as unnatural and artificial as SQL does in Foxpro if you've used Access, which is far more ANSI-89 and ANSI-92 compliant than MySQL is.

"Postgres for MySQL users".

There is at least one Sourceforge project where someone is writing "MySQL for Postgres": rewriting most of the mysqlisms in Postgres' stored proc language. At least he's not trying to reimplement MySQL's great ACID compliance, though.

Love the PSQL interface - ##%&@ the GUIs I say (1)

funkdancer (582069) | more than 8 years ago | (#14921729)

Funny. Being a ColdFusion developer (since 1996..), I'm mainly a windows person, with a bit of Mandriva XP - I run a Linux server at home with a few little things on it. Now, the psql application is one of top reasons why I like postgres, which I've been using with CFMX for the past couple of years.

For me, the ability to quickly document tables with the \d function is just awesome - extremely quick, no messing around. So I much prefer running a putty window with PSQL to MS' enterprise manager.

One "stumbling block" was that Postgresql required installation from source on Mandriva 2006 / Silver club licence, whereas mysql was prepackaged. I was supposed to be able to use some RPMs but it was a RPITA and I couldn't get it to work - just tons of conflicts.

It was sort of nice to do the from source installation though; it required a bit of research and will probably help those linux skills coming slowly along. It all worked well; not a single hitch with it either. Only thing is that Coldfusion people still need to use the latest 7.x JDBC libs - the newer ones won't work.

Re:Because PostgreSQL is not MySQL (1)

NuShrike (561140) | more than 8 years ago | (#14921732)

Postgres is very natural coming from Oracle. Table creation by the command line through Oracle's SQL*Plus and PostgreSQL's similiar psql is "how it has always been done" before MySQL.

I'm tired of Jane Walker posts. (-1, Flamebait)

Anonymous Coward | more than 8 years ago | (#14921581)

Anyone else tired of and Jane Walker posts? All three of the articles posted by her today kinda sucked.

Its simple (0)

Anonymous Coward | more than 8 years ago | (#14921588)

"Better" is a pretty subjective term, clearly it wasnt "better" when it came to appealing to a lot of people like mysql was. I suspect that the reason mysql has caught on so well was because the learning curve was so low. Postgres always had more features that DBA's cant live without, subselects, triggers, stored procedures, etc. And yet mysql still caught on faster, so the better question here was really what does "better" mean.

PostgreSQL lost early on (0)

Anonymous Coward | more than 8 years ago | (#14921592)

Nowadays PostgreSQL is a full featured database, better and more functional than MySQL in some areas. However, they lost the race early on. They were slow to develop and the early versions didn't work that great.

I like to compare it to Unreal versus Quake. Unreal was delayed for years while they created this VM and scripting language and made all this object-oriented ivory tower crap. Meanwhile there where several Quake versions which if you look at the code are very hackish but worked very well and had awesome performance (JC is not an architect, he's a code monkey and a good one at that). The Unreal engine never really took off until just in the last few years (combination of the end of Quake and finally creating a fun slightly different game where the Unreal engine can do it's thing [UT2003 and up]). Lots of wasted money there with the Unreal engine, I wonder if they have even broke even from the money dumped into it. And the problem is, nowadays the engine looks very dated. All that work that took too long and now the technology has changed.

#1 Reason (5, Insightful)

kingmundi (54911) | more than 8 years ago | (#14921593)

It has to do with mindshare and previous history. Way back in the day... 1997, postgres was difficult to setup for some people. It was not the default choice included in many setups at ISPs. If you wanted to have an interactive web application at an ISP, on a unix machine, the most common option was MySQL. (On a windows machine it would be an ODBC connection to an access database, or a MS SQL server) Once something has achieved a significant mindshare and some momentum it is difficult to overcome. (But not impossible, especially if you do a better job, just takes time)

Or this? (3, Interesting)

Ex Machina (10710) | more than 8 years ago | (#14921595)

Speed isn't everything but some of these are insane [] .

Re:Or this? (5, Insightful)

rtaylor (70602) | more than 8 years ago | (#14921684)

Do you really only have one user using the database at any given time? If you do only have one user, speed probably doesn't matter at all.

Benchmarks like that should be run with a couple of hundred active users all doing different things (mix of updates, insert, deletes, and selects) -- a real world use-case.

You will quickly find that scores change.

We had a MySQL versus PostgreSQL battle once. The MySQL people put together a benchmark showing MySQL was nearly 10 times faster. The benchmark was a single user going through the steps.

We then took the exact same thing and put Apache in front and benchmarked with 5 active users -- now they were about even. At 10 users PostgreSQL was about 5x faster. At 100 users MySQL was unable to finish the test. PostgreSQL was serving each of the 100 users at a rate comparable to how it dealt with 10 active users.

Benchmarks for benchmark sake is useless. Benchmarks that model your actual use case are quite valuable.

I know, I know! (4, Funny)

Trogre (513942) | more than 8 years ago | (#14921599)

Why do people dismiss PostgreSQL

It's because LAMP sounds so much cooler than LAPP!

Re:I know, I know! (0)

Anonymous Coward | more than 8 years ago | (#14921626)

It's because LAMP sounds so much cooler than LAPP!

I've been interested in a lot more LAPPs than LAMPs. My own included.

Re:I know, I know! (1)

Nimey (114278) | more than 8 years ago | (#14921630)

'Ere! I've got Finnish ancestry. :-)

Its like windows (1)

Billly Gates (198444) | more than 8 years ago | (#14921603)

Yes but it doesn't suck as MUCH as it did!

I want to learn database programming for my java course and for personal growth. I wanted to learn postgresql as I was aware for years its a real database unlike mysql 3.x. But 5.x is about finished and most distro's come with 4.x which come with alot of features postgresql have.

But for me windows support and mysqladmin are easy for non mission critical stuff like my home pc. So I am starting with mysql and I will learn postgresql by this summer.

Personal .02 (3, Interesting)

cliveholloway (132299) | more than 8 years ago | (#14921608)

At OSCON, the Postgres people had postcards on their table of whatever their mascot is (I forget) roasting a dolphin on a spit over a fire.

Funny yes, but not something that inspires one to take them seriously.

Ironically, they have a better product on many levels, but that kind of zealotry just plain puts me off.

Fulltext Indexes (4, Insightful)

inio (26835) | more than 8 years ago | (#14921609)

I have pretty simple requirements for a database, I don't need triggers, stored procedures, or any of that stuff. What I need for web applications is a database that I can efficiently search, and that means fulltext indexes. Sure, there's plugins for Postgres that add fulltext indexes, but they require ungodly complex setup and tuning. With MySQL it's two keywords.

Why I'd rather not use PostgreSQL (1, Interesting)

pestilence669 (823950) | more than 8 years ago | (#14921619)

I was a big fan... until I needed to use PostgreSQL 7 for a real (commercially available) product. To call it slow would be an abomination of the word. Slow doesn't even begin to describe b-tree insert times. Yes, I tuned the engine and dropped indexes at the appropriate times. Yes, my data structures were relational. Yes, this contradicts some published benchmarks. My use is real world and in reality, PostgreSQL is slow... and a bit buggy.

Nested parentheses in SQL can cause an engine crash. " like ... (SELECT A INNER JOIN B) INNER JOIN ..." But the crashing is tolerable. Hand-holding the query optimizer is not. Quite often, the optimizer gets the query plan wrong. Sending special commands to disable internal features is often the only resort.

While it's true that PostgreSQL is more database than most corporate weenies need, it falls down in moderate write environments. It's best used for systems that write data very infrequently, otherwise it fragments quickly. The only solution to table and database fragmentation is dump & reload.

Vacuum is asinine. Any command that needs to be run periodically under threat of complete and total data corruption should not be. That's right. Only PostgreSQL makes you vacuum or else your transaction ids overflow. This is modern? I'm shocked.

PostgreSQL is to Oracle what Gimp is to Photoshop

BullShit (5, Funny)

slashpot (11017) | more than 8 years ago | (#14921629)

#1 because we're lazy ass sys admins who learned mysql first and don't want to bother learning another software package that does more or less the same shit . sad . true .

Because.... (-1, Flamebait)

Anonymous Coward | more than 8 years ago | (#14921631)

......there are more dumb people [] than smart people [] in the world.

Basic marketing (2, Interesting)

murderlegendre (776042) | more than 8 years ago | (#14921639)

Stupid as it sounds, I don't think most people can intuitively pronounce "PostgreSQL" (I know I can't). It's much easier to say "My SQL" and not risk sounding (or feeling) like a dunce.

Check with the marketing folks - this kind of thing is really important when it comes to general acceptance. When it rolls easily off of the the tongue, it's more likely to be discussed.

Re:Basic marketing (1)

Forbman (794277) | more than 8 years ago | (#14921679)

So, you just call it "Postgres" then.

At least this is better than being unable to say "SQL Server", and calling it simply "SQL" instead.

Re:Basic marketing (0)

Anonymous Coward | more than 8 years ago | (#14921752)

whats hard about it? You pronounce it "post" - "gres" - "Q" - "L". The spelling is due to its history. Quite interesting actually, short story is that it was originally "ingres", and SQL was added much later.

There are other reasons (5, Informative)

Martin Foster (4949) | more than 8 years ago | (#14921640)

PostgreSQL is not necessarily the easiest beast in the world to get going. A few years back, I converted a chat/gallery portal system Ethereal Realms ( [] from MySQL to PostgreSQL, since at the time it was felt that features like proper referential integrity and stored procedures would really pay off.

The code was shortened considerably, was more stable overall and the OpenBSD port compiles properly without threading issues. However, despite all of those advantages and the database server being on a bigger server with more memory performance suffered considerably.

Want a good starting place in settings? The default documentation does little if anything to really help you on the matter, its like trying to learn the English language solely through the use of a dictionary.

There are tutorials available, some out of date and while Usenets can certainly help, you'll get wildly varying answers because some of the configuration options are more black magic then science. Rather makes it hard to get started when you don't know exactly where to start or how increasing a value will really affect performance as a whole. You are expected to load test the database before implementation which is not always possible for small hobby sites, and it can test patience.

With MySQL you had a few configuration files designed for use in various environments and it would show you how certain settings had changed. This is not the case with PostgreSQL in fact 32 connections is the default which is painfully inadequate for most peoples needs when dealing with a site. I'd personally love to see an application that detected your memory and other settings and came out with sane settings, at least with such an option you'd have a place to start.

Queries were slow, but then that was supposed to be MySQL's strength. Solution? Run explain/analyze on everything and tweak the hell out of every single query being generated. If you don't necessarily understand how the query is analyzed and run by PostgreSQL then there must be something wrong with you!

Vacuum? That concept alone can throw people in for a loop, especially when designing a system which is meant to be run by people with no technical experience. So you have to code in a serious amount of intelligence into the application or rely on Auto-Vacuum (not available at the time) which can slow performance down even more.

Because of vacuum, I had to design a process for the site to lock out all users. This had never been required under MySQL and took a while for the users to get used to. In certain cases, if the lock-out failed, the vacuum would cause permanent locks in tables which would quickly pile up scripts on the webserver side leading to extreme high loads or just crashing the machine.

PostgreSQL has a LOT of features and a lot to offer in general. However, there is a major learning curve required to get it going right. I've had other sites implement the code and whenever they hit the version which required PostgreSQL most gave up on the idea of migrating or complained endlessly on how things seemed sluggish. That is NOT a major selling point when trying to get the unwashed masses to adopt your product.

Why my company didn't use it (2, Interesting)

ZeekWatson (188017) | more than 8 years ago | (#14921647)

My company has a semi-realtime application that needs to insert ~200-2000 rows/sec constantly. It isn't true realtime because the db can be shutoff, rebooted, etc and the inserts will queue waiting for the server to come back online.

Approx 1 year ago, we were doing some enhancements on the application and I tried replacing the mysql backend with postgresql. We needed plenty of expert help tweaking postgres to get it to a point where it could keep up with the inserts, however we could not run the vacuum job. There was no way to measure the exact performance difference between mysql and postgres, but I estimate mysql (innodb) to be able to handle 5x the load of postgres.

Why would I want to use a DB server that can only handle 20% the load of a competitor?

Its a pain in the a** to switch database engines (1)

jbplou (732414) | more than 8 years ago | (#14921648)

Maybe more people could use it for new development. But once you have invested in a backend database platform it is a pain in the a** to change it to a different provider, takes a lot of time, and in the end may provide no business value.

Needs more advertisement (or whatever) (1)

TimmyDee (713324) | more than 8 years ago | (#14921660)

One thing I know that's missing from Postgres is the relative lack of advertisement or PR. I realize that it's an open source project, but it's something to consider. In my field (landscape ecology), ESRI gets most of everyones business, including spatial databases. It's unfortunate that so many people shell out a truckload of money for ArcSDE when they could be using PostGIS [] , a free extension of Postgres to allow for the storage, querying, and manipulation of spatial data. Plus, it easily imports the industry standard shapefile.

PostGIS is gaining momentum in my field, but it, along with Postgres, needs more advertisement. When I started learning Postgres, I was a little leery. I had thought it was going to be incredibly complex and arcane, but I was pleasantly surprised. PostgreSQL just needs to get the word out.

Re:Needs more advertisement (or whatever) (1)

dickeya (733264) | more than 8 years ago | (#14921765)

I agree fully. PostGIS has excellent support for spatial operations and is easily accessed using a simple PHP frontend. I've used it in the past to output VBR (view-based refresh) KML for Google Earth [] . This essentially only returns the data in your current view port when you reach a specified zoom level. Saves a lot of load time and it was actually a pretty great experience setting it up.

...and the number one reason: (1, Redundant)

fak3r (917687) | more than 8 years ago | (#14921663)

Too hard to pronounce.

Re:...and the number one reason: (1)

rossifer (581396) | more than 8 years ago | (#14921771)

It's pronounced "postgres". The "Q" and "L" are silent.

Most of the time anyway.


SCO version of PostgreSQL (0)

Anonymous Coward | more than 8 years ago | (#14921664)

i've read that PostgreSQL has a version that runs on SCO.

Why I have so far resisted PostgreSQL (2, Insightful)

kimvette (919543) | more than 8 years ago | (#14921667)

1. Lack of administration tools

Having been forced to work with Oracle before they had a usable GUI (It can be argued they still don't) theen MySQL Server, I learned to appreciate a database GUI. I've grown to *HEART* mysqlcc, and more recently mysql-administrator, mysql-query-browser, AND phpMyAdmin. Wake me up when the same are available for PostgreSQL AND they are bundled with major distributions like the MySQL tools are. Oh, and they need to WORK, too.

2. Familiarity

When I switched BACK to Windows without having touched Linux for 5+ years, the apps we initially standardized on use MySQL as the back end, many of them exclusively so. MySQL seems to be more ubiquitous in the OSS world, despite its license being less-free than PostgreSQL

3. Time

Who has the time to investigate or extend PostgreSQL, and why bother when there is MySQL? I've read up a little on PostgreSQL and I like its feature set better than MySQL, but I'd have to spend time learning about administering, backing up, restoring, configuring, and tuning it properly. I've already put that time into MySQL and right now I need to learn the ins and outs of asterisk on top of my usual workload. MySQL is running just fine, why switch now? When we develop an app for distribution which would not meet MySQL's requirements (e.g, requiring us to GPL the product), THEN I will put time into learning PostgreSQL.

Re:Why I have so far resisted PostgreSQL (1)

NuShrike (561140) | more than 8 years ago | (#14921779)

1) RTFA & phpPgAdmin at least


3) Who has the time to investigate or extend Linux, and why bother when there is Windows? I've read up a little on Linux and I like its feature set better than Windows, but I'd have to spend time learning about administering, backing up, restoring, configuring, and tuning it properly. I've already put that time into Windows and right now I need to learn the ins and outs of asterisk on top of my usual workload. Windows is running just fine, why switch now? When we develop an app for distribution which would not meet Windows's requirements (e.g, requiring us to GPL the product), THEN I will put time into learning Linux.

No newbie guides (4, Interesting)

kyndig (579355) | more than 8 years ago | (#14921672)

When I started programming a website, I knew I needed a database. I also knew absolutely nothing about php, sql, or even what they stood for. I was using a Perl based hacked link farm that used a flat-text database storage. Someone then pointed me to a php link farm that used MySQL. The installation text that came with the app was so easy to follow for a newbie, I had the link farm up and running in no time. I went to Books-A-Million a few weeks later, and found many books on PHP, MySQL, php/mysql - and nothing on PostgreSQL. When I finally did read up on RDBMS, found out that PostgreSQL did some functionality that MySQL didn't (at the time); I already had most of my site designed in php/mysql. I looked more into sub-queries in PostgreSQL, but the community structure was so scattered and non-newbie friendly, I decided to stick it out with MySQL (and havn't regretted it once). So my reasons for preference have nothing to do with wanting a windows version, different language, or other such assumption. Instead, my reasons are:
      * as everyone says, the name is catchy: MySQL
      * when I first was introduced to it, and to this day, Michael 'Monty' Widenius takes a personal interest in his work, and is a real down to earth guy ( had the pleasure of emailing him once) [you can probably still see him posting on the mysql dev lists these days..though I havn't followed it in a couple of years]
      * Extensive script language support for web development
      * Books for newbs and professionals (many books)
      * I like their website more..always have

My shallow reasons..

None of Those 5 Are My Reasons... (3, Insightful)

nko321 (788903) | more than 8 years ago | (#14921691)

The reasons listed in TFA are nowhere near why I don't use it (granted, I've only used databases as toys thusfar).

A few years ago, I decided to learn a DBMS and teach myself SQL. I tried Access because it's "user friendly." Call me crazy, but I felt it was anything but. So I tried Postgres because everyone spoke so highly of it (and I'm very comfy with the command line). I read a lot of documentation and did a lot of things that felt like "progress" before I gave up.

I picked up MySQL next. It had some quirks, sure, but it was maybe an hour before I was comfortable enough with the DBMS that it didn't stand between me and learning SQL.

I picked up Postgres again last year and got much further along with it. I actually made a database, and it had tables and everything. I gave up because everything just "felt" more complicated than in MySQL.

I really want to learn Postgres. I do. I'm convinced it's more powerful and flexible. I just don't have the time, patience, or need.

Both MySQL and Postgres have their quirks that make it so you can't just jump in and start playing with SQL, and that sets the bar higher than it needs to be. Sure, every product will have some such complexity, but the lower the bar, the wider the userbase.

Re:None of Those 5 Are My Reasons... (1)

eluusive (642298) | more than 8 years ago | (#14921770)

I think you'll find that MySQL seems easier because it is, in general simpler. I had a similar experience to yourself, but now years later working as a DBA and working with MIcrosoft SQL Server, I wish I had Postgres almost constantly :) Comparing MySQL to Postgres is like apples to oranges. If you don't need the extra features of triggers, stored procedures, replicated, clustering, etc. etc. then MySQL Is a nice little database server. When you actually want to start manipulating the data through SQL beyond just selecting exactly what you put in, Postgres takes the cake.

Two Reasons (1)

lorcha (464930) | more than 8 years ago | (#14921693)

I don't use Postgres for two reasons:
  1. Some of the apps that I run only support MySQL (MythTV, for instance), and I see no reason to run two database servers when one will do.
  2. Incremental backups are a pain in the ass compared with MySQL. I like incremental backups.

I don't think so (1, Insightful)

NMerriam (15122) | more than 8 years ago | (#14921704)

They forgot reason #0 -- MySQL is "good enough". Most everyone who's done web development is used to MySQL, it works 99% of the time, why would they switch?

For me, one thing remains a [sad] fact (1)

bogaboga (793279) | more than 8 years ago | (#14921711)

> "...One can speculate that many of the reasons for not considering its adoption tend to be based on either outdated or misinformed sources."

Well, in my case, I dismiss PostgreSQL because in fact remains true: -

It does not have a programmable front-end with which a novice like me can program business logic into! Don't mention the likes of Navicat, PhpMyAdmin and others for they do not cut it! And by the way I do not use MySQL either.

For sure Microsoft's Jet Engine with Access as the front end, has and continues to do wonders on this front. My recent project was to have the largest tables with no more than 8,700 records and to have no more than 11 tables in all. Putting business logic to the database in anything other than MS-Access was very very tough for me. In Access, it took me just three weeks.

Nine months on, the application is still running fine.

Postgresql community = vastly underrated (1)

brennz (715237) | more than 8 years ago | (#14921721)

The Postgresql Community is superb. I've received a huge amount of help in #postgresql on . I cannot say enough about them

EnterpriseDB (based on Postgresql) has a nice new logo [] too, which hints at something.....

Coincidence? I think not!

May the best RDBMS win.

I avoid it.... (5, Funny)

drgroove (631550) | more than 8 years ago | (#14921735)

...because I don't know how to pronounce it.

Is it "Post Grace"? "Post Grey"? "Poss Grey"? "Poss Gres"? "Progress"? "Platypus"? "Post Raisin Bran"?

Whatever it is, it sounds vaguely French, which is just suspect to begin with. And I'm not dredging up the whole Iraq/UN thing either, although if I have to invoke Freedom Fries to make a point, I've got the mayonnaise ready.

Give me a RDBMS that I can pronounce, and I'll use you in my software.
MySQL. Easy. "My SQL". Doesn't get much easier than that, plus it sounds sorta friendly.
MS SQL - same thing, slightly different spelling. Maybe not as friendly, but you can put it in a Powerpoint to your boss and not sound like an idiot.
Oracle. Now you're talking. Even has a bit of mistique to it, a bit of enigma.
DB2. Not as sexy, but still undeniably pronouceable.
Sybase. Sock it to me.

What PostgreSQL - however the hell you say that - really needs is a new name. Forget features, forget marketing, forget RDBMS death match performance comparisons. Nobody cares. MySQL lacked tons of features for years, and we all used it then and continue to use it now. Why? You can pronounce it. Simple.

postgres in astronomy (3, Interesting)

hogghogg (791053) | more than 8 years ago | (#14921745)

FWIW, I have had very good experiences running postgres in astronomy applications, including for of order millions of galaxies with of order hundreds of attributes in the Sloan Digital Sky Survey [] . For scientific applications, open-source is a must, because (a) you have to be sure that the db is doing what you think it is, (b) you have to be able to rely on support or self-maintainance into the asymptotic future, and (c) (usually) you end up having to make small customizations.

Point (b) is especially big: in the Sloan Survey early days we had a proprietary database with our only copy of some of our data; when the company went belly-up (I think is was Objectivity), our data was effectively "encrypted" in whatever proprietary internal format was used by Objectivity and we had no way to reverse-engineer it, and no-one to call.

On point (c), try calling Oracle or Microsoft and asking for customizations that astronomers want. Evidently they don't consider us an important part of their market!?

One query - select count(*) from .... (2, Insightful)

Slashcrunch (626325) | more than 8 years ago | (#14921749)

Try this on a table with a couple of million rows

select count(*) from tablename
select count(fieldname) from tablename

This is incredibly slow as PostgreSQL scans the entire table! I know there are work arounds that will return approximate but this isn't good enough. I keep hearing how it isn't possible, that the table stats can't be updated etc... but other DB's handle this extremely fast.

I love PostgreSQL but I won't recommend it to Clients yet.

Reason # -1 (1)

hdante (771422) | more than 8 years ago | (#14921773)

Slower than MySQL ? Don't have any benchmarks, but I always hear this.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>