Slashdot Mirror


Top 5 Reasons People Dismiss PostgreSQL

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."

18 of 704 comments (clear)

  1. The name by smittyoneeach · · Score: 4, Interesting

    "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.

    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    1. Re:The name by soyarma · · Score: 3, Interesting

      While I agree that in a business environment the name of a product being the sole reason (though the author didn't specifically indicated it was his sole reason) not to choose something may be irresponsible, one must consider that people in general make base assumptions about all sorts of things from their initial impressions.

      Take for instance how much time and money goes into marketing brands (of anything) and how fiercly a brand name is guarded once its established.

      The problem with PostgreSQL as a name is twofold. Words in the English language that end with gres are rare, in day to day conversation you could probably go weeks without uttering one (digress or regress are ones you may use often, but they are obviously a bit different). Since our thinking and hearing patterns tend to form basic mappings of percieved words to words already known or in common internal use, many people actuall think 'postreg'. The eyes then inform the brain that what they see does not match 'postreg' and the brain then adds 'confusing' to the list of things about Postgres.

      While you may poo poo the people and their internal mental correlations, if you want something to have wide appeal you have to consider things like that. The name needs to be short, simple and easy to remember and relate.

      The second item is that it is pronounced Post-gres-Q-L. For the people who pronounce SQL as sequel, they think the word as Post Gre Sequel. The brain then thinks: 'what the heck is gre?'

      If you think of the names behind other DB products: MySQL, Access, Oracle, MSSQL, etc... (with MSSQL being a possible exception) the names themselves introduce no pronounciation, word association or sylabic issues.

      Task 1 complete. People can talk about these products without having to stop and explain how to pronounce the name. I'd imagine that's one of the first lessons in marketing.

  2. Web developers... by schon · · Score: 5, Interesting

    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.

    1. Re:Web developers... by schon · · Score: 4, Interesting

      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.)

    2. Re:Web developers... by Al+Dimond · · Score: 3, Interesting

      In the case of the syslog thing, I'd have to wholeheartedly agree with you. On the other hand, if you're a Perl ninja and a weakling at sed/awk you might be better off just using Perl if you only need sed/awk's particular functionality occasionally.

      Maybe I'm a hopeless desktop-fed n00b, but I've only used awk once, to take some experimental data that I'd previously entered into a file by hand, transform it a bit to provide input to gnuplot, then mangle it into a TeX table. It took a bit of time to learn, and you know, if I had to use it again I'd have to learn most of it over! I'm not entirely sure it was worth the time. Perhaps people like me should try to learn Sprog instead... or maybe just give in to the supposed "dark side" and enter the table into a spreadsheet and paste it into one of those hellish beasts they call "word processors"... NEVER!

  3. Nobody's heard of it by Dlugar · · Score: 4, Interesting

    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.

    Dlugar

    --
    Computer Go: Writing Software to Play the Ancient Game of Go
  4. Interesting article, but not the reasons I hear by dskoll · · Score: 5, Interesting

    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.
  5. rep-lih-kay-shun by buddha42 · · Score: 3, Interesting

    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.

  6. Or this? by Ex+Machina · · Score: 3, Interesting

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

  7. Personal .02 by cliveholloway · · Score: 3, Interesting

    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.

    --
    -- Trinity in high heels carrying a whip: The donimatrix - there is no spoonerism
  8. No newbie guides by kyndig · · Score: 4, Interesting

    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..

    --
    My Thoughts, Kyndig
  9. postgres in astronomy by hogghogg · · Score: 3, Interesting

    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!?

    --
    David W. Hogg -- assoc prof, NYU Physics
  10. Competence required by linuxwrangler · · Score: 3, Interesting

    One "problem" with PostgreSQL is that it assumes actual competence on the part of the administrator. The default ./configure ; make ; make install is designed to create a system that will actually start up on as many platforms as possible. After that, it is up to the competent administrator to tune it for the specifics of the installation. Using the default PG install in a performance comparison demonstration shows nothing but the incompetence of reviewer.

    Have a 2 CPU AMD64 box and 16 GB RAM and fast SCSI drives as your dedicated DB server? Fine, make your settings appropriate for that. Running on a shared P200 with 128M RAM and a slow IDE drive? Different tuning entirely. I have production systems at both ends of the scale.

    I am extremely happy with PostgreSQL. It's robust as hell - I've had individual PG connections to the DB up for over a year. On rare occasions I've had a machine running PostgreSQL get unceremoniously killed but every single time when the machine has been restarted, PostgreSQL has started up without any problem. This is not always the case.

    --

    ~~~~~~~
    "You are not remembered for doing what is expected of you." - Atul Chitnis
  11. Re:Other things... by antarctican · · Score: 3, Interesting

    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.

    Exactly. I know PostgreSQL is a better database engine, but I know mysql, I can't be bothered to learn something new when it seems everything supports MySQL.

    I've tried to use PostgreSQL for a few packages which didn't support MySQL, and I just got tired of the learning curve. All the various different executables to do different tasks rather then one shell like MySQL, a permission system which seemed from my limited usage more perverse then MySQL's (and that's saying a lot considering how bad MySQL's is). I'm sure if I learned more there'd be dozens of tricks that would have made the tasks I was attempting trivial... but why? I have better things to do with my time, like write cool code that uses MySQL.

    PostgreSQL is the Beta of databases. The superior system but the loser in the race because of reasons beyond it's control.

  12. Re:Autovacuum by jadavis · · Score: 3, Interesting

    It all depends on the situation, but PostgreSQL gives you a lot of options. Pretty much every database needs to have cleaner processes to clean free space.

    With PostgreSQL, you can do it manually, or use autovacuum. You can also set the vacuum_cost_delay to change how much it interferes with concurrent access. Whatever works best.

    --
    Social scientists are inspired by theories; scientists are humbled by facts.
  13. Re:Other things... by jadavis · · Score: 3, Interesting

    And what evidence did he have that MySQL users do not want consistency? I know MySQL users who want consistency and type checking, and are impressed when they try PostgreSQL.

    --
    Social scientists are inspired by theories; scientists are humbled by facts.
  14. Top 5 reasons not to not look at Postgres by sk999 · · Score: 3, Interesting
    Many years ago we looked at Postgres, and the developer at the time said that "he would not trust his payroll to it."

    The database has improved a lot since then, and I currently support two Postgres databases, one on Linux and one on IRIX, both running in mission-critical situations. What that means is that if either one fails, I get phone calls in the middle of the night with complaints. In over 6 years, I have not fielded one phone call attributable to Postgres itself.

    None of the issues raised in the article was even remotely a factor in my choice of Postgres. A big (and ultimately deciding) factor in its favor is that it can be compiled and installed on a broad range of hardware and operating system versions. MySQL fared less well in this regard.

  15. Re:Reason number 6 by dj-nix · · Score: 5, Interesting

    Well, thats funny, because I also have had to write VoIP billing software, and am currently writing IP traffic rating and billing software. When I first started this type of business 5 years ago it was with MySQL, but I was frequently both crashing MySQL and getting junk data in my tables (The biggest problem being invalid dates!) When I started searching for a better option I tried a number of databases including FireBird and Postgresql but settled on Postgresql for 4 major reasons. 1) It has absolutely brilliant Date and Time handling, better even than Oracle. 2) It has native INET support which allows easy manipulation, sorting and searching of IP addresses. 3) It has SUB SELECT support which allowed me to reduce my application code a lot, by making the DB do the work (Always a good tradeoff in my opinion) 4) It has VIEW support which allowed me to generate some "simple" views of the data including some summaries which allowed the management to play to their hearts content with MS Access (As a frontend to PG) without having to understand the "real" data layout.
    Of course since then I have discovered many more things to love about Postgresql, including triggers and stored procedures etc (To be fair, MySQL has some of these features now, but did not at that time)
    Just to be clear my first Postgresql app handled ~5 million VoIP records per day on a single CPU, single disk desktop class machine and the only time I have EVER had Postgresql crash was due to a bad ram chip in server! Conversely, I can't count the number of time I and my customers have lost data with MySQL.