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

704 comments

  1. Availability by Anonymous Coward · · Score: 5, Insightful

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

    First post?

    1. Re:Availability by JordanL · · Score: 1

      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?

    2. Re:Availability by TheSpoom · · Score: 1

      Indeed. I've been working with MySQL for a long time now, and while learning Postgres would be fairly easy for me (I know various DBMSes already and besides, learning a new one is just learning its special cases once you know SQL in general), the problem is actually finding hosts that use it. I try to keep applications that I write for release as modular as possible, including the database type (take a look at Pear::DB if you're using PHP), but MySQL support is always the priority simply because it's what the vast majority of people use.

      --
      It's better to vote for what you want and not get it than to vote for what you don't want and get it.
      - E. Debs
    3. Re:Availability by NutscrapeSucks · · Score: 5, Insightful

      I know MS Access, Access came with Office, Access is fast and easy, and Access does all the things that I need a database to do...

      (Only partially being sarcastic here. Access is fine for a lot of things. It's just the mentality that kills me. LAMP Developers are the true heir to the VB/Access Guy Mentality)

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    4. Re:Availability by NutscrapeSucks · · Score: 1

      Actually, I was shopping for hosts last year and every single one that I looked into had postgresql available.

      I don't think the hosting is as much of an argument as all the precooked PHP packages out there hardcoded for MySQL.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    5. Re:Availability by JordanL · · Score: 1

      I realize that MySQL can't do everything. I don't know enough about databases to talk about what its best at or what its worst at, what its faster at, etc.

      I do know this: LAMP development is messy, and careless compared to languages like Java or PERL. But the integration is so seamless, and the applications broad enough that the end users just plain don't care.

      What's so special about Postgre? Why switch at all?

    6. Re:Availability by ShieldW0lf · · Score: 2, Interesting

      That's why it's so popular. Older versions were fast and lightweight and $10/month hosting providers loved it because you couldn't bog their servers down with it because the features to do complex queries just weren't there. Because all the cheap hosting providers had it, everyone learned to use it for their rinky-dink little scripts. Postgres was always better, but it gave your ignorant little novice PHP scripters the power to run very complex queries that will put your server under load, and when you're trying to fit as many cheapo customers onto each server as possible, that's not good.

      --
      -1 Uncomfortable Truth
    7. Re:Availability by LurkerXXX · · Score: 1

      Data consistency. Check it out sometime.

    8. Re:Availability by prurientknave · · Score: 1

      banks going open source use postgres. mysql is fine for people who gobble the hype and don't want good documentation, standards or features.

    9. Re:Availability by nmb3000 · · Score: 1

      LAMP...

      I'm so tired of hearing these fancy OSS acronyms for stuff. You all think you're so cute!

      At work I'm proud to say we use Windows, IIS, MySQL, and PHP. No stupid acronyms here.

      Oh wait...

      Crap.

      --
      "What do you despise? By this are you truly known." --Princess Irulan, Manual of Muad'Dib
      /)
    10. Re:Availability by Brandybuck · · Score: 1

      So what? Windows is pre-installed by most OEMs, and does the job for most tasks.

      --
      Don't blame me, I didn't vote for either of them!
    11. Re:Availability by Anonymous Coward · · Score: 0
      Why would I ever use Postgre?

      You wouldn't, because

      mysql does all the things that I need a database to do...

      If you're happy with the software you're already using, don't ever switch anything important if you can help it.

    12. Re:Availability by MayHanasDaddy · · Score: 1

      When I first started playing with MySQL, I also wanted to play with Postgres, but it did not run on Windows (or I had that impression, anyway). So, I found an old computer sitting around, downloaded and installed Linux, learned how to compile all the source for Postgres, and THEN finally started learning Postgres. Of course I didn't! I was a newbie to most things on the computer, but i'd heard of MySQL, downloaded and installed the binaries in a few minutes, and was playing with my new database within an hour. Postgres got behind when they didn't have Windows binaries for the masses to play with in the old days, and they've never caught up, IMHO.

    13. Re:Availability by Anonymous Coward · · Score: 0

      As is Windows OS installed on almost every new pc and does the job for most tasks.....but still open source proponents are using Linux et al.

      Why?
      So, I can't believe that people like you are giving this as a reason not to switch.

      Maybe you are not interested in the revolution anyway:-)

    14. Re:Availability by noamsml · · Score: 1

      Exactly.

      I program a lot for my school website, which is hosted using a service which gives us Mysql as a database server. Personally, I have nothing against mysql. It does the job satisfactorily enough and, frankly, I don't really need many advanced features.

      Also, many CMSes use MySql as their only database (Wordpress, anyone?).

    15. Re:Availability by Lumpy · · Score: 1

      Until you clever guy make a neat setup in Access and then some dork in corperate management thinks it's the best thing cince sliced bread and has you deploy it to 500 desktops all trying to acces the one mdb file on the file server.

      Boom, data corruption, performance sucks big time, nothing but a huge mess.

      Access is great for personal projects for a very few to use. it is NOT a enterprise or large scale DB and too many people try to make it that way.

      I fight daily with some damned Access "app" that was whipped up in marketing and deployed to several hundred sales people and then I am called when they break it 3 times a day.

      Personally I wish that MS would make access do a hard lock on the DB when one person it accessing it to stop this nightmare of access for us in IS/IT.

      --
      Do not look at laser with remaining good eye.
    16. Re:Availability by Ender+Ryan · · Score: 1
      Go fuck yourself. Money's not everything.

      OTOH, there's nothing to be ashamed about being a "LAMP" developer, so those OPers can go fuck themselves too.

      Oh, and there's no shame in fucking yourself, I'm pretty sure most /.ers do it.

      --
      Sticking feathers up your butt does not make you a chicken - Tyler Durden
    17. Re:Availability by lisaparratt · · Score: 1

      The same could be said about Internet Explorer.

    18. Re:Availability by IANAAC · · Score: 1
      I'm a LAMP developer. VB/Access guy mentality or no, I make six figures. How about you?

      Some of us make six figures, some of us don't. What's your point?

      That the income matches the mentality?

      Unlikely.

    19. Re:Availability by Doctor+Faustus · · Score: 1

      Personally I wish that MS would make access do a hard lock on the DB when one person it accessing it to stop this nightmare of access for us in IS/IT.

      You're SOL if the app is actually running from the database you're accessing, but I've had a fair bit of success using DAO to open Access databases exclusively (in a retry loop), do whatever was needed as fast as possible, and then close them again. Of course, the only reason I didn't use SQL Server was that the Access database was an index of the directory it was stored in.

      Other than that, Access is good for scratch space on the local drive. Once you're done with one segment of your work, you don't need to clean up your tables, you can just delete the .mdb file and make a new copy of the template. That's handy.

    20. Re:Availability by pthisis · · Score: 1
      I do know this: LAMP development is messy, and careless compared to languages like Java or PERL

      This makes no sense. Perl (along with PHP and Python) is one of the major LAMP languages.

      http://www.onlamp.com/pub/a/onlamp/2001/01/25/lamp .html
      LAMP. This term was popular in Germany, they said, to define how MySQL was used in conjunction with Linux, Apache, and either Perl, Python, or PHP.


      http://en.wikipedia.org/wiki/LAMP_(software_bundle )
      The acronym LAMP (or L.A.M.P.) refers to a set of free software programs...Linux...Apache...MySQL...Perl, PHP, and/or Python


      --
      rage, rage against the dying of the light
    21. Re:Availability by golgotha007 · · Score: 1

      What a Troll.

      I'm a LAMP developer.

      VB/Access guy mentality or no, I make six figures.

      I'm not ashamed of being successful, no matter how many people like yourself resort to name calling to "prove" something.

  2. The author, Jason Gilmore... by tcopeland · · Score: 4, Informative

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

    1. Re:The author, Jason Gilmore... by eln · · Score: 0

      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.

    2. Re:The author, Jason Gilmore... by jadavis · · Score: 3, Informative

      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.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    3. Re:The author, Jason Gilmore... by secolactico · · Score: 1

      They both show at the same price. Is there anything wrong with using a referral? It doesn't bother me (quite the opposite) that someone gets a reward for pointing me in the right direction. And if it doesn't affect the price I get then it's event better.

      --
      No sig
    4. Re:The author, Jason Gilmore... by Jason+Earl · · Score: 1

      Interestingly enough Jason Gilmore has also written a book about MySQL entitled: Beginning PHP 5 and MySQL 5: From Novice to Professional.

      And if you seriously believe that Mr. Gilmore's reasons were strawmen then you have never tried to convince management to use PostgreSQL over a commercial database. Heck, if you are trying to sell using PostgreSQL to folks who have used MySQL I would add #6 PostgreSQL is slow to the list of arguments that commonly get raised. That assumption is not true either, at least it isn't true in situations where you actually need consistent data. In fact, I have yet to see a case where PostgreSQL doesn't perform better under load than MySQL and I have switched several real applications.

    5. Re:The author, Jason Gilmore... by aliquis · · Score: 1

      I haven't read the books but shouldn't the other book be a better choice for someone who just wants to learn PostgreSQL and not just together with PHP? Or am I missing something here? Is the PHP-book better? I don't care that much about PHP.

    6. Re:The author, Jason Gilmore... by tcopeland · · Score: 1

      You are absolutely correct. I grabbed the wrong link... curses. Ah well, thanks for the correction!

  3. Crystal Reports by barik · · Score: 1

    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.

    1. Re:Crystal Reports by NeuralAbyss · · Score: 1

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

    2. Re:Crystal Reports by Billly+Gates · · Score: 0, Troll

      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. ADO.net support would be nice.

    3. Re:Crystal Reports by MagikSlinger · · Score: 2, Informative
      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.

      --
      The bitter lessons of a veteran coder: http://bitterprogrammer.blogspot.com
    4. Re:Crystal Reports by barik · · Score: 1

      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.

    5. Re:Crystal Reports by Anonymous Coward · · Score: 0

      Actually, Postgresql no longer uses Cygwin on Windows.

    6. Re:Crystal Reports by jbplou · · Score: 1

      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.

    7. Re:Crystal Reports by Anonymous Coward · · Score: 0

      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.

    8. Re:Crystal Reports by jma05 · · Score: 1

      None of what you say is true.

      1.) MS does not own Crystal Reports
      2.) Postgres did not need Cygwin since 8.0
      3.) There are both commecial and open source options for ADO.NET

      In short, your misconceptions pretty much echo what the author is trying to say. That people have not updated themselves with all the advances with it.

    9. Re:Crystal Reports by NutscrapeSucks · · Score: 1

      Is there an acutal problem with ODBC or is this just an Old=Bad thing?

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    10. Re:Crystal Reports by Anonymous Coward · · Score: 0

      Well if it doesn't I wish someone would have told me sooner. My company has been using Crystal Reports as the primary reporting interface to a Postgres-backed network analysis tool for more than 5 years now.

    11. Re:Crystal Reports by SpasticWeasel · · Score: 3, Informative

      Crystal Reports was designed and developed by some of the most sadistic and shit headed sons of bitches ever. Any developer with any experience using Crystal Reports despises it, loathes it, has fantasies of strangling the ignorant shit headded fucktards that created it. If you change the data source for a report, view, stored proc, etc., even though the added column for example is never used in the report, it will break the report because the dipshits save the definition in the report itself. Verify the database and "Fix Up The Report"? or get cryptic errors. Saves the connection information too. Can't switch between SQL Server authentication and Windows Authentication because the ignorant bastards hard code the connection information in the report at design time. FUCK Crystal Reports. I would rather hand code PostScript to output reports before I would ever use this stinking pile of bloody stool ever again.

      --
      No sooner do I get over one, then you put a better one right next to me. Bastards.
    12. Re:Crystal Reports by minus9 · · Score: 1

      So, do you like Crystal Reports or not?

    13. Re:Crystal Reports by Anonymous Coward · · Score: 0

      We use PostgreSQL and Crystal Reports via ODBC with the standalone crystal reports tools, and via npgsql and .net with the newer crystal reports .net tools. We're looking to deply the .net stuff via lamp--> linux/apache/mono/postgresql. I wouldn't say we haven't run into some issues, for example crystal is really dumb about the way it handles text fields, but we've gotten it to work.

      Incidentally, anyone know a place where we could hire some c#/.net web developers with mono experience?

    14. Re:Crystal Reports by Anonymous Coward · · Score: 0

      but it's Enterprise support

      "its".

    15. Re:Crystal Reports by Anonymous Coward · · Score: 0

      Crystal Reports was designed and developed by some of the most sadistic and shit headed sons of bitches ever. Any developer with any experience using Crystal Reports despises it, loathes it, has fantasies of strangling the ignorant shit headded fucktards that created it.

      Ah, someone who shares my opinion of Crystal Reports :)

      Fortunately, I convinced my company to switch to JasperReports. But I still have quite a few awful Crystal Reports to maintain until we get a chance to port them over.

      BIRT also looks cool.

    16. Re:Crystal Reports by Forbman · · Score: 1

      Yes to all of the above, except no other report writer has done the ONE thing that is nice about CR: If you have a Label control, you can embed a field-based control inside it, set its autoexpand properties, and voila. The two controls now move as a group, resizing the border of the label control in design mode can resize also the field control, etc. Sure beats combining multiple fields, either in the database query itself or in the report writer's coding layer.

      I'll expand on the dipshitness of CR. If you change your datasource, and you mess up field names in the datasource so that the controls in the report can't find their associated field references anymore, "fixing up" the report will delete those controls from the report, instead of leaving them there and giving you a chance to manually remap them to the right field. F'ing great if you have had to type in a bunch of stupid logic, conditional formatting, etc. on them, especially when it happens to a LOT of fields.

    17. Re:Crystal Reports by Doctor+Faustus · · Score: 1

      I would rather hand code PostScript to output reports before I would ever use this stinking pile of bloody stool ever again.

      I actually have hand-coded PostScript to output reports, but that was for a lot higher volume than Crystal normally gets used for (phone bills). Anyway, I think the basic problem is that Crystal fundamentally isn't a tool for programmers. It's a tool for accountants and managers to put together reports against data whose source isn't going to change.

    18. Re:Crystal Reports by NeuralAbyss · · Score: 1

      The tables I'm working on are definitely not within the public schema... although I do agree with you on the stored procedures. I'd log a bug with Postgres.. chuck it on the to-do list.

  4. 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 XxtraLarGe · · Score: 3, Insightful

      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.

      --
      Taking guns away from the 99% gives the 1% 100% of the power.
    2. Re:The name by mnemonic_ · · Score: 0, Offtopic

      I cannot believe the parent got modded to +4.

    3. Re:The name by ZaMoose · · Score: 5, Informative

      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?

      --
      I wish I had a kryptonite cross, because then you could keep Dracula and Superman away.
    4. Re:The name by rossifer · · Score: 1

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

      Regards,
      Ross

    5. Re:The name by Anonymous Coward · · Score: 0

      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.

      -Rob

    6. Re:The name by robbak · · Score: 1
      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 www.ingres.com, but was bombarded by Too Much Flash. You have been warned.
      --
      Prediction for end of Universe #42: Fencepost error in Quantum_bogosort.cpp
    7. Re:The name by edwdig · · Score: 1

      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.

    8. Re:The name by mnemonic_ · · Score: 1

      GAIM, The GIMP, guliverkli, Gentoo, kcron, vi, Mandriva... are these names any more appealing? What the fuck is "Red Hat" supposed to mean? Or how about "iPod," what's that all about? "Postgre" sounds weird because the product is relatively unknown. You're attributing your ignorance of the product to the name. A word takes on the reputation of what it represents; unless the name is incredibly profane or vapid, it probably won't affect the product's popularity. Unless you think "ubuntu" is a trump card to guarantee success.

      I'm sure everyone thought "linux" ("lye-nux?") was weird when they first heard it. That didn't stop it from getting popularity.

    9. Re:The name by Spy+der+Mann · · Score: 1

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

      I think you hit the nail on the head. I learned PHP and mySQL under windows, with tutorials on magazines and downloaded. A lot of slashdotters absolutely hate Windows and Microsoft, but use it because we have no choice (we're not ready for Linux yet - or is it that Linux isn't ready for us yet?).

      So, when we need to learn SQL, we need a database that can be easily installed on Windows (I'm talking about 5 years ago). So, why don't we use Postgre? Because we learned MySQL, and changing is a very difficult thing. Besides, MySQL is pretty decent, it's too complicated to change the subtle differences between MySQL and Postgre. And now that we learned it, we don't have time to relearn another one - specially when we're already programming mission critical applications.

      Finally, most webservers have MySQL installed, and not Postgre.

      So I guess it's an inertia situation.

    10. Re:The name by AmericanInKiev · · Score: 1

      You have to think that if the product designers can't come up with a clear name, the product probably doesn't fall far from the tree.

      I've worked with P-Sql, and it really sucks when trying to store large objects. The lack of "native" blob support means there can never be a standard means of including blobs, which means tools, examples, etc will often fail to work in many situations.

      Once you get used to:

      Select * from table1 join table2 using(index_id)

      It feels quite productive.

      AIK

    11. Re:The name by stuttering+stan · · Score: 1

      It was up to +5 when I posted this. WTF? +lame /no digg

    12. Re:The name by NutscrapeSucks · · Score: 4, Funny

      So, basically it's named after an in-joke about a software package that everyone forgot about 20 years ago. That's a great reason to keep it! Go Go OSS Marketing.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    13. Re:The name by j3ll0 · · Score: 1


      Red Hat is, I believe, a reference to one of Edward De Bono's books. De Bono is credited with inventing the term ' lateral thinking '.

    14. Re:The name by n0-0p · · Score: 4, Funny

      Exceptionally funny coming from the man with the term "Nutscrape" in his nick.

    15. Re:The name by T-Ranger · · Score: 1

      Clearly the successor to Ingress should be Outgress. Hell, if they cant get that right.... :-)

    16. Re:The name by NutscrapeSucks · · Score: 0, Offtopic

      Zing! You got me, Mr Contemporary Hep-To-The-Teen-Beat L33T5P33K Guy.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    17. Re:The name by Vellmont · · Score: 1


      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?

      Umm.. what? You seriously choose products based upon the name? I understand the whole initial appeal factor of a name, but shouldn't you seriously try to get past the name thing? What the hell does MySQL mean anyway?

      I understand people make dumb choices based upon nonsensical things. I guess what shocks me is you're actually trying to defend your own practice of doing this as if it's a good way to judge a product.

      --
      AccountKiller
    18. Re:The name by Anonymous Coward · · Score: 0

      Thanks, you just reminded me why I quit reading Slashdot a year ago! I'll be going now.

    19. Re:The name by Anonymous Coward · · Score: 0

      Fortunately, if you're programming anything "mission critical" on top of MySQL, you won't be in the industry very long. Either you need to reevaluate your own personal definition of "mission critical", or you might want to start coming up with a migration strategy and/or looking for a new field.

      MySQL isn't bad, but suitable for something that absolutely requires the highest possible uptime, it ain't.

    20. Re:The name by modecx · · Score: 1

      Red Hat is a reference to Carmen SanDiego's hot red outfit, and if anyone so much as says otherwise, I'll turn them into mutton! I swear, I've done it before, I'll do it again! *scowls*

      --
      Constitutional rights may be respected, repealed, or modified; but they must never be ignored.
    21. Re:The name by ggundy · · Score: 2, Funny

      It's hot, it's new, LAMP 2.0!

      Linux
      Apache
      Mono
      PostgreSQL

      Gotta love the two dot oh when hyping stuff ;)

    22. Re:The name by blincoln · · Score: 1

      GAIM, The GIMP, guliverkli, Gentoo, kcron, vi, Mandriva... are these names any more appealing?

      I think "guliverkli" manages to actually roll ONTO the tongue.

      --
      "...always new atoms but always doing the same dance, remembering what the dance was yesterday." -Richard Feynman
    23. 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.

    24. Re:The name by Yuioup · · Score: 1

      Why not use LAPP

      As in LAPP dancing ;-)

      Y

    25. Re:The name by KinkyClown · · Score: 1

      Why is it that open source projects have the most dumb names? Why is it that most open source projects are acronyms? I also found it typical that a lot of them refer to the name of the author. Looking at it this way: PostgreSQL name is not that bad. It's not an acronym (not completly), it does not contain the name of the author and it does not sound weird (not to my ears).

      And then again: it's a name! All I want is a good database, and it is.

    26. Re:The name by killjoe · · Score: 1

      Would you rather the postgres team spent time and money on marketing or making a better database?

      Me I prefer the latter.

      --
      evil is as evil does
    27. Re:The name by evilviper · · Score: 1
      So, basically it's named after an in-joke about a software package that everyone forgot about 20 years ago. That's a great reason to keep it! Go Go OSS Marketing.

      You're right! Successful products like "Mozilla" "GIMP" "Linux" et al. don't name their software that way!

      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    28. Re:The name by smittyoneeach · · Score: 1
      As in LAPP dancing ;-)
      Not only is it too cold at that latitude, you're so close to the top of the map that you risk hitting your head.
      Badump-bump.
      Thanks. I'm here all week. Try not to confuse the /. editor with the spitoon. ;)
      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    29. Re:The name by Anonymous Coward · · Score: 0

      Personally, I'd have stuck with egress.

    30. Re:The name by Anonymous Coward · · Score: 0

      For great stored procedure justice, take off every Python.

    31. Re:The name by HaydnH · · Score: 1

      "The name is pretty awkward, and that can be a fast turn-off for many people.2

      I doubt many people would not use good software because the name is hard to pronounce! Anyway, there has been an mp3 of the prunounciation on the website for at least 8 years!

      Personally I love PostgreSQL, MySQL always had less features but was faster than PostgreSQL because of it, as MySQL adds these features it's becoming slower effectively making it the same product... when MySQL finally has all the features of PostgreSQL I'm sure it will be the slower of the 2 as PostgreSQL will be way ahead in terms of optimising the features they've had for years.

      --
      Time is an illusion. Lunchtime doubly so. - Douglas Adams
    32. Re:The name by MPHellwig · · Score: 1

      Mono? You mean Mod-Python right? ;-)

    33. Re:The name by minus9 · · Score: 1


      If only they could have been as creative as Microsoft's renaming of Sybase.

    34. Re:The name by Kjella · · Score: 1

      You're right! Successful products like "Mozilla" "GIMP" "Linux" et al. don't name their software that way

      Linux is an excellent name, it has a good pronounciation, resembles unix, and doesn't require explaining an in-house joke. "Thorvald Linus, creator of Linux" really explains it all.

      As for the other two, I'd say they succeed despite their name. Mozilla still sounds like a bad pun on japanese horror movies. GIMP... every possible joke about that has been flogged to death in triplicate, sent in, sent back, queried, lost, found, subjected to public inquiry, lost again, and finally buried in soft peat for three months and recycled as firelighters.

      People take names at their face value. They're not interested in *why* it's called Mozilla or GIMP, they don't care about silly reasons if you tell them. It doesn't tell them anything.

      Granted, many other names don't make sense either but they rarely have to. If I read about a new car called "Ford Ekiga", I already got a fairly good clue what it's about. If 99% of your ads are visual too with pictures or video, then you're just building brand.

      Software very rarely have that luxury. Most of the information passed around will be mention in various tech presses and articles. You very rarely get the chance to impress users with fancy screenshots. I suppose you can go the hard way and build up a really non-sensical brand - after all it doesn't really matter. But that's definately the hard way of doing it.

      --
      Live today, because you never know what tomorrow brings
    35. Re:The name by Tarwn · · Score: 1

      They may have forgotten it, but it's still in use :(

      --
      Whee signature.
    36. Re:The name by mike2R · · Score: 1

      GIMP is a really really really bad name.

      --
      This sig all sigs devours
    37. Re:The name by Anonymous Coward · · Score: 0

      The fact that you can bring Python right into PostgreSQL for good stored procedure justice seems to go unnoticed. That actually rules it out for me, too riskt having Pythin guys playing around...*shiver*

    38. Re:The name by Alioth · · Score: 2, Insightful

      So from a casual coder's point of view, a database named 'MySQL' as if it was Fisher Price's My First Database for pre-school infants sounds better?

    39. Re:The name by Jesus_666 · · Score: 1

      You do know that the name "UNIX" is a punny reference to MULTICS? The name has no redeeming qualitites of its own. It's even misleading: MULTICS stood for "Multiplexed Information & Computing Service". UNIX would be the "Uniplexed Information & Computing Service", implying a single user OS.

      So essentially the name of Linux implies that it's a clone of a single user operating system. Not quite good marketing, eh?

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
    40. Re:The name by evilviper · · Score: 1
      Linux is an excellent name, it has a good pronounciation, resembles unix, and doesn't require explaining an in-house joke.

      Linux is an in-house joke on UNIX (which is an in-house joke on......)

      You don't need to explain anything to pronouce Postgres either.

      Mozilla still sounds like a bad pun on japanese horror movies.

      It is, but it also requires lots of explanation of the in-joke (should somebody ask). You should try to explain to a clueless Netscape user that Mozilla is the next version of Netscape. Fun!

      Like everything else, take the name at face value, OR explain the inside joke... Postgres can work either way, too.
      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    41. Re:The name by dwandy · · Score: 1
      I doubt many people would not use good software because the name is hard to pronounce!
      ...and you probably think that if you work hard you'll get that promotion, but don't understand why that schmoozer who is clearly useless keeps getting promoted.
      The problem is that (most) geeks think that evaluations should be made on the basis of 'what is' not 'what appears to be'.
      Anyway, there has been an mp3 of the prunounciation on the website for at least 8 years!
      It's been my experience that if you find yourself explaining something to more than one person than it was a bad marketing move. The fact that they have this mp3 file tells me that it is a bad name... Instead of investing resources into explaining the name, expend resources finding and transitioning to a new name. In the long term you will be ahead.

      Sadly, it appears that a rose by another name does in fact not smell so sweet...

      --
      If you think imaginary property and real property are the same, when does your house become public domain?
    42. Re:The name by dwandy · · Score: 1
      Kjella (173770) sig:
      Allowing programmers to name serious 'flagship' Linux applications is right in line with letting marketing write them.
      The fact that a lot of other OSS apps were named by clever programmers doesn't mean that any of them were correctly named from a marketing perspective.
      The fact is that marketers and programmers are not (necessarily) the same people, and (generally) have a very different mind set. That's why they (often) clash so heavily in product discussions - totally different points of view.
      One wants to make a product that works, and one a product that sells. Somewhere in the middle is a viable product. Letting both sides perform their respective tasks with minimum interference will create the best possible product.
      --
      If you think imaginary property and real property are the same, when does your house become public domain?
    43. Re:The name by HaydnH · · Score: 1

      "...and you probably think that if you work hard you'll get that promotion, but don't understand why that schmoozer who is clearly useless keeps getting promoted."

      Yup... that's why I'm on /. atm... working as hard as I can ;P


      "It's been my experience that if you find yourself explaining something to more than one person than it was a bad marketing move. The fact that they have this mp3 file tells me that it is a bad name... Instead of investing resources into explaining the name, expend resources finding and transitioning to a new name. In the long term you will be ahead."

      Perhaps we should change the name of Linux while we're at it?

      --
      Time is an illusion. Lunchtime doubly so. - Douglas Adams
    44. Re:The name by Anonymous Coward · · Score: 0

      Well, first of all, people shouldn't pronounce SQL as "sequel" -- it's a sign of mental deficiency. I don't know who started it, but I bet it was Microsoft.

      Secondly, just call it "postgres" or "pgsql" (I don't know a lot of hackers who spell the DB's "full name" out in most casual conversation, it's always "postgres" or "pgsql"). Problem solved.

    45. Re:The name by electroniceric · · Score: 1
      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.
      Actually Microsoft has done even better than this. MSSQL is called Microsoft SQL Server. I can't count the number of times I've heard people say "we run SQL" meaning they use MS SQL Server. Microsoft won the naming game by a mile, and Postgres (which I run) has been determined to lose it for a long time.
    46. Re:The name by some+guy+I+know · · Score: 1
      XxtraLarGe typed:
      I can't figure out what the Postgre part is supposed to stand for. [...] The name is pretty awkward
      Thank you for your input about awkward names, "XxtraLarGe".
      How about renaming it to "XxtraSqL"?
      That would be much less awkward.
      --
      Those who sacrifice security to condemn liberty deserve to repeat history or something. - Benjamin Santayana
    47. Re:The name by armb · · Score: 1

      Why isn't there a "funny if he's being sarcastic, scary if he isn't" modifier?

      --
      rant
    48. Re:The name by Anonymous Coward · · Score: 0

      A bit like Unix, then.

    49. Re:The name by hey+hey+hey · · Score: 1
      The inventors of Ingres left the company formed around it when it was bought by Computer Associates and started developing the successor to Ingres

      Wrong Ingres group. Postgres came out of the University of California (as a follow on to the Ingres research project), not from the commercial group.

    50. Re:The name by Anonymous Coward · · Score: 0

      Considering the state of things, retconning the U to stand for Unified would be, while not completely accurate, at least more properly descriptive.

    51. Re:The name by stu42j · · Score: 1

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

      Yesterday I was watching Jeff Waugh's presentation at FOSDEM. It was pretty interesting and included his take on LAMP:

      -L-inux
      -A-pache
      -M-ost of our scripting languages start with P
      -P-ostgreSQL

    52. Re:The name by poot_rootbeer · · Score: 1


      Every database developer I know simply refers to the product as "Post-gress". (The 'QL' is implied.)

      Pronounciation and association problems solved. It's a similar to the word "progress", but it's post-progress. All connotations are positive.

    53. Re:The name by aralin · · Score: 1
      Then again, the P in LAMP has always been about the scripting language, not the database.

      Darn, and I always read it as Linux, Apache, Modula, Postgres...

      --
      If programs would be read like poetry, most programmers would be Vogons.
    54. Re:The name by DeafByBeheading · · Score: 1
      Thorvald Linus, creator of Linux"
      Erm... You mean this guy?
      --
      Telltale Games: Bone, Sam and Max
    55. Re:The name by Forbman · · Score: 1

      Hmm... here's one that I enjoy:

      "I need to access an access database"

      or...

      "how do I query [the] Oracle to get this data?"

      But the topper is:

      "We installed SQL [Server] on our server for you"

      Uhh.... that's right up there with "How do I get Microsoft [Word, Excel, whatever] to print out my file?"
      and "Yeah, I use Microsoft [Windows? Office?] a lot."

    56. Re:The name by drew · · Score: 1

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

      Funny, I've always thought MySQL and PHP were more like the "ambiguously gay duo".

      Ah yes, success through mediocrity...

      --
      If I don't put anything here, will anyone recognize me anymore?
    57. Re:The name by Forbman · · Score: 1

      I think part of this also is a play on words against Ingres, as in postfix vs infix notation.

      Borland already took Delphi away (Oracle at Delphi? Oh forget it).

      Temple of Nike (this would probably get Phil Knight's underwear in a bunch), Parthenon, Athena/Athens, Mt Olympus don't sound good as database names, either, for Postgres, given its tendancies to want to emulate most things Oracle.

    58. Re:The name by Forbman · · Score: 1

      Sybase's database WAS "SQL Server" until they forked with Microsoft. Why Microsoft didn't have to rename its product and Sybase did is a mystery (probably more money from Microsoft when they negotiated their parting of ways), because it was Sybase that brought the product to the table, not Microsoft.

      So now it's Sybase Adaptive Server Enterprise, or whatever they're calling it now.

      for most Microsoft fanboys, it's simply, "SQL".

    59. Re:The name by drew · · Score: 1

      My personal favorite was the number of people I went to college with who told me that they edited their web pages in (Microsoft Visual) C++.

      --
      If I don't put anything here, will anyone recognize me anymore?
    60. Re:The name by Doctor+Faustus · · Score: 1

      That, and PostgreSQL took longer to have a native Lose32 port.
      That was my problem. The last time I looked, the only Windows version required Cygwin, and even then, attempting to connect just gave me an error that told me absolutely nothing.

    61. Re:The name by Anonymous Coward · · Score: 0

      (Score: -1, Fucks Dogs)

  5. Heard it through the grapevine by Neo-Rio-101 · · Score: 1, Informative

    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*

    --
    READY.
    PRINT ""+-0
    1. Re:Heard it through the grapevine by pebs · · Score: 1

      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.

      --
      #!/
    2. Re:Heard it through the grapevine by linuxhansl · · Score: 1
      The auto-vacuum for quite a while, which is actually treating table based on statitics about how these table were modified.

      Now compare that to the InnoDB tablespace that will never(!) shrink. Sure you do not have to vacuum the InnoDB tablespace and it will internally re-use freed space, but the file itself will never shrink (which is the same as Postgres). MyISAM may be different, but if you want transactions you are actually worse off than with PostgreSQL (with auto-vacuum enabled).

    3. Re:Heard it through the grapevine by quantum+bit · · Score: 1

      Sure you do not have to vacuum the InnoDB tablespace and it will internally re-use freed space, but the file itself will never shrink (which is the same as Postgres).

      Normal (auto)vacuum won't release disk space, but VACUUM FULL will. It requires a table lock so it's not too good for highly concurrent databases, but if you really need the disk space you can get it back without having to re-create the table.

      It's been extremely rare in my experience that you would need to do that (data sets tend to get bigger rather than smaller), but the ability is there in Postgres if you do.

  6. Other things... by Saeed+al-Sahaf · · Score: 5, Insightful

    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.

    --
    "Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
    1. Re:Other things... by jadavis · · Score: 5, Insightful

      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.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    2. Re:Other things... by consumer · · Score: 1

      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.

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

    4. Re:Other things... by Anonymous Coward · · Score: 5, Funny
      I talk to people all the time who are befuddled by MySQL's lax type checking.

      That's why I use SQLite. Its lack of type checking is so profound, nobody has a problem grasping it!

    5. 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.
    6. Re:Other things... by Gnight · · Score: 5, Funny
      ...February 31st is NOT a date, and does not belong in any column named "date".

      You're just jealous that your year is shorter than mine. Don't hate on me because I refuse to recognize calendars that skip days. 31 days in every month. It's gotten me in a little trouble at work though...

      Isn't this fixed in recent versions of MySQL anyways?
    7. Re:Other things... by dwater · · Score: 2, Insightful

      > PostgreSQL is the Beta of databases.

      you mean "betamax", right?

      --
      Max.
    8. Re:Other things... by jbolden · · Score: 4, Insightful

      I agree with you 100% (and I'm an Oracle guy). Where I think the free databases are:

      Postgres -- getting closer to the kinds of features Oracle users want. Probably about at 8i level now. OTOH speed is nowhere near Oracle

      MySQL -- Roughly the same speed as Oracle. Doesn't scale. Features ain't even close (though 5 is miles ahead of 3, another 10 years and...)

      The problem for Oracle corporation is that 95% of Oracle users don't need the features of Oracle and thus MySQL is a good replacement for them.

    9. Re:Other things... by jadavis · · Score: 4, Informative

      Isn't this fixed in recent versions of MySQL anyways?

      In the last thing I installed which is whatever came from the FreeBSD ports collection, it was still a problem. 4.1 I believe.

      As MySQL gets a lot of flack for this poor design philosophy*, they have come up with "strict mode" as a solution. That's a configuration option that is more strict about reporting errors. It's a step in the right direction, but that makes it wildly imcompatible with many MySQL applications.

      So it's "fixed" in the sense that you can optionally break backwards compatibility to fix it. I haven't heard many reports about people actually trying to use strict mode.

      * MySQL has backtracked on design philosophy before. Remember back when an ACID transaction was evil and slow and MySQL would never implement transactions or triggers or anything else?

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    10. Re:Other things... by adolfojp · · Score: 4, Insightful

      I "inherited" a badly designed MySQL database that a couple of developers were shoveling data into with their nifty little apps. Empty dates were sometimes NULL and sometimes 0000-00-00 and sometimes something else. Also, since it was designed with MyISAM tables there was no referential integrity and there were countless orphans. I am so glad that it was not a database that dealt with bank accounts.

      MySQL has never cared about enforcing database integrity and are just starting to do so. The sad part is that the vast mayority of the people that use MySQL because it is the default database don't fully understand what data integrity or consistency is.

      Cheers,
      Adolfo

    11. Re:Other things... by jadavis · · Score: 2, Insightful

      MySQL has never cared about enforcing database integrity and are just starting to do so.

      Yes, the fact is that MySQL is trying to adopt a more PostgreSQL-like philosophy, using their market share and name recognition. In the meantime, the current users are in for a rough ride of backwards-incompatibility.

      So, the question is, does MySQL get PostgreSQL's features and philosophy in place before PostgreSQL get's MySQL's market share in place?

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    12. Re:Other things... by Anonymous Coward · · Score: 2, Insightful

      You might have something there. For some of our work mysql is stupid fast. But when we threw it at a nested query joining two tables, one with half a million rows and the other with five and a half million, mysql ran all night using 400MB of RAM and still couldn't return a result. Postgresql, with a fourth of the memory, spit out a result set in less than three minutes.

      Simple web shit, sure, mysql is the way to go. But mysql's query optimizer still wets the bed for serious data churning. If you have heavy lifting to do and don't have the money for Oracle postgres is golden. I just wish those guys could sell themselves better. Assuming they want to, of course.

    13. Re:Other things... by consumer · · Score: 3, Informative

      Strict type checking and triggers are both in MySQL 5, which has been out for a while now. You need to update your complaints.

    14. Re:Other things... by NoMoreNicksLeft · · Score: 1

      Don't know, but I'm getting in early. Postgres here all the way.

      Wasn't fun looking for forum software that worked with it though, and I didn't feel like running poth pg and mysql... ended up using phpbb for lack of anything else.

    15. Re:Other things... by jadavis · · Score: 4, Insightful

      I would be interested to see some benchmarks to back that up. PostgreSQL has a lot of features that can be used to improve the speed of a query by orders of magnitude.

      What if you have a table and you need a functional index on a user defined function? MySQL can't even do that, so it will be forced to scan the whole table. PostgreSQL makes it trivial.

      PostgreSQL can also combine indexes into in-memory bitmaps before looking in the table. That means you don't have to make a multi-column index for every combination of attributes you select. This is done automatically by the planner.

      When you actually make use of some of the "features that nobody needs" in PostgreSQL, you can see huge performance gains. I'm not sure how it stacks up against Oracle, because they don't let their users publish results.

      But yeah, you're right. If you just port some MySQL code to PostgreSQL, the PostgreSQL code will likely not perform as well (unless there are joins where the planner can use some of the features like the bitmap index).

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    16. Re:Other things... by hackstraw · · Score: 3, Informative

      I "inherited" a badly designed MySQL database that a couple of developers were shoveling data into with their nifty little apps. Empty dates were sometimes NULL and sometimes 0000-00-00 and sometimes something else.

      I "inherited" a badly written C++ project where an integer was to be displayed as ASCII text, and the data structure was a character field, and not an integer. Oh, sometimes the number was stored as hex or base 10. Now, the cute part was that this excellent programmer converted the datatype to and from base 10 and hex, and his exhaustive testing apparently never went past 10.

      Now, this code was copied and pasted about 3 or 4 times for different modules like admin or customer or something like that. And each one was subtly different.

      My point is that the tool is not always the problem. Now if C++'s integer arithmetic had an issue, that is another story, but the programmer simply was not good.

      Now, MySQL is not a very logical or robust DB at all times, but it is documented, and any competent programmer could have gotten around the 0000-00-00, NULL, and "something else" things.

      I checked some of MySQL's date functions, and one of them does this:

      mysql> SELECT CURTIME();
                      -> '23:50:26'
      mysql> SELECT CURTIME() + 0;
                      -> 235026


      That is weird. The curtime value in numeric context is only good for comparison to another valid curtime() whatever, but it can't be added or subtracted as an integer. Yes, MySQL _should_ make date fields something generic xor NULL, or a valid date, not Feb 31, 2000, but its something that needs to be done at the programming level. Personally, I always use UNIX timestamps (seconds since 1970). They can be directly added, sorted, and converted into any timezone, and its very portable. But thats just me. (Yes, UNIX timestamps do nothing before 1970, etc, etc).

    17. Re:Other things... by jadavis · · Score: 5, Informative

      MySQL's arguments, like it's features, always seem to be mutually exclusive.

      MySQL's benefits:
      * More Applications
      * Has strict mode if you need it
      * Easier to use by default
      * Speed
      * ACID

      The problems are:
      * Strict mode is not enabled by default
      * If strict mode is easier because of all the benefits of data consistency, then MySQL is not easy by default
      * PostgreSQL has more applications than does "MySQL Strict Mode".
      * ACID is only on the InnoDB table type, and the highest basic data access speed is on the MyISAM table type

      The list goes on. You can argue any one point and say it works just fine, and that you don't care about the other ones.

      But PostgreSQL is a whole solution. When they say you have ACID compliance, it doesn't matter what tables you operate on. When they have a reasonably consistent SQL dialect, it can't be configured to be drastically different on a whim, making half the applications (or more) not even work. In short, the features in PostgreSQL don't have long lists of dislaimers and incompatibilities with other features. They just work as advertised.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    18. Re:Other things... by adolfojp · · Score: 3, Insightful
      Yes, MySQL _should_ make date fields something generic xor NULL, or a valid date, not Feb 31, 2000, but its something that needs to be done at the programming level.
      A database should enforce certain rules so that its data will not be compromised. It must not allow bad external code to destroy its integrity, otherwise, it will be worthless for important applications. That is the purpose of features like stored procedures, constraints and trigers. MySQL has those features, but it is still missing some details like type consistency in certain areas.

      When it should be done, it should be done in the outside.
      When it must be done, it must be done in the inside.

      Cheers,
      Adolfo
    19. Re:Other things... by Anonymous Coward · · Score: 0

      You being an "Oracle guy" explains two things:

      1) Oracle is fast for you. If you're not an "Oracle guy", and you don't hire an "Oracle guy", it ain't.
      2) Postgres is slow for you. Yeah. Same thing.

      Surprise, surprise. You can make the code you were trained on run better than the code you weren't. It's a real issue, since there are a lot of "Oracle guys", and businesses need trained people; but it's not a matter of one being inherently faster than the other.

    20. Re:Other things... by jbolden · · Score: 2, Interesting

      What if you have a table and you need a functional index on a user defined function? MySQL can't even do that, so it will be forced to scan the whole table. PostgreSQL makes it trivial.

      You are going to laugh but since MySQL basically uses a 1 application model you just de-normalize and have the functional field inside the table itself.

      As for benchmarks there are plenty of benchmarks of Oracle vs. MySQL (a tie to slightly in MySQL's favor on what MySQL does well using cheap hardware. Anything else Oracle wins). There are plenty on benchmarks of MySQL vs. Postgres. The Postgres people seem to dispute these but they show MySQL killing Postgres. You can download Oracle for free. Benchmark it and go ahead and publish. That's a pure a 1st amendment case as I can imagine. Let them try and sue.

      PostgreSQL can also combine indexes into in-memory bitmaps before looking in the table. That means you don't have to make a multi-column index for every combination of attributes you select. This is done automatically by the planner.

      Oracle has a custom engine for star queries. It has some pretty substantial transformation rules when needed. As for MySQL it doesn't even pretend to support Datawarehousing so ...

    21. Re:Other things... by Jotham · · Score: 1

      Most of the time people hit imaginary dates due to really simple things like:
      tomorrow = today + oneDay;

      A good date parser should just automatically correct these so Feb 31st is actually stored correctly as March 3rd (or 2nd depending on the year). Otherwise code is tested, deployed and all works fine until it mysteriously falls over at the end of the year, resulting in some techie getting called in early New Years Day because yesterday (2006 Jan -1) is throwing an error.

    22. Re:Other things... by dodobh · · Score: 2, Informative

      You _can_ do the same things from the psql prompt. The system executables just make life easier.

      --
      I can throw myself at the ground, and miss.
    23. Re:Other things... by Bloke+down+the+pub · · Score: 0
      I am so glad that it was not a database that dealt with bank accounts.
      Yeah, I've seen a few howlers too - luckily they were only for stuff like air traffic control and ... well, I can't really say what the other one was for, but Cheyenne Mountain's lovely, isn't it?
      --
      It's true I tell you, feller at work's next door neighbour read it in the paper.
    24. Re:Other things... by arivanov · · Score: 1

      SQL does not allow adding and subtracting date types. I think this is part of the ANSI spec, but I may be mistaken. You need to use the interval ops.

      Example: http://www.sigsegv.cx/exim-greylist.html

      As far as the checking is concerned I think that 4+ does all checking including invalidating dates like 31 Feb correctly.

      --
      Baker's Law: Misery no longer loves company. Nowadays it insists on it
      http://www.sigsegv.cx/
    25. Re:Other things... by dfetter · · Score: 3, Informative

      Just one teensy little problem with "strict mode:" any client can turn it off! Somebody is unclear on the concept of Codd's 12th rule.

      --
      What part of "A well regulated militia" do you not understand?
    26. Re:Other things... by pboulang · · Score: 1
      No.

      Every major language has perfectly sane date libraries/types that handle adding dates and intervals as you say. It makes no sense for the parser to guess at what is meant by Feb 31st.. it should fail with an error. Immediately. And set the CPU on fire to get your attention.

      --

      This comment is guaranteed*

      *not guaranteed

    27. Re:Other things... by KiloByte · · Score: 2, Informative

      Yes, UNIX timestamps do nothing before 1970, etc, etc

      Incorrect. time_t is always signed, and thus it can represent any time from 1901 to 2038 on 32bit systems, and two thousand times the age of the Universe on 64bits.

      --
      The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
    28. Re:Other things... by jadavis · · Score: 1

      Typically you should add and subtract in a type-safe manner. Within PostgreSQL, you can simply add an interval of '1 day' and it will correctly give the following day. Any sane language library allows you to add an interval to a date.

      What you should not do, is pass garbage to the parser and expect the parser to clean it for you. You also should not start adding to arbitrary digits in the date string and hope for the best. What's "2 2" + "9"? Is it "11 2" or "2 11" or "31" or 31?

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    29. Re:Other things... by killjoe · · Score: 1

      How about....

      Firebird, ingres, SAPDb?

      --
      evil is as evil does
    30. Re:Other things... by jadavis · · Score: 5, Insightful

      Excellent point. That breaks isolation, and a bug in one application can still cascade problems into other applications.

      In particular this is likely to allow security problems in the application to cause malformed data to be entered into the database, thereby affecting other applications.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    31. Re:Other things... by Decibel · · Score: 4, Informative

      There are plenty on benchmarks of MySQL vs. Postgres. The Postgres people seem to dispute these but they show MySQL killing Postgres.

      Every single MySQL/PostgreSQL benchmark I've seen has either been absurdly trivial or benchmarked with MyISAM which is an apples to gorillas comparison. And they're all old benchmarks as well. Unlike MySQL's apparent philosophy of "1) Do the minimum to be able to claim we have feature XYZ 2) Make it fast 3) Maybe think about making sure it works sanely", the PostgreSQL community's top-most concern is data quality; performance is always seconday to that. Because of that there had been a lot of room for improvement through the 7.3/7.4 timeframe.

      That's no longer the case. People commonly see 30%+ speed improvements from 7.4 to 8.0, and 2x that from 7.4 to 8.1. And more improvements are on the way. 8.2 is looking to have on-disk sorts that are 4x faster than today, as an example.

    32. Re:Other things... by Lispy · · Score: 5, Funny

      Basically once I retire I have this scheme to sue all sorts of companies for getting paid on a monthly basis but providing less service in February or even in a 30 days month. This should keep me busy til I die and sounds like a fun petproject to manage from my couch. :)

    33. Re:Other things... by Kjella · · Score: 2, Informative

      ncorrect. time_t is always signed

      Unfortunately. that depends on where you look. Let me point you do the latest QDateTime class in qt. The relevant bits:

      void setTime_t ( uint seconds )
      uint toTime_t () const

      Now this may be due to limitations on other platforms, but in any case you can't assume that everyone using "time_t", or that think they do, can handle signed integers.

      --
      Live today, because you never know what tomorrow brings
    34. Re:Other things... by sydb · · Score: 2, Informative

      Have you looked at phpGroupware or it's prettier offshoot eGroupware? They come with one, maybe two forum modules. The one I used was Fudforum, bad name but it works. Works with either PostgreSQL or MySQL, at least on Debian you get the choice at install time.

      --
      Yours Sincerely, Michael.
    35. Re:Other things... by mikek3332002 · · Score: 1

      The one I used was Fudforum Bet its great for halloween events!

    36. Re:Other things... by swilver · · Score: 1
      OTOH speed is nowhere near Oracle
      I can't help but laugh at such statements. The speed of a database is almost completely determined by table structure, indices, caching and the performance of your storage solution.

      None of these are in any ways so incredibly complex that Oracle could do it an order of magnitude better than PostgreSQL. So I can only conclude that in these tests one of the systems wasn't correctly set up, missed essential indices or optimized the query in an unexpected fashion.

      Any database which has the ability to use indices can easily work with tables with millions of records, as long as the results are a small subset and the query actually uses the index properly (a seek, not a scan of the index). For large result sets, things like clustered indices, caching and the speed of your harddisk subsystem starts to play a large roll. For result sets >10% of the table, most systems will simply perform a table scan (or index scan depending on which columns you actually need).

      Of course there are always things that one database can do with good performance that an other can't because of a lacking feature -- in the general case however there's no reason that any sufficiently advanced database system is orders of magnitudes faster than any other.

    37. Re:Other things... by masklinn · · Score: 2, Informative

      I shall inform you that PunBB does run on PostgreSQL if you wish it to.

      --
      "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
    38. Re:Other things... by masklinn · · Score: 1

      There are plenty on benchmarks of MySQL vs. Postgres. The Postgres people seem to dispute these but they show MySQL killing Postgres.

      I've never seen any MySQL/InnoDB vs Postgresql bench where MySQL was "killing" postgresql. Please do show me one (and not MySQL/MyISAM against Postgresql, that's like comparing SQLite against Oracle, there's just no point)

      --
      "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
    39. Re:Other things... by Doug+Neal · · Score: 1

      ACID is only on the InnoDB table type, and the highest basic data access speed is on the MyISAM table type

      Forget using InnoDB for any high-traffic app unless you're prepared to fork out for the InnoDB hot backup utility.

    40. Re:Other things... by cvalente · · Score: 3, Insightful

      "Simple web shit, sure, mysql is the way to go. But mysql's query optimizer still wets the bed for serious data churning. If you have heavy lifting to do and don't have the money for Oracle postgres is golden."

      right on.

      MySql should be considered for things that only need to be structured a little better than a plain textfile when the number of entries renders the textfile approach not practical. This is say webapps where you only need to save name/email/address, etc. For this MySql is better and faster than Postgres and therefore a better option.

      For applications whose main need is to have a large number of complex related data stored, don't even think MySQL here.

      Specially if your queries use a lot of joins (say 3 or more). Postgres is the way to go. Good performance, better data integrity and many more (used/usefull) features. If you do a lot of delete/updates then you'll have to have a good "cleanup" procedure or performace will become very low. This can be done on the fly and usually during a time period where data isn't much used (most usages have a period where access is low, but not all).

      Version 4 was a great improvement on almost all of this.

      --
      https://www.accountkiller.com/removal-requested
    41. Re:Other things... by duncangough · · Score: 1

      Fucking guess what... If they were creating an app to handle bank accounts they wouldn't have used MySQL. Why is it so hard for people to grasp this idea? The right tool for the job. MySQL is great for 99% of what it is used for, warts and all. The sad fact of the matter is that you've forgotten what it's like to learn about data integrity and consistency.

    42. Re:Other things... by tolonuga · · Score: 1

      > February 31st is NOT a date

      nor is Feburary 30th. But german banks charge interest for the 30th of
      February. all the time. legal. even approved by the highest court.
      (something about exponential mathematics being too hard for the average
      citizen, so calculating with 360 days a year and linear interest is better).

      You need to be more flexible if you want to target customers like german
      banks as well.

    43. Re:Other things... by PhraudulentOne · · Score: 1

      I've had customers phone up and complain that they don't want to pay the same rate for February because it is a short month. I just tell them that we define a month as having 30 days. We don't charge more for all the 31's, and we don't charge less for the 28.

      (but yes, I realize your joking about actually doing this -- or are you? ;P )

      --
      You create your own reality - Leave mine to me.
    44. Re:Other things... by NoSalt · · Score: 1

      If your application has an bug and inserts an invalid date, you don't want that error to cascade to another application

      Like you said, if your application has a bug in it ...

      I wouldn't go around blaming MySQL for not checking input into your application. If a programmer's code was tight then that person wouldn't have this problem. MySQL does just what is supposed to do, which is store data. It is up to the programmer to make sure that the data entered into the database is correct.

      I like MySQL because it is small and has simple syntax. It is perfect for small to medium databases which is what many web developers need. Not all of us are Amazon.com.

    45. Re:Other things... by hackstraw · · Score: 1

      Incorrect. time_t is always signed, and thus it can represent any time from 1901 to 2038 on 32bit systems, and two thousand times the age of the Universe on 64bits.

      Incorrect. By definition, time_t at 0 equals Jan 1, 1970 00:00:00 GMT.

      It was a Thursday:

      TZ=GMT ./gmt2localtime.pl 0
      Thu Jan 1 00:00:00 1970


    46. Re:Other things... by Anonymous Coward · · Score: 0

      Good, I'm personally going to put an end to the nuisance of selling hotdogs in 8 or 10-pack but the buns in 6 or 12-pack. I intend to do this by calling every single store in the world having them explain it to me. This will be my legacy.

    47. Re:Other things... by orderb13 · · Score: 1

      if the developers knew what they were doing they wouldn't need referential integrity. Properly made transactions are the only way to fly as they are only used when needed and don't put a constant drain on the DB server like enforced ref integ would.

    48. Re:Other things... by jbolden · · Score: 1

      very single MySQL/PostgreSQL benchmark I've seen has either been absurdly trivial or benchmarked with MyISAM which is an apples to gorillas comparison.

      1) Not really. You saw Oracle benchmarking itself against DB2 and RDB ISAM, back in the late 80's and early 90's. In fact Oracle's implementation of IOT was allowing ISAM tables to be full featured in an RDB environment. Oracle still allows for non-SQL based access to to ISAM structures for COBOL compatibility. So no I don't think its unreasonable. Now you could argue that unlike Oracle there aren't a whole bunch of the mainframe COBOL guys using ISAM style procedures against a MySQL relational database and thus what's fair for Oracle isn't fair for MySQL; but that's a different argument then that using an ISAM comparison isn't fair.

      The relational crowd 15 years ago had to prove that you could have data integrity and speed.

      2) If you yourself admit that Postgres has gotten much faster while MySQL hasn't but that Postgres then how does that differ from what I had indicated? Anyway doing a google search I hit benchmark after benchmark after benchmark I don't see any at Postgres site which refute the common wisdom.

    49. Re:Other things... by pmc2 · · Score: 1

      Wow my data import went great without a hitch. Wait what's this? None of the check constraints were fired off? Referential constraints also went unchecked???

      Then I found that you must explicitly tell mysql to act like a real database everytime you make a database connection.
      $dbh->do("set sql_mode='TRADITIONAL'");

      Apparently sql_mode='STUPID' is the default.

    50. Re:Other things... by jbolden · · Score: 1

      Oracle didn't think there was no point regarding SQLite. They specifically designed systems that could compete with SQLite (no logging, raw writes, no undo). There are people that need to go at close to harddrive speed and are willing to sacrifice transactions to get there. I'm not arguing that using Postgres' model that MySQL crushes Postgres but rather that in anything other than Postgres' model its speed is poor.

    51. Re:Other things... by KiloByte · · Score: 1

      Incorrect. By definition, time_t at 0 equals Jan 1, 1970 00:00:00 GMT.

      At 0, it's 1970. At -2^31, it's 1901:

      perl -e 'print scalar gmtime 0x80000000'
      Fri Dec 13 20:45:52 1901

      --
      The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
    52. Re:Other things... by Gambit253 · · Score: 0

      My math says that comes out to "2 k" (assuming ascii characters are used, different character sets I'm sure give different answers)

    53. Re:Other things... by jbolden · · Score: 1

      Oracle offers a very fine grained control of table structures. Partitioning, Index organized tables, external tables (so you can use a custom access engine). They make this practical with things like built in object relational syntax. So yeah they can make a difference on table structure.

      As for indexes AFAIK Oracle and Postgres offer the same features. As far as the query engine you are kidding when you compare Postgres' to Oracle's?

    54. Re:Other things... by onlyjoking · · Score: 1

      Now MySQL 5 has so many new features has anyone tested how much faster it is, using InnoDB, compared with Postgres? If it isn't much faster I can't see any reason to go with MySQL because speed has always been MySQL's selling point. The whole choice of table type thing always seemed clunky to me with MySQL.

    55. Re:Other things... by hackstraw · · Score: 1

      At 0, it's 1970. At -2^31, it's 1901:

      perl -e 'print scalar gmtime 0x80000000'
      Fri Dec 13 20:45:52 1901


      And its Friday the 13th :)

      Personally, I would feel uncomfortable having negative times, but I learned something new.

    56. Re:Other things... by Anonymous Coward · · Score: 0

      Not by default.

    57. Re:Other things... by tha_mink · · Score: 1

      What people seem to always leave out when comparing the two dbs is the fact that PostGreSQL has way more features than MySQL. Just simple features like views and transactions. The big missing feature is a language like PL. These web apps that everyone use Mysql for, would be much better served by keeping logic in the DB. PL is easy to learn, easy to use, and keeps the logic seperate from the interface, which makes deploying stuff way easier. That is the single factor for me that makes PostGreSQL way more valuable than Mysql. I don't understand why the postgres folks have not tried to spread the word that keeping the logic in the DB is the way to go.

      --
      You'll have that sometimes...
    58. Re:Other things... by Zerbs · · Score: 1

      UNIX timestamps (seconds since 1970)

      so does that mean that UNIX has a year 2106 problem like the infamous year 2000 problem for people who used 2 digit years?

      --
      "22 astronauts were born in Ohio. What is it about your state that makes people want to flee the Earth?" Stephen Colbert
    59. Re:Other things... by consumer · · Score: 1

      So your complaint is that MySQL is too configurable? And you don't like the default configuration? Most Slashdot readers could name a few dozen pieces of software they feel that way about. The fact remains, MySQL can be very similar to PostgreSQL for those who want it to be.

    60. Re:Other things... by cortana · · Score: 1

      Looks like a QT bug to me.

    61. Re:Other things... by colinrichardday · · Score: 1

      Perhaps the GP was asking if MyISAM supports transactions yet?

    62. Re:Other things... by OneSeventeen · · Score: 1

      I've been using MySQL for years now, and PostgreSQL for about 3 months. Most of my new web apps are written in PostgreSQL when I have the opportunity to work with a PostgreSQL server. I do this not because I use all of the features Postgres has, but because it has them, ready for when I do want to use them.

      I also like the license for Postgres. 100% free 100% of the time. I've re-read the MySQL license agreement, and it appears as though they have changed it to be even more confusing.

      I love working with both MySQL and PostgreSQL, but the only difference for me as of now is I use phpPgAdmin instead of phpMyAdmin. And the difference in there is I have to create my tables inside a database's schema. I have no idea what this means, but there is a default schema "public" so I don't have to worry about what it means until I want to start taking advantage of the more robust features.

      I guess there is one more difference though, I can set up complex queries and save them as a view, then in PHP I just SELECT * FROM posts WHERE user = $user; (of course there would be error checking and other syntax), which is much simpler than my PHP statement containing a huge 20 line query that pulls data from 5 or more linked tables.

      Now, the reason I wouldn't use PostgreSQL in some instances, PostgreSQL still does not have any clustering features that I am aware of. (I'm a newbie, so maybe it does, but all signs point to no for now) I also think that MySQL has better user documentation. The day PostgreSQL sheds light on common pitfalls in their manual, and gives real-world usable examples of each documented function, I will be a happy man.

      In the meantime, I agree with the article, more web hosts and privately owned web servers should look into Postgres before jumping into the MySQL boat. They may still stick with MySQL, but at least they saw what else was out there.

      --
      "Now the trouble about trying to make yourself stupider than you really are is that you very often succeed." -C.S. Lewis
    63. Re:Other things... by hey! · · Score: 1

      Benchmarking databases though is full of pitfalls. It's all too easy to compare apples to Oranges. For example, why does MySQL have both MyISAM and InnoDB tables, apart fom legacy uses? Because sometimes certain features are more important than raw speed, and sometimes its the opposite.

      In any case, comparing MySQL to Oracle is like comparing a cold chisel to a backhoe mounted pneumatic drill. They're both good tools for breaking up stone, but one is easier to carry in your toolbox.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    64. Re:Other things... by jbolden · · Score: 1

      The ISAM model isn't much faster transactions. Its based on batch processing. I don't know what he meant though.

    65. Re:Other things... by jaydonnell · · Score: 1

      Your keep returning to this point about one applications bug cascading to other applications. Your missing the point that the vast majority of us don't use multiple applications with a single database. I.e. mysql works great for me and for most people. I've written atleast 10 serious applications with mysql and never had a problem with this date issue, and never had a bug cascade to other applications. This doesn't mean mysql is right for you, but it works well for most of us.

    66. Re:Other things... by jaydonnell · · Score: 1
      It must not allow bad external code to destroy its integrity, otherwise, it will be worthless for important applications.

      define important. All the web applications I've ever made are essential to our business, they all us mysql (except on with is using sql server), and they are all successfull. You are absolutely right that a bank, hospital, etc, shouldn't use mysql. This doesn't mean that no one should and it doesn't mean that it can't be used for "important" applications. One thing people like you tend to forget is that there are costs to all the data integrity checks. Sometimes it's performance, sometimes it's added complexity, and sometimes it's just something that adds time to a developers work. The benefits don't always out weigh these costs.
    67. Re:Other things... by antarctican · · Score: 1

      you mean "betamax", right?

      Yes, my bad for not using the whole term to be clear.

    68. Re:Other things... by drew · · Score: 1

      As someone who has worked fairly extensively with all three databases, I have a fe comments to add to that.

      Postgres may not have quite all of the features of Oracle, but it has the ones that most people need. On top of that, it is orders of magnitude easier to maintain. I have setup and maintained a number of Postgres databases with little trouble, but I would rather pull my teeth out than have to ever set up or configure Oracle ever again. Oracle seems to have a vested interest in maintaining the job market for highly paid Oracle DBA's. In my experiene, the only companies that need Oracle are the ones that have enough critical data that it is worth spending $100K+/year just to have somebody babysit your database full time.

      MySQL is a good database when you use it for it's strengths and recognize its weaknesses. In my experience, it is far faster than Oracle. The one company that I worked for that really used MySQL appropriately used MySQL servers to log all of the transactions (about 6 billion/month if I remember correctly) and various associated data, because Oracle was far too slow to keep up. The transactions were then aggregated accross all the MySQL servers to two big Oragle databases for long term record keeping, billing, etc. When the MySQL servers inevitably corrupted themselves (about once a week or so) we would just truncate the bad table and lose at most a few minutes of transactions from one of the MySQL servers. MySQL is great when you need super fast access to non-critical data, but for anything else you would be beter off with a different database, whether it be Oracle, Postgres, or something else.

      --
      If I don't put anything here, will anyone recognize me anymore?
    69. Re:Other things... by jadavis · · Score: 1

      No, my complaint is that the features are advertised as being present, yet each feature is highly conditional. It's deceptive.

      PostgreSQL is complete. If they advertise a feature, it works fluidly in conjunction with all the other features they advertise.

      What if you bought a car? "It is fast" and "it has airbags". Well, what if you find out the hard way that the airbags only work in gears 1 and 2, not 3, 4 or 5? Then the "airbags" feature is not complete. That is my argument.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    70. Re:Other things... by jadavis · · Score: 1

      Interesting information, but just because the German High Court says that February 30th is a date doesn't mean it is.

      If you are a bank there are probably lots of date-oriented laws by which you must abide. If a bank needs a special date type where every month is 30 days, they can make a custom type in PostgreSQL that handles it according to local laws.

      By the way, if every year has 360 days, isn't there drift due to leap years?

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    71. Re:Other things... by h4ck7h3p14n37 · · Score: 1
      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".

      I think I missed the discussion you're referring to, but be aware that a database such as Oracle behaves similarly. If you specify a day of the month that's past the last day of the month, the database will roll-over as many months as it needs in order for the date to make sense. For example, March 32nd is a valid date, and will be stored as April 1st.

      I can only guess that this behaviour is supported as it makes it much easier to perform arithmetic with date values.

    72. Re:Other things... by nuzak · · Score: 1

      > Strict type checking and triggers are both in MySQL 5, which has been out for a while now. It still has no INSTEAD OF triggers. Updated enough for ya?

      --
      Done with slashdot, done with nerds, getting a life.
    73. Re:Other things... by jadavis · · Score: 1

      If a programmer's code was tight then that person wouldn't have this problem. MySQL does just what is supposed to do, which is store data.

      What you're saying is that every application should have to trust not just the database and DBAs, but every other application attached to the database.

      That makes it hell to find bugs that insert bad data. In PostgreSQL, you can set it up so that the application which has the bug gets the error. In MySQL, the bug might not be discovered until another application gets confused by the bad data. Even if the second application properly detects the error, it has no information to help you find the source of the bug.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    74. Re:Other things... by aevans · · Score: 1

      And the other 5% need the speed and stability of Oracle, so Postgres is out.

    75. Re:Other things... by jadavis · · Score: 1

      A lot of people use PHP/MySQL. One PHP page inserts bad data, another tries to access that bad data. It might not be multiple applications, but it's distinct operations within one application. It's a lot easier to debug if it throws an error on the page that tries to insert the bad data, because then you know exactly what caused the error. If you're just staring at bad data in the database already, you have no way to know where it came from.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    76. Re:Other things... by geoffspear · · Score: 1

      Are you under the impression that 0 is the smallest signed integer? Or did you just not bother to read the sentence you quoted?

      --
      Don't blame me; I'm never given mod points.
    77. Re:Other things... by jaydonnell · · Score: 1

      Let me start by saying that I do good unit tests on all my code for serious projects. If you have good practices this isn't really a problem. Also, my backend models (think rails if you know it) have all the necessary validations. I personally would rather do validation in my models because it's much easy to code (and test that the code works) in ruby or php than it is in whatever in build sql language your db uses. I.e. I would much rather write a ruby validation (for something non trivial) than a trigger in T-SQL. Ultimately your ruby/php code has to handle the error so why not validate it in your code? Take your Feb 31 example. My code needs to know that an invalid date was input and needs to tell the user that they need to put a valid date. Since I have to do this it's so much easier to do the validation in the ruby/php model. Don't get me wrong though. If it's something really trivial to implement in your db then that extra level of safety is good, but it's not a major issue for me in most circumstances.

    78. Re:Other things... by zardo · · Score: 1

      I know PostgreSQL is a better database engine

      Ambiguous. You can't say one is better than the other. MySQL actually has pluggable database engines, and if you're comparing Postgres to InnoDB, they have a lot in common. I don't know of anything different about the Postgres transaction engine and InnoDB.

    79. Re:Other things... by Anonymous Coward · · Score: 0
      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".
      What about consistency? What moron stores dates in that format, anyway? I *always* store dates as seconds since the epoch.
    80. Re:Other things... by consumer · · Score: 1

      InnoDB tables are very fast. It is accurate to describe MySQL as fast and ACID-compliant.

    81. Re:Other things... by pthisis · · Score: 1

      There are plenty on benchmarks of MySQL vs. Postgres. The Postgres people seem to dispute these but they show MySQL killing Postgres.

      All the serious benchmarks I've seen show MySQL killing postgress for simple queries on small and large databases and bulk inserts, and Postgres killing MySQL for complex queries on large databases and random inserts.

      --
      rage, rage against the dying of the light
    82. Re:Other things... by jadavis · · Score: 1

      You make a good point. As with anything, it depends a lot on the situation. If that works for you, and you control the entire code base, you're in good shape. Frameworks can help prevent inconsistent database state. And there is a certain redundancy to implementing the check in the database. However, note that since PostgreSQL has already written a date type, and you already declared your column as date in either database, it's no additional work to use, and it's not like it's a performance penalty.

      Also, consistency checking can still be helpful. If the coder is slightly lazy for a moment and during testing you get inconsistent data in the database, it's really hard to extract that data out and get it back to a consistent state. If you have good development practices, this may never happen. But it's very annoying when it does happen.

      Code can be stopped, fixed, and restarted, but the data in the database represents long term application state, and if that gets inconsistent it can do a lot of damage.

      That being said, I don't claim to always program every business rule into the database for 100% consistency. But doing the easy stuff can go a long way: check constraints, a trigger or two, foreign keys, and type checking (which is generally not any additional work).

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    83. Re:Other things... by Lispy · · Score: 1

      100% support! Together we make this world a better place! :)

    84. Re:Other things... by jaydonnell · · Score: 1

      agreed :)

    85. Re:Other things... by JulesLt · · Score: 1

      Problem is with Oracle users, we don't really care if it's FOSS or not from a political standpoint - and Oracle XE has even removed the cost imperative for D/B of quite reasonable size.

      If I was starting a wholly NEW project, I'd certainly consider it - PostgreSQL definitely looks the best of the free D/B, and is progressing at a good rate - it's enough of the way there that you could probably live without the additional features, which are more productivity than functional. We're using it for a new prototype app at work.

      I think there's still some way to go with the procedural language (it's somewhere between Oracle 7 and 8 at the moment), and is also missing a number of the libraries / API that Oracle offers to pl/sql developers, making a direct migration less straightforward that it might seem. For starters it doesn't support Named parameters, which are a great way of protecting against interface change and increasing readability of code.

      Aside from license costs, can anyone tell me what the compelling advantage is for postgres over Oracle?

      --
      'Capitalists of the world, unite! Oh ... you have' (League Against Tedium)
    86. Re:Other things... by jZnat · · Score: 1

      No, it would be 2038; the 32-bit timestamp was signed, so you centred it around the UNIX epoch.

      --
      'Yes, firefox is indeed greater than women. Can women block pops up for you? No. Can Firefox show you naked women? Yes.'
    87. Re:Other things... by jadavis · · Score: 1

      A lot of benchmarks are published using MyISAM, and a lot of anecdotal evidence that's passed around refers to MyISAM, because it's the default. When people hear about these results, they assume that all of MySQL is fast. When people hear about transactions, they assume all of MySQL has transactions.

      I have not seen anything that demonstrates that InnoDB is faster than PostgreSQL in the general case. In fact, InnoDB employs a lot of the same design as PostgreSQL tables. InnoDB uses MVCC-like technology, and a VACUUM-like garbage collection process called "purge". For most types of operations, InnoDB will be similar in performance to PostgreSQL.

      I'm not saying that InnoDB is slow. I'm saying that MySQL AB uses deceptive marketing. They are very successful at marketing by using MyISAM as the default, so that anecdotal evidence about speed are always very positive toward MySQL, and then when someone wants transactions then then MySQL must pull the switcharoo on the table type.

      It's like you walk into a store because they advertise one price and it's cheaper than the competition. Then you get there and the product doesn't come with a power adapter, so you have to fork over an extra $5. By the time you leave, the price was the same.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    88. Re:Other things... by jadavis · · Score: 1

      If you really don't care about transactions, in PostgreSQL you can always turn fsync off and put the logs on a RAM disk. That will be fast but unsafe, just like you're talking about.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    89. Re:Other things... by jadavis · · Score: 1

      Now, the reason I wouldn't use PostgreSQL in some instances, PostgreSQL still does not have any clustering features that I am aware of.

      It sure does:
      * Slony-I: master-slave, table-level backup. Works across postgresql versions, which means it's very convenient to use to upgrade. Very good software, well tested in live environments (that's what serves the .org in slashdot.org, and every other .org or .info).
      * PgPool: Query based replication software and network management software. This can work as multi-master by distributing queries, or work with Slony.
      * Also, 8.1 has the very nifty feature called "Two Phase Commit" (a.k.a. 2PC). This allows network management software to synchronously commit on multiple machines to create a multi-master solution.

      gives real-world usable examples of each documented function,

      If something is lacking in the documentation, please write to the mailing lists. I'd be happy to write a few documentation pages in my spare time. However, what might be obvious to a PostgreSQL person might not be to someone coming from another database background. So, I don't know what about the documentation needs work.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    90. Re:Other things... by jbolden · · Score: 1

      Right but Oracle is allowing you to do this at the table level. So some tables are safe and some aren't.

    91. Re:Other things... by jadavis · · Score: 1

      Interesting. That is cool.

      Oracle gives you a LOT of power. I've heard complaints about it, but I've never heard that it couldn't do something if you work at it long enough. I don't have experience with it myself.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    92. Re:Other things... by jbolden · · Score: 1

      Download it. You won't have any trouble with it. I can tell by this conversation you know what you're doing. Oracle is a professional database. For a long time they were being used everywhere and so there are lots of people that really would have been better served by Filemaker pro, or SQL Server or even Access that ended up using Oracle and hated it. Like Linuxes the stuff that was hard to do 10 years ago is now easy but there is new stuff that is hard.

    93. Re:Other things... by rtaylor · · Score: 1

      Oracle has a custom engine for star queries. It has some pretty substantial transformation rules when needed. As for MySQL it doesn't even pretend to support Datawarehousing so ...

      While not as advanced, PostgreSQL will also apply similar query optimization techniques when required but with 2 differences.

      1) The cost based optimizer is always enabled for all query types.
      2) It builds the bitmap index on the fly from a standard index. This allows the usual AND and OR combining of bitmaps but without a huge expense for INSERT/UPDATEs. There are people interested in a real bitmap index and support will be added but this middle of the road approach makes it useful for ad-hoc queries in OLTP databases.

      There are some people working on true (on-disk) bitmap indexes in PostgreSQL for specific data-warehouse DBs.

      --
      Rod Taylor
    94. Re:Other things... by jbolden · · Score: 1

      It builds the bitmap index on the fly from a standard index. This allows the usual AND and OR combining of bitmaps but without a huge expense for INSERT/UPDATEs. There are people interested in a real bitmap index and support will be added but this middle of the road approach makes it useful for ad-hoc queries in OLTP databases.

      That's interesting. I actually wouldn't consider that Datawarehouse but rather "hybrid" (both OLTP and DW in one database). That's a great niche for Postgres to get into no one has a good hybrid solution at all. I'd be willing to argue that's a large enough market that it makes sense ti simply target it all together.

  7. 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 sheister · · Score: 0, Offtopic

      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.

    2. Re:Web developers... by Anonymous Coward · · Score: 0

      What the hell is perl-syndrome?

    3. Re:Web developers... by syphax · · Score: 4, Insightful


      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.

      Cheers.

      --
      Simple Unexpected Concrete Credible Emotional Stories
    4. Re:Web developers... by ttfkam · · Score: 4, Funny

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

      --

      - I don't need to go outside, my CRT tan'll do me just fine.
    5. Re:Web developers... by consumer · · Score: 1

      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.

    6. Re:Web developers... by felix9x · · Score: 1

      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.

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

    8. Re:Web developers... by patiodragon · · Score: 1

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

      Heh. That, and it would look like hieroglyphics...

    9. Re:Web developers... by I+Like+Pudding · · Score: 1

      I have met exactly zero Perl coders who do that, and fail to fall into that trap myself. That guy is just a moron.

    10. Re:Web developers... by rtaylor · · Score: 1

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

      I've done that several times. Yes, it's easier to write in sed or awk but often comes out more portable in Perl.

      The perl script you write on FreeBSD will probably work the same (given the usual filesystem layout differences, etc.) on Solaris, Linux, Mac OSX, etc. Sed and/or awk will have unknown (unknown to me anyway) differences between the various environments starting with flags and ending in command syntax or supported regular expression syntax.

      --
      Rod Taylor
    11. Re:Web developers... by consumer · · Score: 1

      And this is somehow Perl's fault? You could call it bash-syndrome or Ruby-syndrome just as easily.

    12. Re:Web developers... by EABinGA · · Score: 4, Funny

      From bash.org Quote #6618

      Jon^D: I had to cat 8-9 seperate quote files, compare each line in each of them to make sure there weren't any duplicates then sort

      Jon^D: I wrote a nasty perl script to get it done

      Jon^D: and it didn't work very well

      skank: cat quote*.txt |sort |uniq

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

    14. Re:Web developers... by NutscrapeSucks · · Score: 1

      Well, you have to consider that on one end of the scale you have MySQL. And on the other you have elaborate Java "ORMs", but the idea is basically the same -- keep the webdev away from the SQL.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    15. Re:Web developers... by jrjarrett · · Score: 1

      You're kidding me. MySQL STILL doesn't have RI? That, right there, would be the only reason I'd need to use PostgreSQL. (in fact, I have.)

    16. Re:Web developers... by Anonymous Coward · · Score: 0

      We could use referential integrity but its not too essential if you code things carefully.

      Just had to repeat that, to highlight how ridiclous these people are.

    17. Re:Web developers... by NutscrapeSucks · · Score: 1

      Isn't "bash-syndrome" basically the same thing as "Unix Syndrome"? And we all know that's a good thing, uh, right?

      (Because writing essential system logic in an archaic shell language with limited flow control and error handling is a million times better than, say, VBScript. [Prepares to take my flamebait mods like a good boy.])

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    18. Re:Web developers... by Brandybuck · · Score: 1

      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.

      I tend to do everything with bourne shell. I guess I have sh-syndrome. In my favor, however, I'm using it as "glue" to leverage the power of the rest of Unix, like grep, sed, awk, etc. That's what it's for.

      --
      Don't blame me, I didn't vote for either of them!
    19. Re:Web developers... by phsdv · · Score: 4, Informative
      you do not even need 3 different commands, and certanly no pipes:

      sort -u quote*.txt
    20. Re:Web developers... by Schraegstrichpunkt · · Score: 1

      What happens if the UDP packets get lost?

    21. Re:Web developers... by naich · · Score: 1

      I would guess that for 95% of websites, simple SELECT, UPDATE and INSERTs are all that's needed. Your average gallery/blog/etc. doesn't need anything more than SELECT x FROM y ORDER BY z. That's the reason why I don't use anything better than MySQL - I don't need to.

    22. Re:Web developers... by jschrod · · Score: 1
      Existence and usage of CPAN -- one of the repositories with the widest reuse of library code -- contradicts your empirical evidence and points out another root cause for your case: That guy is simply incompetent.

      Whereas, just configuring syslog is often not a solution either. One has to use syslog-ng to get reliable TCP connections and then still has no encryption.

      --

      Joachim

      People don't write Manifestos any more -- what's going on in this world? [Frank Zappa]

    23. Re:Web developers... by Aceticon · · Score: 1

      Spreading your logic across multiple layers and using multiple languages is really bad for maintenability:
      - The code in each layer tends to tightly coupled to the code on any other layer
      - The application is now vendor locked
      - New versions of the engines in any layer might break you application
      - Any new person that is going to maintain/extend the application will need to know multiple languages, possibly with some being very specific to the server engines used.

      <RANT>Of course if all you do is small web applications which are far from actually having a technical architecture, then feel free to spread you business logic all the way from browser-side JavaScript to database stored procedures - just make sure YOU maintain it for the next couple of years</RANT>

      PS: As a freelancer i have often been the guy that has to unwrap/fix applications where the original design decisions where taken on the base of the "this looks fun to try", "doing this sounds cool" or "it will look good on my CV" kind of considerations. I am thus kinda pissed-off at having to clean up after some damn amateur designer's moment of self-pleasure.

      PPS: Having recently worked on an assignment on a web developlement consultancy and after seing how things are done and noticing that they are far from bankrupt, i can confidently say that this part of the industry is the most amateurish, incompentent and disorganized segment of the IT world. Then again, i've often done mission critical systems and backend integration so maybe i'm just too demanding.

    24. Re:Web developers... by mano_k · · Score: 1

      Second that. I had the pleasure of helping to teach databases in theory and praxis to a bunch of kids with some expierence as web developpers!

      They were totally sure they were DB experts, some of them hadn't grasped what DB integrity *is* at the end of the semester, and the less said about the practical homework I had to correct, the better!

    25. Re:Web developers... by pimpimpim · · Score: 2, Interesting

      yup, another one who fell into the useless use of cat trap!

      --
      molmod.com - computing tips from a molecular modeling
    26. Re:Web developers... by pimpimpim · · Score: 1

      bah, official links is of course: http://uuoc.com/

      --
      molmod.com - computing tips from a molecular modeling
    27. Re:Web developers... by Pete · · Score: 1

      MySQL does have referential integrity - if you use the right table type. The default MySQL table type, which I think is called MyISAM, doesn't have RI - but there's an alternative table type called InnoDB, which does.

      I think there are other MySQL table types as well, with different performance characteristics and tradeoffs. The MyISAM table type is (as far as I understand) well suited to very frequent reads and infrequent writes, performing very well for that sort of usage pattern - which, coincidentally, matches up well with the needs of most websites.

      PostgreSQL, by contrast, doesn't have a choice in table types. Not that table-type choice is necessarily a good (or bad) thing.

      MySQL 5 is actually not too bad - I can tolerate it :) - but I still much prefer PostgreSQL (for all sorts of reasons).

    28. Re:Web developers... by Tarwn · · Score: 2, Insightful

      At the same time, aren't all of the reasons you mentioned also good reasons to seperate the SQL from the code asmuch as possible? Move everything to stored procedures, perhaps even encapsulate those calls in your code in their own functions, etc and then you can make just about any major changes ot the backend you want, provided you also update the stored procs. From the frontend you can change to any other type of datasource you want, provided you update the functions that are actually getting your data.

      There is some logic that is easily moved to the database layer that does not need to be part of the applicaiton logic. I have seen web apps that do running totals or category totals completely on the fly when a simple SUM statement would have sufficed. Logic for INSET vs UPDATE statements canactually be handled by the database in some circumstances, as it actually allows greater flexibility in the future. Want to add traceability? If you already took the previous step than this now bcomes trivial because it can be done in the database withoutever touching the application code.

      Same thing with the front-end. Since we are talking web, there are many reasons (beyinf eficiency) to keep your HTML sparse and try to place most of the formatting and prettiness in external CSS files. This does add complexity if you judge complexity by number of languages, but it adds simplicity to maintainability. Need to make vast sweeping changes to the color of somehting on the site? No problem, you don't need to know PHP/ASP/JSP/whatever, just modify the CSS file (if it was done right). You still have some crossover when it comes to the server-side code that is operating behind the scenes, as you do need o know CSS, HTML, and whatever server-side language your using, but what you won't be doing is searching through who knows how much code for the single remaining bgcolor attribute or inline style attribute.

      I agree that taking this concept too far is worse than no seperation at all. But in moderation you do get a large number of advantages. I actualy had a good example of "too far as to be useless" the other day when our coop explained the restricionts their teachers were putting on them for a software project:
      5 distinct layers in a web app, not counting CSS, with every layer bleading into at least 2 more. A change to the database directly affected a minimum of 2 other layers as the hardcoded SQL statements were in the next layer and the table-specific classes were in an additional layer (relationships were variables references between the objects)...there was more, but it bothers me everytime he mentions it.

      --
      Whee signature.
    29. Re:Web developers... by Anonymous Coward · · Score: 0

      Yes, but DBA's cost a hell of a lot more than webmonkeys. If we let the DBA's have their way everything will be made using some vendor specific feature nobody else understands and designed solely to guarentee their 600 pounds a day continues forever.

    30. Re:Web developers... by Jesus_666 · · Score: 1

      I'd like to learn more about Postgres (especially since my SQL knowledge is only mildly above that of the generic LAMP user (y'know, I've used JOIN once)), but I have no idea where to look. A book would probably be a good idea, but a) I don't know which ones are decent and b) I don't quite feel like shelling out thirty bucks for a book I'm not sure about.

      Any hints on something usable?

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
    31. Re:Web developers... by quantum+bit · · Score: 1

      I'm thinking it's more about Linux users who don't know the difference between a Bourne shell and bash, and assume that /bin/sh is bash.

      I've seen lots of shell scripts that don't work because of that assumption, and I either fix them or change the first line to #!/usr/local/bin/bash. Though often, if they assume that /bin/sh is bash there are usually other assumptions made that cause it to break (i.e. make is GNU make, awk is gawk, /proc is mounted, etc.)

    32. Re:Web developers... by bill_mcgonigle · · Score: 1

      The default MySQL table type, which I think is called MyISAM, doesn't have RI - but there's an alternative table type called InnoDB, which does.

      The trick there, as I understand it, is that since Oracle bought InnoDB, MySQL is dropping InnoDB in favor of the Firebird DB for MySQL 6. This is proabably a good thing, but it's a moving target and hard to plan on. PostgreSQL is well-defined and has a good codebase.

      As it stands now, neither MyISAM or InnoDB offer all the features "MySQL 5" has. I did some database tuning for an app and found MyISAM to be about 10-20% faster than PostgreSQL for SELECTs on the same hardware, with both systems highly tuned. That you get all the features of InnoDB plus more with PostgreSQL and 10-20% is less than a year's worth of hardware improvements is worth remembering. We went with MyISAM for that application but only because absolute performance was the only criteria for that layer of the app.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  8. 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
    1. Re:Nobody's heard of it by TekPolitik · · Score: 2, Funny
      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...

      Precisely!

    2. Re:Nobody's heard of it by DeafByBeheading · · Score: 1

      Hey, I wouldn't call SQLite a "toy" database. It's SQLite; it's geared to light-weight uses. Do you need a full SQL2003 DB in your mobile app? There are many instances where SQLite does well. I'm on a team using it in an app that needs a simple DB, and it's great for the job.

      --
      Telltale Games: Bone, Sam and Max
    3. Re:Nobody's heard of it by Anonymous Coward · · Score: 0

      Just as Beta lost out to VHS, and how FreeBSD loses out to Linux in market-share, it shows that to be the most successful, you don't have to be the best.

    4. Re:Nobody's heard of it by Octorian · · Score: 1

      Hehe... I've noticed the same thing about *BSD...

      Everyone and their dog has head of Linux, and the #1 reason I find for people to not use *BSD in some capacity is that they just don't know much about it.

      Come to think of it, PostgreSQL is BSD-licensed too.

    5. Re:Nobody's heard of it by Zerbs · · Score: 1

      This is starting to change with companies like Pervasive and EnterpriseDB building on the PostgreSQL database engine and providing affordable support options that businesses will find attractive over MS-SQL Server or Oracle licensing.

      --
      "22 astronauts were born in Ohio. What is it about your state that makes people want to flee the Earth?" Stephen Colbert
    6. Re:Nobody's heard of it by bill_mcgonigle · · Score: 1

      That's silly. BSD does some things better and Linux does somethings better. Just recently I needed to setup a firewall for a client with bridged addresses on one interface and NAT'ed addresses on another. Due to BSD's firewall mechanisms you can't do TCP from a NAT'ed address to a bridged address (the outbound packets go but they can't find their way back). Linux does it differently and in this case that way works better. BSD is faster for many network apps. There's a good argument for the use of both, and neither requires 'popularity'.

      The only things that MySQL does better than PostgreSQL at this point (that I've been able to find) are the SELECT speed of MyISAM tables and better syntax for fulltext searching. But it has lots of popularity. It was also more usable at an early age for simple tasks so it has that historical momentum.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    7. Re:Nobody's heard of it by Octorian · · Score: 1

      Actually, it's not silly if you think about it. You just said that you used *BSD (you didn't mention which one, and they aren't all the same OS). Sure, you chose not to use it, but you did use it enough to know whether it would work for your application. Usually I find it dismissed out of hand, either because people don't know about it (and once they learn, they do try it), or because they stick to Linux like everyone else sticks to Windows.

      Besides, as Linux becomes more popular, the hardcore geeks will need another platform to move on to. Rememeber, once upon a time it was possible to consider oneself a geek by being adept at DOS/Windows. Today, that no longer qualifies you for geek status.

      Heck, usually you hear about "Windows on the desktop, Linux on the server." But for me, it is "Linux on the desktop, FreeBSD/Solaris on the server" ;-)

      (I used to run OpenBSD on the firewall, but I had continually growing bad experiences with hardware support as I upgraded the machine, so that now is running FreeBSD as well. Besides, FreeBSD has OpenBSD's firewall software as one of its options anyways.)

    8. Re:Nobody's heard of it by bill_mcgonigle · · Score: 1

      Sure, you chose not to use it, but you did use it enough to know whether it would work for your application. Usually I find it dismissed out of hand, either because people don't know about it (and once they learn, they do try it), or because they stick to Linux like everyone else sticks to Windows.

      Different circles, I suppose. Most of the Unix admins I know are aware of at least BSD, Linux and Solaris, and use each when appropriate. You'll find plenty of Linux zealots/trolls here on Slashdot, but don't confuse them with the real world.

      That said, most of them use linux more than BSD or Solaris but I don't think it's due to ignorance. More apps tend to focus on linux, so that's at least part of it. All things being equal, some favor the GPL license and decide on that basis.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    9. Re:Nobody's heard of it by Octorian · · Score: 1

      Yes, most "real" UNIX admins probably are familiar with *BSD. Also, far more *BSD admins tend to be familiar with "real" UNIX. I think this is partly because the *BSD camp (well, mainly FreeBSD) tries to push itself as a "good open-source UNIX".

      Meanwhile, it seems like far too many Linux users (at least from what I see in local LUGs) seem to have "I want to move away from Windows/MS" as their prime motivation. What's also interesting is that they'll blabber in support of that blatant generalization to no end, but then they'll refute it to no end the moment you call them on it. As such, Linux is always being compared to Windows (even when its an apples to oranges comparison), while FreeBSD usually isn't.

      Of course that being said, Linux has far more "mindshare," and thus far more official software support. I'd say the two are probably close to equal in terms of software support in the opensource world (unless you count some desktop-oriented things), but most vendors tend to only notice Linux. Then again FreeBSD does have the ability to run Linux binaries, but that only works for user-land stuff.

    10. Re:Nobody's heard of it by fbg111 · · Score: 1

      MySQL supported Windows much earlier, and quickly became the most well known FOSS db on Windows. Lots of webdevs work for shops that supply Windows PC's and laptops for development work, so since PostgreSQL wasn't on Windows until v8.0, it wasn't an option. All these people found they could download MySQL for free and learn a *cough* rdbms on the cheap and easy. Same way Windows gained prominence - do stuff badly, incorrectly, but good enough, and be cheap, and the masses will adopt you.

      --
      Flying is easy, just throw yourself at the ground and miss. -Douglas Adams
  9. But how can I get a kickback by buying Postgres? by Anonymous Coward · · Score: 0

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

  10. 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.
    1. Re:Interesting article, but not the reasons I hear by The+Master+Control+P · · Score: 4, Funny
      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
    2. Re:Interesting article, but not the reasons I hear by Anonymous Coward · · Score: 0

      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.

    3. Re:Interesting article, but not the reasons I hear by jadavis · · Score: 2, Informative

      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.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    4. Re:Interesting article, but not the reasons I hear by mooingyak · · Score: 1

      Thank you for that list. It's basically my set of reasons (none of those in the article ever counted for me, even when they were true).

      I've been meaning to give 8.1 a try, as I recall reading that it in particular makes better use of multiple processors. I did a database comparison about a year ago in efforts to replace our existing legacy database. Both MySQL and PostgreSQL far outshine our existing product in terms of features, so it was very difficult to sell anything other than the faster product to management. It's not a closed book yet.

      On the flip side, MySQL 5.0 is much more tolerable than prior versions.

      --
      William of Ockham had no beard. The most likely explanation is that it was chewed off by squirrels every morning.
    5. Re:Interesting article, but not the reasons I hear by adolfojp · · Score: 0, Redundant

      PostgreSQL will always be slower than a MySQL database that uses MyISAM tables. The speed of both databases will be about the same when you use InnoDB tables in MySQL.

      MySQL uses MyISAM by default because it is fast. Then again, MyISAM should not be used for anything more complex or important than storing cooking recipees.

      Cheers, Adolfo

    6. Re:Interesting article, but not the reasons I hear by jadavis · · Score: 2, Informative

      PostgreSQL will always be slower than a MySQL database that uses MyISAM tables.

      Not necessarily true. What about when joins are a factor? Or what about when you can use a PostgreSQL feature like a functional index (on a user-defined function) to speed up a query, and that's not even available in MySQL? Or what about when PostgreSQL has more index usage opportunities, like the ability to combine two indexes in an in-memory bitmap before scanning (that means you don't have to make multi-column indexes for every combination of attributes you select, and it organizes the tuples to fetch into sequence for faster reads)? What about the ability to manage a large number of joins with the GEQO (genetic algorithm for determining the optimal join order)?

      There are all kinds of opportunities for speeding up queries that don't involve sacrificing consistency.

      Then again, MyISAM should not be used for anything more complex or important than storing cooking recipees.

      What if you're a German and you store the family beer recipe in a MyISAM table? I'd start looking at a place to live in exile in case the power dies and you lose the recipe. You don't get any more mission-critical than that :)

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    7. Re:Interesting article, but not the reasons I hear by rtaylor · · Score: 1

      PostgreSQL will always be slower than a MySQL database that uses MyISAM tables.
      Might want to try both of those setups with 30 simultaneous users issuing updates to single tuples.

      --
      Rod Taylor
    8. Re:Interesting article, but not the reasons I hear by steveg · · Score: 1

      Hope it got better than it was in 2001. We had an installation of Oracle Parallel Server (on HP N-Class servers), and with Oracle engineers, and HP engineers, and our own DBA, we could never keep the damned thing up for more than two days running. A couple of hundred thousand dollars worth of licenses and consulting fees, and the single "temporary" instance running on a little A-Class ended up being our defacto production database. We never did get OPS to work reliably, but the little one did the job with never a hitch.

      --
      Ignorance killed the cat. Curiosity was framed.
    9. Re:Interesting article, but not the reasons I hear by DrXym · · Score: 2, Interesting
      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.

      Can't speak of Linux / Unix but on XP, Postgres is a doddle to install and administer. After a fairly small download, double click the installer, answer a few questions about ports and its installed as a service. To administer it you fire up pgAdminIII and get an excellent GUI for creating users, running queries and so forth. It also has excellent online documentation in HTML format, plus all the drivers, libs & headers you need to get it work in a dozen different ways.

      In fact Postgres is such a breeze to install on XP that it is easier by miles than MS SQL Sever, or Oracle, both of which require lengthy and complex installs to complete.

      MySQL is also fairly easy to install XP (it has an installer too), and also installs as a service and HTML help. But I wouldn't say its as easy for Postgres. For one thing you don't get an admin tool (or the dev kit) which means it's considerably more difficult to administer.

      I'm sure this would pose no problem for people who love being stuck in a console based admin tool, but personally I prefer the more productive environment offered by pgAdminIII... when it works which is usually most of the time although it has the odd quirk.

      One thing I appreciate about both products is how small they are. SQL Server is basically an entire CD to install. Oracle is multiple CD. Both are far too huge for pretty much most uses any individual or small outfit might have for a database.

      So definitely on XP, Postgres is far easier to install, administer and use than MySQL. I can't say I've used either in anger, but I was able to hook Postgres up via the ODBC driver to OpenOffice Base and use that as a front end for data entry for some experimental work I was doing.

    10. Re:Interesting article, but not the reasons I hear by cardpuncher · · Score: 1

      The main problem I've had is that if the database becomes corrupted for whatever reason, it can become essentially irreparable. One example: a "text" field in one record became corrupt (the "toast" indices didn't match up) and it then became impossible to vacuum, dump or otherwise maintain the database: each operation would fail when in encountered the corrupt record. Reverting to the last "good" backup isn't really an option in a database that gets a lot of updates during the day and the documentation on alternative recovery strategies (transaction logs et al) seems mainly to come from the realms of folklore. I've also had problems with broken system indexes where re-indexing has simply (and silently) made a whole bunch of records inaccessible. There's a lot I like about PostgreSQL (particularly the ability to have derived tables which inherit columns from their parents), but it needs work on the administration and deployment side.

    11. Re:Interesting article, but not the reasons I hear by FreelanceWizard · · Score: 1

      Ah, but MySQL does have graphical administration tools. They don't come in the server installation package, but they are available and work quite well. They're certainly not the train wreck that SQL Server's tool is.

      --
      The Freelance Wizard
    12. Re:Interesting article, but not the reasons I hear by DrXym · · Score: 1
      I don't doubt it. My point was about ease of installation and administration out of the box. On Postgres wins hands down on XP. On Linux I'd say (from my experience with Ubuntu) that the situation is reversed.

      Even so, aside from domain hosting or other environments where I have no choice I don't think I'd touch MySQL with a barge pole. I think I'd prefer a proper, albeit slower DB than one which puts speed over database integrity.

    13. Re:Interesting article, but not the reasons I hear by Dikeman · · Score: 1

      And, if i may add another reason:

      - PostgreSQL backwards compatibility is problematic to say the least. Try to migrate from 7 to 8 and you'll know what I mean.

    14. Re:Interesting article, but not the reasons I hear by Forbman · · Score: 1

      Uh...SQL Server's install isn't complex or difficult, unless you mean that you have to assign a password to 'sa' now. Hasn't been for...oh, a long time.

      Oracle's install on Windows isn't bad, either, unless there are specific things you want included or not included, which force you to pick and choose from every single bloody possible installation detail, much like installing Linux can be if you only want one particular application installed from a group of like applications.

      I burned PostGres 8.x onto a CD, too, so now it's "one CD" to install it as well.

    15. Re:Interesting article, but not the reasons I hear by cortana · · Score: 1

      apt-get install postgresql-8.1 does not seem to be much more difficult than apt-get install mysql-server. ;)

  11. Number 1 (missing) reason by malraid · · Score: 4, Insightful

    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.

    --
    please excuse my apathy
    1. Re:Number 1 (missing) reason by sheister · · Score: 1

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

    2. Re:Number 1 (missing) reason by malraid · · Score: 2, Informative

      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.

      --
      please excuse my apathy
    3. Re:Number 1 (missing) reason by Anonymous Coward · · Score: 0

      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.

    4. Re:Number 1 (missing) reason by adolfojp · · Score: 1

      Solid type consistency and a BSD license. The first one will spare you of countless headaches and the second one will save you about 500 bucks. I still get nightmares about MySQL dates.

      Cheers,
      Adolfo

    5. Re:Number 1 (missing) reason by Zemplar · · Score: 1

      Perhaps there is still time for you all to attend the PostgreSQL High-Availability Webinar on March 23rd?

    6. Re:Number 1 (missing) reason by sheister · · Score: 1

      Good reasons, thanks for the answers.

    7. Re:Number 1 (missing) reason by bar-agent · · Score: 1

      Whoa, whoa! PostgreSQL has notifications? Dammit, why wasn't I informed of this?!

      Now the question becomes, are there DB interface libraries that support notifications? (I'm looking at you, Hibernate.)

      --
      i'd hit it so hard, if you pulled me out you'd be the king of britain [bash.org]
    8. Re:Number 1 (missing) reason by malraid · · Score: 1

      Well ... my db interface library uses them. It was a pain in the ass to get it to work (the JDBC driver wasn't ready). But it was worth it.

      --
      please excuse my apathy
  12. 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.

    1. Re:rep-lih-kay-shun by jadavis · · Score: 1

      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.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    2. Re:rep-lih-kay-shun by brennz · · Score: 1

      Postgresql's replication has seen much improvement recently, and shortly you might have to eat those words.

    3. Re:rep-lih-kay-shun by Scarblac · · Score: 1

      Wtf? I was going to look at PostgreSQL soon because it has the reputation of being much better quality than MySQL, and we're running into some annoying MySQL stuff. But if it doesn't do replication well... end of story.

      --
      I believe posters are recognized by their sig. So I made one.
    4. Re:rep-lih-kay-shun by bill_mcgonigle · · Score: 1

      Wtf? I was going to look at PostgreSQL soon because it has the reputation of being much better quality than MySQL, and we're running into some annoying MySQL stuff. But if it doesn't do replication well... end of story.

      Don't let yourself get fed by trolls. There are a couple production-quality replication systems for PostgreSQL and real clustering is available but I'm not sure if it's mission-critical quality yet. But trust neither of us - do the research yourself as I'm sure you were planning to do anyway.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    5. Re:rep-lih-kay-shun by wieck · · Score: 1

      If all replication options for Postgres are "niche afterthought hacks", what exactly do you call the third party table handlers that add transactional capabilities to MySQL?

      Jan Wieck
      Postgres core member
      Author of the Slony-I replication system

      --
      It takes a real man to ride a scooter ... what are you compensating for?
    6. Re:rep-lih-kay-shun by pbaker · · Score: 1

      MySQL is purposely designed to support multiple table handlers. It just makes good design sense. Not every problem is a screw and therefore having only a screwdriver when a hammer makes better sense... well you get the idea. So having a couple table type that support transactions, one table type that is bloody fast as possible, in-memory only table types, one table type designed for archival, one table type to do... well the list goes on and it's hardly an after-thought or "third-party" hack. This is by design. And they all support replication as well. Of the 20 or so different Postgres replication projects, none of them support every feature of Postgres at once. They all have tradeoffs. Most don't support schema changes. And if they do at all, it generally involves a song-and-dance requiring you to stop replication (WHAT?!), make the change to the slave first, make the change to the master, and then start replication again. Certainly the best replication schemes are the ones that tell you to stop replication to do anything (un)normal. Most don't support big objects without a similar song and dance, if at all. It's just lame. Period. Without a legitimate replication solution, Postgres will never be used any where that a 24/7/365 rock-solid high-availability high-volume high-performace database is required.

    7. Re:rep-lih-kay-shun by wieck · · Score: 1

      Care to compare? Which replication solution for MySQL allows building a slave without interruption? Which of them allows rebuilding a failed master and fail-back without significant downtime? Don't I have to shutdown MySQL for the duration of creating the initial copy? Now that doesn't play nice in a 24x7 environment. Is that what you call a legitimate replication solution or is that the tradeoff I have when chosing MySQL?

      Jan

      --
      It takes a real man to ride a scooter ... what are you compensating for?
    8. Re:rep-lih-kay-shun by pbaker · · Score: 1

      It's called "hotcopy." This allows you to make the snapshot without taking the database offline. And given the fact that you can do circular and multi-master replication, I've never had a problem bringing a master up and failing back over to it after it caught up to the changes on the slave. And really there is no reason to go back if the hardware is the same on your master and slaves (as it should be.) Any of the boxes can be the master. In fact I use this simple fact to do planned failovers in order to perform maintenance on the masters. It's flawless as far as I'm concerned.

    9. Re:rep-lih-kay-shun by wieck · · Score: 1

      According to the MySQL 5.0 Manual mysqlhotcopy is a Perl script that does LOCK TABLES, FLUSH TABLES and then cp or scp. So you go read only with your 500GB production database while the darn thing is shoveling it over the wire to the other server? I wouldn't call that "flawless", but then again, my definition of 24x7 seems to be quite different from yours.

      I have allways admitted that the design goals of the Slony-I replication system introduced some rather ugly implementation flaws. But I would have never made the compromise to let it interfere that severely with a production database by design. mysqlhotcopy is lame and plain useless in a 24x7 environment.

      Have a nice day
      Jan

      --
      It takes a real man to ride a scooter ... what are you compensating for?
    10. Re:rep-lih-kay-shun by pbaker · · Score: 1

      Actually I wrote my own implementation of the mysqlhotcopy script that uses several passes of rsync to prime a snapshot of the database to minimize the time you are under the read-lock gun to a matter of seconds. But that is really only a worst-case-scenario because if you (as I do) make your snapshots off of a slave (that is already read-only), there is no interruption in service whatsoever. This is possible thanks to the flexibility of MySQL's replication scheme allowing you to make a snapshot off of slave and still point the the master for live replication. Easy-peazy.

  13. Reason #6 by Anonymous Coward · · Score: 0

    Reason #6: Mysql

  14. Because PostgreSQL is not MySQL by zanderredux · · Score: 0
    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.

    1. Re:Because PostgreSQL is not MySQL by Forbman · · Score: 1

      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.

    2. Re:Because PostgreSQL is not MySQL by NuShrike · · Score: 1

      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.

    3. Re:Because PostgreSQL is not MySQL by sych · · Score: 1

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

      I haven't used MySQL very much so I'm vague on its details, but I think what you might be looking for in terms of a "MySQL Client" equivalent is an executable called "psql".

      If you're running it at the commandline of the server you're running the db on, and you're logged in as your database user (e.g. "su - postgres"), then all you need do is type 'psql' and it will connect to the default database. (If you are on a remote machine then there are command-line options to specify the remote host, etc).

      From there you have an interactive PostgresSQL client that will do everything you need, including "CREATE DATABASE", "CREATE TABLE", "ALTER TABLE", "ALTER DATABASE", "DROP TABLE", "DROP DATABASE", "INSERT INTO", "UPDATE", "SELECT", "CREATE USER", "CREATE TRIGGER", etc.

      Is this what you were after?

      My first database experience was with Oracle 8. I have to say that from that port of view, PostgreSQL "feels" a lot more natural to me than MySQL.

    4. Re:Because PostgreSQL is not MySQL by Anonymous Coward · · Score: 1

      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.

      Flamebait for sure, as your message makes me want to call you a dumbass. I used MySQL before I discovered PostgreSQL and ported my applications to it (porting was easy, since these apps use Hibernate), and I never noticed anything really difficult or weird about it. Table creation is easy as pie, pretty much standard SQL. It actually feels better, like I'm using a real database. Granted, I started with (and still work with) Oracle.

    5. Re:Because PostgreSQL is not MySQL by MemoryDragon · · Score: 1

      Have you read the article, DB manipulation can be done via various tools, the best one probably being pgAdmin3... you should feel right at home.

    6. Re:Because PostgreSQL is not MySQL by wieck · · Score: 1

      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.

      I think you meant "but the problem is that MySQL is so far from any SQL standard that I will not like any other DB".

      Jan

      --
      It takes a real man to ride a scooter ... what are you compensating for?
  15. Its simple by Anonymous Coward · · Score: 0

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

  16. Re:Only 2 Reasons by Cobralisk · · Score: 1

    Exactly how do you pronounce it anyway?

    --
    Waiting for ad.doubleclick.net...
  17. PostgreSQL lost early on by Anonymous Coward · · Score: 0

    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.

  18. #1 Reason by __aanonl8035 · · Score: 5, Insightful

    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)

    1. Re:#1 Reason by adolfojp · · Score: 1

      Sir, allow me to say that your post is the one that makes the most sense in this entire discussion. I wish that I could mod you insightfull but I already made a few lame comments.

    2. Re:#1 Reason by thule · · Score: 1

      Does it not have something to do with Postgres becoming PostgreSQL? Back in the day, say, 1995, people still thought that Postgres didn't support standard SQL commands. In 1995 Postgres' SQL support was pretty new. Along came MySQL and it was so much faster than Postgres at the time. It was so much better than mSQL. So people started using it. No one cared at the time that you couldn't select volumes (as in boxes and cylinders) in MySQL like you could in Postgres.

      For me, Postgres will always be the true open source DBMS.

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

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

    1. Re:Or this? by rtaylor · · Score: 5, Insightful

      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.

      --
      Rod Taylor
    2. Re:Or this? by jadavis · · Score: 1

      I don't mean to criticize SQLLite, because it's good for many applications. However, some of their benchmarks make no sense in the real world. Also, take caution with anything labeled "async", that means your transactions are not durable! (if you're system crashes, the data can be inconsistent).

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    3. Re:Or this? by jbolden · · Score: 1

      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.

      You are thinking OLTP. Datawarehouse systems often have users running complex query operations. On OLTP systems you often have extract tables which go to other databases. Building or maintaining those looks like one user hitting the system hard.

    4. Re:Or this? by consumer · · Score: 2, Informative

      The older table type in MySQL, MyISAM, doesn't handle concurrency well. The InnoDB table type uses the same locking approach as PostgreSQL and Oracle, and should stand up to multiple users much better.

    5. Re:Or this? by rtaylor · · Score: 2, Informative

      Datawarehouse systems often have users running complex query operations.
      SQLLite is not going to handle a 1TB table very easily and I don't believe it supports most types of joins.

      The benchmark linked to does not fit this.

      Besides, 1 user on MySQL or SQLLite (each uses a single CPU only) it going to suck compared to a TeraData, Clustered Oracle or Clustered PostgreSQL (BizGres) database.

      Statement still holds. Benchmark what you will actually be doing.

      --
      Rod Taylor
    6. Re:Or this? by LurkerXXX · · Score: 1

      InnoDB is also much slower than MyISAM. Once MySQL tries to add in some of the basic consistency features that every other database takes for granted, it's speed advantage (for a low number of users, it doesn't do well at high user numbers) goes away.

    7. Re:Or this? by Omega+Blue · · Score: 1

      Care to post your benchmark, testing environment and procedure so we can attempt to duplicate your results?

    8. Re:Or this? by KiloByte · · Score: 1

      You're comparing apples to oranges.

      SQLite can be faster, but only if there is only one thread going on. Any concurrent connection will make SQLite close the entire database and reopen it every time is has to switch between different users/processes/etc.

      Thus, performance is good in the "1 user" case, but abysmal with two or more connections.

      --
      The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
    9. Re:Or this? by The+AtomicPunk · · Score: 1

      These tests are on Windows, which is PostgreSQL's worst platform by FAR.

      I also like the 'nosync' tests. Not too many people that care about their data run in 'nosync' mode.

    10. Re:Or this? by consumer · · Score: 1

      It's not "musch slower." Try it.

    11. Re:Or this? by seebs · · Score: 1

      Total agreement. 50 comment spammers hitting a blog backed by mysql == mysql hung permanently. Not "slow". Hung. Will not come back.

      --
      My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
    12. Re:Or this? by allanw · · Score: 1

      It's not any faster than PostgreSQL.

    13. Re:Or this? by LurkerXXX · · Score: 1

      I have tried it. Using it, there's no 'major' speed advantage over Postgres. Plus with Postgres you don't have to worry about your stupid database thinking Febuary 31st is a valid date.

    14. Re:Or this? by consumer · · Score: 1

      With MySQL 5 you don't have to worry about that either.

  20. I know, I know! by Trogre · · Score: 4, Funny

    Why do people dismiss PostgreSQL

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

    --
    "Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
    1. Re:I know, I know! by Anonymous Coward · · Score: 0

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

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

    2. Re:I know, I know! by Nimey · · Score: 1

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

      --
      Hail Eris, full of mischief...

      E pluribus sanguinem
    3. Re:I know, I know! by jadavis · · Score: 1

      "Building a Brighter LAMP: Linux Apache Middleware PostgreSQL"

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    4. Re:I know, I know! by cashman73 · · Score: 1
      It's because LAMP sounds so much cooler than LAPP!

      I don't know,... I think I'd much rather have a LAPP dance than a LAMP dance?

    5. Re:I know, I know! by Sentry21 · · Score: 1

      I dunno, the Lapps get pretty cool in the winter months. Go visit in February, you'll see.

    6. Re:I know, I know! by Anonymous Coward · · Score: 0

      Switch from Linux to FreeBSD and MySQL to PostgreSQL and you've got FAPP (that's actually what I run on some servers), which sounds vaguely dirty...

    7. Re:I know, I know! by HaydnH · · Score: 1

      "Switch from Linux to FreeBSD and MySQL to PostgreSQL and you've got FAPP (that's actually what I run on some servers), which sounds vaguely dirty..."

      You could use BSD and get BAPP... and I like bapps!!

      --
      Time is an illusion. Lunchtime doubly so. - Douglas Adams
    8. Re:I know, I know! by Anonymous Coward · · Score: 0

      so what, just switch to a supriour programming language at the same time.

      Linux, Apache, ML, PostgreSQL

    9. Re:I know, I know! by Anonymous Coward · · Score: 0

      Well if you use FreeBSD, then it'd be FAPP.

    10. Re:I know, I know! by Zerbs · · Score: 1

      is anyone out there using a WIPN stack? (Windows, IIS, PostgreSQL, .Net)

      --
      "22 astronauts were born in Ohio. What is it about your state that makes people want to flee the Earth?" Stephen Colbert
    11. Re:I know, I know! by drew · · Score: 1

      No, but my previous employer used WISP (Windows, IIS, SQL Server, PHP), and my was that painful.

      Personally, I currently use FAPP, although I detest PHP*. Maybe one of these days I'll give FRAP a try, if I can ever find an example of Ruby on Rails being used for something less trivial than a CRUD editor.

      *I just detest PHP slightly less than any other language commonly used in web programming.

      --
      If I don't put anything here, will anyone recognize me anymore?
    12. Re:I know, I know! by archen · · Score: 1

      With Lighttpd that's FLiPP... which actually sounds reasonable. (What I run)

    13. Re:I know, I know! by Anonymous Coward · · Score: 0

      No, but my previous employer used WISP (Windows, IIS, SQL Server, PHP)

      That should be "Microsoft SQL Server" so as not to be too vague, and the acronym speaks for itself ;)

  21. psqlODBC - PostGreSQL's ODBC Interface by Anonymous Coward · · Score: 0

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

  22. Its like windows by Billly+Gates · · Score: 1

    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.

    1. Re:Its like windows by jma05 · · Score: 1

      Did you even read the article? Postgres now has EXCELLENT admin tools and native Windows support. That's the whole point of the article. That people are not aware that it now meets everyones needs.

  23. 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
    1. Re:Personal .02 by Theatetus · · Score: 1
      the Postgres people had postcards on their table of whatever their mascot is

      an elephant

      --
      All's true that is mistrusted
    2. Re:Personal .02 by Anonymous Coward · · Score: 0

      *woooosh*

      Haven't you ever heard the phrase "Elephants never forget" ??

      Busted!

    3. Re:Personal .02 by TrekkieGod · · Score: 1
      Ironically, they have a better product on many levels, but that kind of zealotry just plain puts me off.

      Heh...you'd dismiss a product which you claim to know is superior on many levels because of a joke on the part of the people representing the product?

      I don't really know if postgresql is better than mysql or oracle or whatever...but if I had some need of finding out, postcards on the table of some people I'd probably never meet again wouldn't be one of the variables that I would be considering.

      Negative advertisement is everywhere, from political ads, to the Sun "screw Dell" ads. Some are funny, some show a lack of taste or professionalism. And these are real ad campaigns that get seen by millions of people. The postcards were just at the darn convention, obviously meant for humor, not zealotry. None of these should be a part of serious consideration when choosing a product. Best tool for the job is all you should care about.

      --

      Warning: Opinions known to be heavily biased.

    4. Re:Personal .02 by adolfojp · · Score: 1

      PostgreSQL has an elephant, and so does the republican party. MySQL has a dolphin and Linux a Penguin and the democrats a donkey and SUSE some sort of reptile and Ferrari a horse and Apple an apple and so on and so on.

      Most of those companies/institutions seem to be taken seriously... why shouldn't postgres.

      Cheers,
      Adolfo

    5. Re:Personal .02 by geminidomino · · Score: 1

      "the republican party"..."the democrats a donkey"

      Most of those companies/institutions seem to be taken seriously...


      Ehh... you'd have to be pretty silly.

    6. Re:Personal .02 by adolfojp · · Score: 1

      My emphasis on most. ;-) For you: +3 funny... because its true.

    7. Re:Personal .02 by Yer+Mom · · Score: 2, Insightful
      I think he was referring to the spit-roasting part.

      I'm fairly sure that if Ferrari produced a bunch of promotional material showing the horse crapping on the Porsche logo someone would say the same sort of thing :)

      --
      Never mind Spamassassin. When's Spammerassassin coming out?
    8. Re:Personal .02 by freeweed · · Score: 1

      What about Calvin peeing on a Ford/GM/Dodge logo?

      --
      Endless arguments over trivial contradictions in books written by ignorant savages to explain thunder in the dark.
    9. Re:Personal .02 by nuzak · · Score: 1

      > At OSCON, the Postgres people had postcards on their table of whatever their mascot is (I forget)

      Ironically, it's an elephant.

      --
      Done with slashdot, done with nerds, getting a life.
  24. Fulltext Indexes by inio · · Score: 4, Insightful

    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.

    1. Re:Fulltext Indexes by Ragica · · Score: 3, Informative
      Yes, like most things MySQL, it's simple to get going and hooked on, but half assed, and will bite your ass later if you ever grow beyond a certain point... or in certain directions.

      But of course anyone who is is willing to tolerate MyISAM tables (which mysql's full text indexes still seem to require) already has pretty low standards for their data. (I don't mean "low standards" in a derogatory way.)

      As a programmer of a search engine built on postgresql's tsearch2 I can confirm that it is a pain in the ass in a few ways. Installation isn't one of them. And in fact setup, while certainly more involved than MySQL, isn't very difficult either... if you can be satisfied with the defaults (just run the bundled sql setup script).

      The main problem with the defaults for me is the crude "snowball stemmer" (does MySQL have any stemming support? I did a quick google search but couldn't seem to find any info... though i note some plugins that seem to offer it). Once you get tsearch2's dictionary based stemmer working, things become much more wonderful very quickly.

      On the other hand for anyone who cares about full text search tsearch2, in it's complex design, offers a vast amount of configurability and power. It's indexes are pretty fast. There are multiple ranking algorithms, a "headline" function for pulling highlighted extracts from found text, (limited) field weighting, replaceable tokenizer, multiple languages and encodings, and on and on.

      Unfortunately I don't think it comes close to something like lucene. But that's another kettle of fish.

      Regarding MySQL's full-text search I came across this nice quote (from Kate of Wikipedia):

      We already support MySQL's fulltext search. Its uselessness is mainly what inspired me to write the Lucene support :)

      Of course the parent poster says up front that they have "pretty simple requirements" so all of my comments above probably make no impression at all. But anyhow, just something to think about.

    2. Re:Fulltext Indexes by Phil+John · · Score: 1

      But of course anyone who is is willing to tolerate MyISAM tables (which mysql's full text indexes still seem to require) already has pretty low standards for their data. (I don't mean "low standards" in a derogatory way.)

      The way I get around that in a legacy app we support is by having all the "important" data in InnoDB tables and then simply have a MyISAM "search" table that contains the full text of each record and a pointer back to the original.

      If the table gets hosed for any reason it's easy to rebuild. Sure, it's not the most elegant solution out there but it works for us.

      --
      I am NaN
    3. Re:Fulltext Indexes by swilver · · Score: 1
      Actually, it is not that hard.

      You need to run the tsearch2.sql script to prepare the database for FTS, if it wasn't in your default template.

      You create an extra column for the column you want indexed and create a trigger to update this extra column each time the original column changes.

      Finally you create an index on the extra column. Run VACUUM to update table statistics.

      I managed to get it working without much prior knowledge or experience of PostgreSQL in about an hour orso.

    4. Re:Fulltext Indexes by bill_mcgonigle · · Score: 1

      The way I get around that in a legacy app we support is by having all the "important" data in InnoDB tables and then simply have a MyISAM "search" table that contains the full text of each record and a pointer back to the original.

      But surely that's not easier than loading the tsearch2 schema into a database?

      Granted, tsearch2 has a bit of a learning curve, but once it's setup you don't need any Rube Goldberg contraptions to make use of it. OK, the syntax is harder than mysql's but even if you're hand-coding your SQL you do it once and forget about it.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    5. Re:Fulltext Indexes by glwtta · · Score: 1
      Sure, there's plugins for Postgres that add fulltext indexes, but they require ungodly complex setup and tuning.

      make install
      \i tsearch2.sql
      Oh, the horror.
      --
      sic transit gloria mundi
    6. Re:Fulltext Indexes by lewiscr · · Score: 1

      > Unfortunately I don't think it comes close to something
      > like lucene. But that's another kettle of fish.

      You might want to check out Solr. It's a search server front end for Lucene.

      Disclaimer: I work for CNET, who open sourced the project.

      The website is at http://incubator.apache.org/solr
      The wiki is at http://wiki.apache.org/solr

  25. Re:Only 2 Reasons by Anonymous Coward · · Score: 1

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

  26. Why I'd rather not use PostgreSQL by pestilence669 · · Score: 1, Interesting

    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

    1. Re:Why I'd rather not use PostgreSQL by jadavis · · Score: 1

      PostgreSQL 7 was released in the year 2000. It's come a long way in 6 years (and that's a huge understatement), I recommend you give it another try.

      Note: A lot of the corporate-funded developments came after that time.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    2. Re:Why I'd rather not use PostgreSQL by RelliK · · Score: 4, Informative
      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.

      Absolute bullshit. I've used PostgreSQL myself in a mission-critical production app for the past 3 years. (I've since left the company, but the app is still in use.) I have been consistently impressed by the quality and performance. There was a strong push to use mysql when the project started since the company already had in-house knowledge of it. Performance was one of the concernes. So I ran the benchmarks. Read performance of simple selects was inconclusive: mysql won some, and postgresql won some. However, postgresql consistently won write tests and scaled better as I added more client threads.

      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.

      Bullshit again. Never ever seen that or even heard about it. Again, at my last job postgresql was part of a mission-critical application, and I've used it for a couple of projects before that too. The *only* time I've seen postgresql go down was when we ran out of disk space. And even then, it was not a crash but a clean shutdown. Give me a specific example of a query that you say caused postgresql to crash. Otherwise I'll assume you are yet another troll.

      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.

      Bullshit 3x. The app I was talking about was used for tracking work in a 3d production pipeline with a staff of ~300 artists. There was *a lot* of writes. (every checkin, every render, etc.) By the end of the project the database grew to over 10G. And postgresql didn't even blink.

      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.

      And your point is? All it requires is a single entry in crontab. And you can still run transactions while it's vacuuming. Really, what is your problem with it? It is no different than running a cronjob to do a backup, or a similar maintenance. And since 8.0 and up, postgresql does autovacuum, so you don't even have to worry about that.

      So, in short, from my experience PostgreSQL Just Works (TM). And unlike oracle it doesn't cost an arm and a leg, and doesn't require an army of DBAs and sysadmins to maintain it.

      --
      ___
      If you think big enough, you'll never have to do it.
    3. Re:Why I'd rather not use PostgreSQL by Martin+Foster · · Score: 1

      You can run it concurrently only if your Vacuum buffer has not overflowed and thus require to do a more detailed run (FULL) in order to clean up the mess. Such a vacuum WILL lock your tables exclusively and can cause an awful mess if there is a lot of concurrent activity going on.

    4. Re:Why I'd rather not use PostgreSQL by edwdig · · Score: 2, Informative

      I was a big fan... until I needed to use PostgreSQL 7 for a real (commercially available) product.

      PostgreSQL 7 is ancient. There have already been multiple releases in the 8 series. I never worked significantly with 7, so I can't comment on it much, but with 8.x I haven't had the problems you've talked about.

      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.

      I've never seen 8.x crash, even when I've thrown gigantic, deeply nested queries at it. The optimizer definitely needs to be tweaked though. I've noticed that it tends to favor sequential scans over index scans too often. This is fixable by weighting factors in the config file. I will say that it does take some experimenting to get the configuration tuned properly, which is probably the biggest weakness in the 8.x series.

      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.

      Those are issues you'll only have if you refuse to run vacuum at reasonable intervals. PostgreSQL has some support for clustering tables. It's only a one time thing that doesn't get maintained during writes, but, periodically running it will solve your fragmentation issues (which wouldn't exist if you just ran vacuum).

      The 8.x series also includes support for autovacuum, which should eliminate the issue completely.

    5. Re:Why I'd rather not use PostgreSQL by pHDNgell · · Score: 1

      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.

      I send a bit over 100 write transactions per second on average to a postgres server. The bulk of that goes to a partitioned table (view + query rewrite rule) with two indexes per partition.

      I've been doing that since 7.4. In 7.4, inserts would get slow and after a couple of weeks of that, my asynchronous transaction input queue would fill faster than I could empty it and I'd have to roll a new partition.

      Shortly after we upgraded to 8.0, the guy who used to manage this machine left the company. I found it a few days ago having not rolled a new partition in several months. The table had over a billion records in it and the insert rate was not affected.

      Most of the queries we perform against this partitioned are as fast as you'd hope they would be, but there are a few for which the plans aren't all that great across the partition. My understanding is that 8.1 improves the planner for partitioned tables, though.

      They keep making it better.

      --
      -- The world is watching America, and America is watching TV.
    6. Re:Why I'd rather not use PostgreSQL by RelliK · · Score: 2, Informative
      You can run it concurrently only if your Vacuum buffer has not overflowed and thus require to do a more detailed run (FULL) in order to clean up the mess. Such a vacuum WILL lock your tables exclusively and can cause an awful mess if there is a lot of concurrent activity going on.

      1. If by "mess" you mean other transactions will have to wait until VACUUM FULL is done, then yes. If you mean anything else, then no.

      2. re: "vacuum buffer": you just pulled that out of your ass. The *only* thing that VACUUM FULL does and plain VACUUM does not, is physically move the data within the data files to truncate their size. It useful only if you've done a lot of deletes and want to free up that disk space (RTFA).

      "vacuum buffer" is the amount of RAM vacuum will use while running. You can adjust it by editing postgresql.org. The more memory you give it, the faster it will run. That's all. It is not something you can overflow.

      --
      ___
      If you think big enough, you'll never have to do it.
    7. Re:Why I'd rather not use PostgreSQL by routerguy666 · · Score: 2, Informative

      Clearly if you think 300 graphic artists generate any serious write load on a db, your idea of system load is vastly different than that of the parent. Also he stated that vaccum sucks because of the risk of data loss, not the inconvience of having to run it at all.

    8. Re:Why I'd rather not use PostgreSQL by jadavis · · Score: 2, Informative

      I believe you're referring to "max_fsm_pages". That can, and should, be adjusted. If you leave that parameter at a reasonable level, and vacuum at reasonable intervals, it shouldn't be a problem.

      For any high performance database task, you shouldn't expect 100% autotuning.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    9. Re:Why I'd rather not use PostgreSQL by temojen · · Score: 1

      I've been using PostgreSQL in various projects since 1998 and never experienced any of the things he mentioned.

    10. Re:Why I'd rather not use PostgreSQL by Tablizer · · Score: 2, Insightful

      Bullshit again. Never ever seen that or even heard about it. Again, at my last job postgresql was part of a mission-critical application, and I've used it for a couple of projects before that too.

      Guys, guys, it may be that certain coding styles trigger issues that other coding styles don't. I've had that happen to me with other products. Syntax and coding techniques that I preferred just happened to bother that particular product while it worked fine for other styles. No product will please everybody.

    11. Re:Why I'd rather not use PostgreSQL by Matt+Perry · · Score: 3, Insightful
      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?
      Vacuuming is just a form of garbage collection. It's a byproduct of how Postgres is designed to handle transactions. Until recently, users have had to handle this housekeeping function manually, a requirement which has scared people away. However, for the most part vacuuming isn't something that you should have to worry about any more. As of Postgres 8.1 autovacuum can be enabled which handles everything automatically.

      Here is a little background on why vacuuming is used:

      When a user starts a transaction to a database the database will show data that was valid as of the start of the transaction. So if I issue a select that takes some time to return results and another user updates rows that I would be selecting after I issue my select, I will only see data that was valid at the time of my select rather than the newly updated data.

      When that other user updated a row I was selecting from, a new row is inserted (or written to a previously deleted row). Any new transactions that select this row will get the new row rather than the old one my long-running transaction is still seeing. Once my transaction is complete, then the row with the old data isn't needed any more because newer data is in another row. This is called a non-overwriting storage manager.

      What vacuum does is look for these unused rows. It goes through the tables in the background and sees if any transactions are using that data. If no transactions are using the row it marks them as free for the storage manager to write to. Future inserts can use that row to store data rather than adding to the end of the file. Vacuum doesn't move any data in this way. It's just marking rows that can be overwritten with new data. It's completely unobtrusive and a normal part of keeping the database running.

      Some databases take a different approach. For example, Oracle uses an overwriting storage manager. When you update a row the data in the row is physically overwritten. To handle transactions, Oracle keeps what it calls a REDO log. The REDO log is like a journal in a journaled filesystem. It keeps track of all changes to to the data in the database. Any transactions that were open before the update to a DB row will notice that the data was updated and will then look at the REDO log to see what the correct data should be for their transaction.

      I have heard that implementing an overwriting storage manager like Oracle has is very complicated, much more complicated than a non-overwriting storage manager like Postgres uses. I'm not a DB programmer so I don't know if that is true. I also heard a while back that the Postgres developers were investigating overwriting storage manager algorithms but I don't know what came of that.

      Now, back to vacuum. In Postgres there is "vacuum full" which will move data around. It is used to compact the datafile to remove the space that's marked as unused and shrink your datafile size. You should rarely, if ever, have to use this as your unused rows will be used by new inserts. At least "vacuum full" is easier than the Oracle equivilent which is:

      CREATE TABLE my_temp_table AS SELECT * FROM my_old_table;
      TRUNCATE TABLE my_old_table;
      INSERT INTO my_old_table SELECT * FROM my_temp_table;
      DROP my_temp_table;
      Again, "vacuum full" is rarely, if ever, needed. The Oracle equivilent would be more rare to need due to how Oracle's storage manager works.

      --
      Slashdot: Failed Car Analogies. Amateur Lawyering. Anecdote Battles.
    12. Re:Why I'd rather not use PostgreSQL by Anonymous Coward · · Score: 0

      You forgot to state that your mission wasn't all that critical.

      Why I haven't put trusted Postgres with my millions of *cash transactions*:

      1) Who else has? Nobody major that I'm aware of.

      2) When I have a problem with MySQL I'm on the phone with the responsible developer within the hour.

      I could probably get over the second one if I had the first and vice versa.

    13. Re:Why I'd rather not use PostgreSQL by johnjaydk · · Score: 2, Informative
      My use is real world and in reality, PostgreSQL is slow ...

      Fact: Out of the box (source install) it's slow. You need to configure/tune it to get performance.

      Fact: Good performance tuning info is hard to come by and the tuning takes some time

      Fact: Once you tune it right, it's blinding fast

      ... and a bit buggy.Nested parentheses in SQL can cause an engine crash.

      Newer seen it happen in 1.5 years produktion use.

      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.

      The optimizer has had a major overhaul recently. I'd think you like the results.

      Vacuum is a total non-issue. Nothing to see, move along.

      I've personally put together a pg server that holds a 160 gig base that is used as backend for customer self-service in a Telco. Every 15 minutes it get a load of updates from the company main (oracle) db so there is no shortage of writes.

      I'm currently (after the weekends upgrade party) on pg 8.1.3 and performance is blinding. Admin'ing that box is sooo boring it just chuncks away. Zero issues.

      --
      TCAP-Abort
    14. Re:Why I'd rather not use PostgreSQL by quantum+bit · · Score: 1

      PostgreSQL 7 is ancient. There have already been multiple releases in the 8 series. I never worked significantly with 7, so I can't comment on it much, but with 8.x I haven't had the problems you've talked about.

      It's not that old. I use 8.1 for new installations but have several production systems on 7.4.8 that haven't been migrated yet. 7.x is extremely stable -- as is 8.x so far.

      The biggest changes in 8.x are with user/group (role) management. There's some nice new features too, but even 7.4 is a solid DB. 7.2 was good, but it was 7.3 and 7.4 when it started getting REALLY good.

      I've never seen 8.x crash, even when I've thrown gigantic, deeply nested queries at it.

      I've never seen a PostgreSQL backend crash (any version). Ever. Even when I was running 8.0 beta for my test environment. I've thrown some pretty wacky queries at it also.

    15. Re:Why I'd rather not use PostgreSQL by Anonymous Coward · · Score: 1, Interesting

      It should be pointed out that MySQL isn't 100% immune from vacuum like issues. We have a large MySQL installation where I work, 4 servers, over 400gigs of data. One of the servers started to run out of disk space last week... It was using about 200 gigs for the InnoDB data file, the solution to the problem was to do an ALTER table TYPE=InnoDB; command on each table in the database, this of course took a very long time, slowed response time on the replicated servers (since they serialize all transactions), and was a general pain in the ass. At the end of doing this we had 90 gigs of the 200 free though! InnoDB will have horrible space efficiency with a very fragmented B-Tree if you never 'compact' the tables in this manner. Keeping active database tables compacted and unfragmented is just not a simple problem, I haven't used PostgresQL myself, but I can tell you that MySQL could use with some improvement in this area as well.

    16. Re:Why I'd rather not use PostgreSQL by bill_mcgonigle · · Score: 1

      Nested parentheses in SQL can cause an engine crash. " like ... (SELECT A INNER JOIN B) INNER JOIN ..."

      Did you file a bug? Can you produce a data set and query to back this claim? I'm sure the dev team would be interested.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    17. Re:Why I'd rather not use PostgreSQL by owlstead · · Score: 1

      "Admin'ing that box is sooo boring it just chuncks away. Zero issues."

      Sounds like famous last words to me. Better knock on wood or something :)

    18. Re:Why I'd rather not use PostgreSQL by Trifthen · · Score: 1

      I think he was referring to the max_fsm_pages setting for the free-space map. If you don't increase that to match the average data-turnover of your tables, Postgres will lose track of reusable expired tuples beyond the current setting. That would cause linear scaled bloating, making it look like a vacuum-full was required. In all reality, you almost never want to do a vacuum full, as the table is compacted so that all inserts/updates take place at the end of the file, instead of being spread around the entire table. Hotspot contention like that would dampen write performance.

      The trick is to start with a vacuum full or fresh restore, and if the free space map is adequately large, all tables will expand to a function of their average turnover between non-full vacuums. Those kinds of vacuums can be run with relative frequency, as they do not require table locks, and they keep Postgres informed of reusable tuples. Once this happens, the tables will stabilize and only grow as new data is introduced; no more bloating. How do you set max_fsm_pages to achieve this? Do a "vacuum verbose analyze" and at the very bottom, it'll tell you the minimum setting it needs, so add 30% and change the value in postgresql.conf. The default setting of 20,000 really is not adequate for even moderate databases these days.

      Really, you just have to keep an eye on the Postgres mailing lists, and don't be afraid to ask questions. Most of these "issues" have been fixed or have a solution, it's just that some work has to be done.

      As a former Oracle DBA, I have to say: regardless of the inconvenience of properly researching and setting max_fsm_pages and other Postgres tweaks, nothing compares to the truly opressive task of administering an Oracle instance.

      --
      Read: Rabbit Rue - Free serial nove
    19. Re:Why I'd rather not use PostgreSQL by Trifthen · · Score: 1

      Actually, Oracle does its version tracking through Rollback segments. After writing to the data file, expired tuples get moved to the rollback segment, but only for the sake of currently running queries, or long tranactions. Once those tranactions release locks on those tuples, the rollback segment purges them.

      This gives you the same effect of MVCC + frequent vacuums: stable growth that overwrites expired data, leaving you with a certain percentage of your table as empty, based on the turnover rate of that table. Though this is much more difficult to implement, it also self-maintains.

      I personally don't understand Postgres's issue. If a row is updated or deleted, Postgres knows which tuples are affected; why not keep a running pointer count on these tuples, and when all other references go out of scope, automatically put it into the free-space-map? This would be very similar to name-space scoping rules in languages like PHP or Python; once something goes out of scope, deallocate the memory. In this case, instead of deallocating, you'd insert it into the list of known dead tuples. Ah well, there's probably some gotcha that prevents this solution...

      --
      Read: Rabbit Rue - Free serial nove
    20. Re:Why I'd rather not use PostgreSQL by mbirk · · Score: 1

      "I personally don't understand Postgres's issue. If a row is updated or deleted, Postgres knows which tuples are affected; why not keep a running pointer count on these tuples, and when all other references go out of scope, automatically put it into the free-space-map?"

      Wouldn't it also have to update the reference count for read transactions?

    21. Re:Why I'd rather not use PostgreSQL by Trifthen · · Score: 1

      Yes, but as mentioned before, only the act of updating or deleting a tuple causes a version conflict. If a read is executed and it touches a tuple that has been superceded by a new row version, the read still gets the old version, as it quallfies as a reference.

      This is actually somewhat how PG's vacuum works. When a vacuum launches, it gets a transaction identifier, just like any other query. In effect, they're treating vacuum like any other read, so it only knows about tuples that are dead *now*, even if another process expires a tuple while the vacuum is running. So if 10,000 tuples get expired while the vacuum is running, it won't find them until the next vacuum.

      Either way, when all these tuples are found, they're stored in a huge memory location that acts as an instant lookup for updates and inserts to reuse old tuples. Since they're already maintaining this in-memory list of dead tuples, why not make it more dynamic?

      --
      Read: Rabbit Rue - Free serial nove
    22. Re:Why I'd rather not use PostgreSQL by mbirk · · Score: 1

      "Yes [it requires updating the reference count for read transactions], but as mentioned before, only the act of updating or deleting a tuple causes a version conflict."

      You probably inferred my point, but I should have made it clear. My main "concern" was the overhead involved in updating a reference count for a simple read operation.

      The grandparent compared vacuum with garbage collection. Your suggestion sounded to me like reference counting, so I was just pointing out the known issues.

      Unfortunately I haven't had the pleasure of hacking PG code, so I'm just speculating.

    23. Re:Why I'd rather not use PostgreSQL by Trifthen · · Score: 1

      Unfortunately I haven't had the pleasure of hacking PG code, so I'm just speculating.

      Me too, so I guess it's fair. ;)

      I know, reference counting for a read on possibly millions of rows would be rather detrimental... But with mvcc, they wouldn't need to reference-count perse. PG already makes use of transactions to allow vacuum to operate; they'd just need to treat each update or delete as a mini-vacuum instead of forcing you to periodically launch it manually. Something like this would be very similar to a rollback segment without the necessity of moving all the rows around... Ah well, maybe someday. ;)

      --
      Read: Rabbit Rue - Free serial nove
  27. BullShit by slashpot · · Score: 5, Funny

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

    1. Re:BullShit by RazzleDazzle · · Score: 1
      --
      ZERO ZERO ONE ZERO ONE ZERO ONE ONE! Just brushing up for my next big invention: Ethernet over Voice (EoV)
    2. Re:BullShit by Anonymous Coward · · Score: 0

      Well, you're exactly right - that's the reason I won't switch.
      I know how MySQL works, how to administrate it, and recover databases in case of server problems.
      PostgreSQL is just too different, and as long as MySQL does the job...

    3. Re:BullShit by Anonymous Coward · · Score: 0

      Dude - I realy - really - reallly - thought that shit was funny.

  28. Basic marketing by murderlegendre · · Score: 2, Interesting

    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.

    --
    There's a Starman, waiting in the sky / He'd like to come and meet us, but he hasn't got the time.
    1. Re:Basic marketing by Forbman · · Score: 1

      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.

    2. Re:Basic marketing by Anonymous Coward · · Score: 0

      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.

    3. Re:Basic marketing by olorinpc · · Score: 1

      Actually it is a very valid point. People often wont talk about something if they aren't sure how to say it.

    4. Re:Basic marketing by Anonymous Coward · · Score: 0

      Almost a decade ago when I started using linux I had a choice between two sql packages one with a reasonable sounding name like mysql and another one with a stupid sounding name postgresql. I chose the former one, thinking that if they can't make the name user friendly, everything else (docs, code, support) may be just as unfriendly. While sql experts can get around this, I was noob and that was my first impression.

      I think the name is stupid, so everytime I'd access the DB, I'd have to think about the stupid name, and that's suicidal.

      Call it pSql or PostSql or gSql( pgSql - aka pigSql is bad).

    5. Re:Basic marketing by Anonymous Coward · · Score: 0

      "gres" is not a word.

    6. Re:Basic marketing by JoshRosenbaum · · Score: 1

      I propose we call it SQL4Dummies! That should get the mass market all over it!

    7. Re:Basic marketing by bill_mcgonigle · · Score: 1

      Actually it is a very valid point. People often wont talk about something if they aren't sure how to say it.

      Is this just fragile-ego syndrome? When I'm talking about something I'm not sure how to pronounce I'll ask the other person if they pronounce it the same way. I learned to pronounce 'OpenOffice.org Office' 'ooofice' this way - much handier.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  29. There are other reasons by Martin+Foster · · Score: 5, Informative

    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 (http://www.erealms.org/ 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.

    1. Re:There are other reasons by Ragica · · Score: 2, Informative
      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.
      There is this old (and seemingly abandoned) project (pg_autotune). I haven't got around to trying it for the last 3 years, but have always intended to...
    2. Re:There are other reasons by kpharmer · · Score: 1

      > A few years back, I converted a chat/gallery portal system Ethereal Realms (http://www.erealms.org/
      > 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.

      Hmm, given that labor is the primary cost to most projects and not hardware this seems like a fantastic trade-off. And given that this was years ago (v7.1?) the hardware trade-off might not even apply any more.

      Also note, that if you're doing a small number of reads on MySQL ISAM tables and comparing that to Postgresql 7.1 you could see a performance impact. About the same one that you'd see if you moved to MySQL's innodb tables. In other words, data integrity sometimes comes at a performance penalty.

      Most other comments similarly irrelavant due to older product version.

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

      Only extremely non-technical people should be thrown a loop by vacuum:
          - you're getting a bonus on write-performance by asynchronously reorganizing your tables via vacuum
          - vacuum can work concurrent with users
          - schedule it to execute during low-use periods of time
          - similar things are done in other large scale commercial databases

      What's the hard part? Scheduling something to run periodically? What!?! Don't you run backups periodically? Don't they impact performance a little? Of course they do. The complaint about vacuum amazes me - how can people have such a hard time with a cronjob?

  30. A huge omission by PornMaster · · Score: 3, Informative

    If you're doing something on Solaris 10 that doesn't need you to pay out the ass for Oracle, you can get PostgreSQL supported by Sun.

    http://news.com.com/Sun+backs+open-source+database +PostgreSQL/2100-1014_3-5958850.html

  31. Why my company didn't use it by ZeekWatson · · Score: 0, Interesting

    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?

  32. Its a pain in the a** to switch database engines by jbplou · · Score: 1

    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.

  33. Needs more advertisement (or whatever) by TimmyDee · · Score: 1

    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.

    --
    Per Square Mile, a blog about density
    1. Re:Needs more advertisement (or whatever) by dickeya · · Score: 1

      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.

  34. ...and the number one reason: by fak3r · · Score: 1, Redundant

    Too hard to pronounce.

    1. Re:...and the number one reason: by rossifer · · Score: 1

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

      Most of the time anyway.

      Regards,
      Ross

  35. SCO version of PostgreSQL by Anonymous Coward · · Score: 0

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

  36. Why I have so far resisted PostgreSQL by kimvette · · Score: 2, Insightful

    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.

    --
    The Christian Right is Neither (Christian nor right). See: Matthew 23, Matthew 25, Ezekiel 16:48-50
    1. Re:Why I have so far resisted PostgreSQL by NuShrike · · Score: 1

      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.

    2. Re:Why I have so far resisted PostgreSQL by Anonymous Coward · · Score: 0

      pgAdmin is quite featureful and makes working with a postgresql DB trivial. With about 3 seconds worth of search, you would have come across it too. It's even bundled with the Windows installer.

    3. Re:Why I have so far resisted PostgreSQL by dodobh · · Score: 1

      You mean, like pgaccess, pgadmin, and phppgadmin?

      --
      I can throw myself at the ground, and miss.
  37. 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
    1. Re:No newbie guides by Zemplar · · Score: 1
    2. Re:No newbie guides by cortana · · Score: 1

      Because it's so terribly difficult to go to postgresql.org and click documentation.

    3. Re:No newbie guides by slavemowgli · · Score: 1

      as everyone says, the name is catchy: MySQL

      My shallow reasons..

      That one at least *is* shallow, yes. If the name of the product or how "catchy" it is is one of the deciding factors when you try to figure out which product you're going to use, then you've got a bigger problem at hand than the potential loss of productivity due to choosing the inferior product...

      --
      quidquid latine dictum sit altum videtur.
    4. Re:No newbie guides by Anonymous Coward · · Score: 0

      OK,

      So I followed the link, clicked on documentation. So where are the newbie guides?
      Under "Books" there is a "Beginning Databases with PostgreSQL, 2nd Edition".

      That's all that I found at the location you gave. Is there a whole bunch of newbie stuff somewhere else?

      (My database background: one semester in college in the late 1980's with Dbase III. My web background: a handfull of small websites since 1998, all W3C compliant. My programming background: Perl for everything since 2000)

      I wouldn't mind learning about Postgresql but I expect some kind of hand-holding documentation to get me started. Currently spreadsheets and a tiny bit of MySQL has worked, but I'd like to expand my horizons.

    5. Re:No newbie guides by cortana · · Score: 1

      From http://www.postgresql.org/docs/ you have the choice of the manual for each version of PostgreSQL since 7.4, with or without user comments.

      I have not sat down and read the manual all the way through; however I have used it extensively for reference and I have found it an excellent resource for learning about PostgreSQL. I would even say that it is the definitive PostgreSQL reference, even the best one that I have seen.

    6. Re:No newbie guides by allanw · · Score: 1

      Chapter 1 of the docs is a tutorial (although it can be confusing if you're using Windows), and all the more in-depth chapters following that are still good reading for newbies.

  38. None of Those 5 Are My Reasons... by nko321 · · Score: 3, Insightful

    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.

    1. Re:None of Those 5 Are My Reasons... by eluusive · · Score: 1

      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.

    2. Re:None of Those 5 Are My Reasons... by drmerope · · Score: 1

      More complicated? Seriously?

      initdb -D /where/the/database/should/live
      psql -U pgsql template1
      \h create database
      CREATE DATABASE ......
      CREATE TABLE ...

      It is *amazingly* easy to use and setup.

    3. Re:None of Those 5 Are My Reasons... by nko321 · · Score: 1

      Really? Cool. Thanks. I didn't find anything like that on the Internet either time I tried.

    4. Re:None of Those 5 Are My Reasons... by fimbulvetr · · Score: 1

      If you don't need the extra features of triggers, stored procedures, replicated, clustering, etc. etc. then MySQL Is a nice little database server.

      Doesn't mysql do all of those? Did mysql have replication, even native, well before postgres?

    5. Re:None of Those 5 Are My Reasons... by cortana · · Score: 1

      You didn't read the manual? :)

    6. Re:None of Those 5 Are My Reasons... by nko321 · · Score: 1

      I did. Maybe I'm easily distracted, I dunno. I'm just saying, one was simpler throughout. Simpler doesn't map 1:1 to better, but whatever the details, the result is that I went with the one that was easier to digest.

    7. Re:None of Those 5 Are My Reasons... by drmerope · · Score: 1

      To be fair the manual says: /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data; /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &; /usr/local/pgsql/bin/createdb test; /usr/local/pgsql/bin/psql test;

      What's the difference here? It uses the pgsql/bin wrappers. createdb does nothing more than execute the sql command "CREATE DATABASE" thus why one can simply connect to the database backend via psql and just type the CREATE DATABASE sql statement directly. I think this way has somewhat better error handling.

      There are a bunch of configuration files in the pgsql directory (e.g. pg_hba.conf and postgresql.conf) once you know about these files... you can do just about anything.

    8. Re:None of Those 5 Are My Reasons... by nko321 · · Score: 1

      Maybe this is one of those areas I found confusing. Maybe it could be made more comprehensive, if not simpler. Not to knock it, as I'm in no position to do it. It's great stuff. Just saying, that sounds needlessly complicated. I know that stuff I do has some needless complications.

  39. Two Reasons by lorcha · · Score: 1
    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.
    --
    "Avoid employing unlucky people - throw half of the pile of CVs in the bin without reading them." -- David Brent
  40. I don't think so by NMerriam · · Score: 1, Insightful

    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?

    --
    Recursive: Adj. See Recursive.
    1. Re:I don't think so by QuasiEvil · · Score: 1

      Well said! I'm a hardware engineer, at best an embedded developer and a hack at anything much above that level. I tinkered with PostgreSQL, but realistically I found its general philosophy of doing things a bit cumbersome. Plus, for the few web apps I've built in my spare time, basic MySQL was quick to learn and did everything I needed (and I could figure out how to make it do everything I needed). Anything beyond the basics (transaction support, clustering, blah blah blah...) - not needed by anything I've built thus far.

      My wife is a professional DBA and database integration goon (specializing in Sybase, but pretty fluent in Oracle), and gets on me for my sloppy design, but hey, it works, and has worked under ever-increasing load for the last five years with zero maintenance. I'm not switching because there's no compelling reason to do so - my current solution works just fine. When I go to design something new, my first thought will be to look at MySQL first and see if it fits the task. Only if it does not will I look towards something else.

  41. For me, one thing remains a [sad] fact by bogaboga · · Score: 1
    > "...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.

    1. Re:For me, one thing remains a [sad] fact by rossifer · · Score: 2, Insightful

      If MS Access is good enough, PostgreSQL would have been massive overkill.

      Good for you for getting that right. A lot of skilled devs won't use anything but the tools they already know, even if there is an astonishingly simpler tool that will get the job done in 10% of the time.

      Personally, I think of everything as Java + PostgreSQL, so I've still got a lot of room to grow :o)

      Regards,
      Ross

    2. Re:For me, one thing remains a [sad] fact by rtaylor · · Score: 1

      It does not have a programmable front-end with which a novice like me can program business logic into!
      Plenty of people at work use MS Access to get into and play with PostgreSQL. The data store is different allowing for far more data to be shared between multiple users. Some of the stuff that Access is pretty bad at (complex joins) run quite well in PostgreSQL so many of the interfaces they made had a performance improvement.

      If you have a little bit of data and are a single user, it doesn't really matter too much.

      If you have a lot of data and several users, MS Access may still be a good interface, but consider using an ODBC driver and changing where the data store is.

      --
      Rod Taylor
    3. Re:For me, one thing remains a [sad] fact by darilon · · Score: 1

      The funny thing is that you can use MS Access as a front end for either PostgreSQL or MySQL. There are a number of advantages to doing this. First, you get a scalable solution. If your needs grow, your DB can scale. Secondly, for multiple users Access as a back end is horrible. If you have multiple users, use something sane - MySQL, PostgreSQL, MSSQL Server, Oracle, whatever. Thirdly, having a proper back end allows you to later connect your data to other applications should the need arise. While Access has it's uses, they are generally limited. If there is a possibility that you will need to do more with the data in the future than you are currently using, you should consider an RDBMS. Especially when cheap simple to set up and maintain systems exist like MySQL and PostgreSQL

  42. Postgresql community = vastly underrated by brennz · · Score: 1

    The Postgresql Community is superb. I've received a huge amount of help in #postgresql on irc.freenode.net . 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.

  43. Love the PSQL interface - ##%&@ the GUIs I say by funkdancer · · Score: 1

    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.

    --
    ISO certified == THX certified
  44. I avoid it.... by drgroove · · Score: 5, Funny

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

    1. Re:I avoid it.... by kestasjk · · Score: 3, Funny

      PostgreSQL/Postgres Post-gres-Q-L The es at the end of gres has to sound like the 'S' in 'S-Q-L', so it's an obvious pronunciation. However MySQL My-S-Q-L or My-See-Quel Apparently it's My-S-Q-L, but there's no way of knowing that by reading the text alone. What other reasons do you have? A dislike for elephants?

      --
      // MD_Update(&m,buf,j);
    2. Re:I avoid it.... by rsax · · Score: 1
      Wow. *THIS* is modded Insightful?? Someone doesn't use a really good database because they can't pronounce the name?

      I don't like driving Mercedes because the name is just plain messed up. Heavens forbid someone might ask me to spell it!

    3. Re:I avoid it.... by Anne+Thwacks · · Score: 1
      Obviously its not My-See-Quel, because SQL superceeded Sequel, which was IBM's database product prior to the invention of SQL.

      If IBM knew they were going to replace Sequel they would have named it Prequel, but since at the time they thought 12 computers (with less power than the original GameBoy) would satisfy the entire world's demand for computing power, you will understand that "forward thinking" was not IBM's strong-point at the time.

      --
      Sent from my ASR33 using ASCII
    4. Re:I avoid it.... by Anonymous Coward · · Score: 0

      My-See-Quel is moronic. How do people get "sequel" from SQL without a lot of twisting?

    5. Re:I avoid it.... by Qbertino · · Score: 1

      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.

      Allthough your post is somewhat funny there is a large amount of truth in that. I'm glad that the Postgres people at least managed to update their website design. That's one of the reasons Postgres is finally taking on.

      --
      We suffer more in our imagination than in reality. - Seneca
    6. Re:I avoid it.... by Anonymous Coward · · Score: 0

      It's funny but true. Other things equal, 'MySQL' beats 'PostgreSQL'. On my first project where I needed it I knew nothing of either one. PostgreSql looked geeky. I think my first impression was " maybe there is something called gre, whatever that is, and this is a fork of that.". So in the first 2 seconds, I didn't know how to pronounce it and it raised questions. MySQL looked like SQL for me. I made a snap judgement which one to research first. MySQL was up to the task and there was no time to check out PostgreSql. Later I was in too deep with mySQL (using replication) to go back. Names matter.

    7. Re:I avoid it.... by NeoSkandranon · · Score: 1

      The same way people get "Scuzzy" from SCSI and "Gooey" from GUI

      --
      If you can't see the value in jet powered ants you should turn in your nerd card. - Dunbal (464142)
    8. Re:I avoid it.... by AngryDill · · Score: 1

      As a PosgreSQL fan, I prefer to pronounce MySQL as "Mice Equal."

      It somehow seems fitting.

      -a.d.-

      --


      I'm Erwin Schrodinger and I approve of this message, and I do not approve of this message!
  45. 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
  46. One query - select count(*) from .... by Slashcrunch · · Score: 2, Insightful


    Try this on a table with a couple of million rows

    select count(*) from tablename
    or
    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.

    1. Re:One query - select count(*) from .... by linuxhansl · · Score: 4, Informative
      Try count(*) on an InnoDB or BerkeleyDB table... Same thing. Or try anything that does not count the entire table (in that case every database has to do a table or index scan).

      Either you want transactional safety or you don't. If you don't use MySQL with MyISAM tables and have fast count(*), if you do use InnoDB (or better use PostgreSQL), but then there's no single count(*) that can be stored with the table since every transaction may see a different count(*).

      The cool think about MySQL is that you do have the option (with Table-Engines). The cool thing about PostgreSQL are its advanced featured... One example: Hands up, who here knows what a partial index is?

      In PostgreSQL you can setup indexes that only cover a part of the table (for example if you have an active flag on a table and most queries are on active entries, you can have a partial index only on rows that have active=true, and this can speed up things *significantly*); alas most folks even have not even heard about partial indexes, and that is why they do not appreciate PostgreSQL.

      This is just one example.

    2. Re:One query - select count(*) from .... by Slashcrunch · · Score: 1

      OK, cool. I'm not going to argue as I haven't used InnoDB or BerkeleyDB. So why can MS SQL also return the count fast? No transactional security? I don't think so. I hate to stick up for MS here... I *really* hate that, but MS SQL can do it.

    3. Re:One query - select count(*) from .... by linuxhansl · · Score: 1
      Hmm... Does MSSQL support MVCC (Multiversion Concurrency Control)?

      Both PostgreSQL and InnoDB use MVCC internally. MVCC let's you deal with concurrent updates far more efficient (by keeping multiple versions of the same tuple around) than most other schemes (which are mostly lock-based), but comes at the expense that unqualified count(*) are slower (other count(*) with a where clause will use indexes as appropriate). Also, for performance reasons, PostgreSQL does not store the current tuple visibility (per transaction) in the index, and hence even if there was a unique index on the table it count not use the index to get (an unqualified) count(*). I know Oracle can use a unique index in some cases (if NULLs are not allowed).

      In a nutshell, how much performance penalty in other areas are you willing to accept to speed up the single case of unqualified count(*) queries?

      If you really need fast count(*) one could envision keeping track of the number of tuples by using some triggers.

    4. Re:One query - select count(*) from .... by Slashcrunch · · Score: 1

      Hmm... Does MSSQL support MVCC (Multiversion Concurrency Control)?

      I don't know if it does or not... thats beside the point.

      In a nutshell, how much performance penalty in other areas are you willing to accept to speed up the single case of unqualified count(*) queries?

      None. That is why we are using unfortunately having to use MS SQL for big databases. The usage of the count(*) isn't unqualified, this is a general example and an issue I have had for years with PostgreSQL. You can attempt to explain it away as much as you like, but it exists.

      If you really need fast count(*) one could envision keeping track of the number of tuples by using some triggers.

      Using triggers to achieve this is unacceptable.

    5. Re:One query - select count(*) from .... by Anonymous Coward · · Score: 0

      Try count(*) on an InnoDB or BerkeleyDB table... Same thing. Or try anything that does not count the entire table (in that case every database has to do a table or index scan).

      Not true for InnoDB. I have to do this for senior management stats summary reports. PostgreSQL takes over 1 minute if vacuum doesn't kill the server, MySQL InnoDB takes 9 seconds or less. The report in question does around 11,000 count(*) queries.

    6. Re:One query - select count(*) from .... by bill_mcgonigle · · Score: 1

      alas most folks even have not even heard about partial indexes, and that is why they do not appreciate PostgreSQL

      Most people don't know how to be a DBA and think DBA's are just guys who get paid too much money to do nothing. Heck, they probably never took a databases class in college. They probably have small databases and don't need performance. Fortunately there are also plenty of folks who do.

      It's going to be hard to convert them from MySQL. Yeah, maybe PostgreSQL would grow faster if it had a larger user base, but already the PostgreSQL and Oracle feature set curves cross in the forseeable future, so we're doing OK.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    7. Re:One query - select count(*) from .... by bill_mcgonigle · · Score: 1


      >In a nutshell, how much performance penalty in other
      >areas are you willing to accept to speed up the
      >single case of unqualified count(*) queries?
      None. That is why we are using unfortunately having to use MS SQL for big databases.


      So you're saying MSSQL handles concurrent updates just as fast as PostgreSQL even though it uses row locking? Or have you not tested that? This is what linuxhansl was getting at.

      Using triggers to achieve this is unacceptable.

      You should give some rationale for your unwillingness to accept a simple solution to an apparently mission-critical function of your application. DBA's need to accept all kinds of sub-ideal compromises with every database.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    8. Re:One query - select count(*) from .... by Anonymous Coward · · Score: 0

      "I don't know if it does or not... thats beside the point."

      No, that is the point. Using MVCC like postgresql, mysql (with usable table types) and oracle do means you cannot count(*) any other way.

      "None. That is why we are using unfortunately having to use MS SQL for big databases. The usage of the count(*) isn't unqualified, this is a general example and an issue I have had for years with PostgreSQL. You can attempt to explain it away as much as you like, but it exists."

      Uh, you are giving up performance by using MSSQL. It uses locking instead of MVCC, which means it can return an unqualified count(*) faster, but its slower to do concurrent write operations.

      "Using triggers to achieve this is unacceptable."

      Actually, its quite acceptable. If you refuse a simple and easy solution to your pretend problem, that's your fault. Seriously, how big are the tables you are running an unqualified count(*) on, and why the hell are you running an unqualified count(*) on them?

  47. Reason # -1 by hdante · · Score: 1

    Slower than MySQL ? Don't have any benchmarks, but I always hear this.

  48. my reason for not trying it by Anonymous Coward · · Score: 0, Troll

    the reason I chose MySQL over PostreSQL is Windows support, there was no reason for me to downgrade to Linux just so I can use a database, but I see that's no longer the case, I think I'll give it a try eventually.

  49. pronunciation by NuShrike · · Score: 1
    1. Re:pronunciation by drgroove · · Score: 1

      Read the article. Yeah, the name still sucks eggs. Thanks for the assist though. I still don't feel confident in saying that in front of my boss.

      Also read about the EnterpriseDB thing - that's a step in the right direction, though I worry about EDB's and PostgreSQL's mascots getting along. A shark and an elephant? Not a good combination. Someone's bound to get their eye poked out.

    2. Re:pronunciation by Anonymous Coward · · Score: 0

      A shark and an elephant? Not a good combination.

      LOL. If I had mod points, I'd mod that funny. Maybe someone would then help me get my karma out of "bad." C'est la vie.

  50. Why it gets dismissed where I work. by mpn14tech · · Score: 2, Interesting

    Although where I work we would like to use postgresql, we do not because it does not support case insensitive queries like mysql, sql server and sybase.

    1. Re:Why it gets dismissed where I work. by chundo · · Score: 3, Informative

      Postgres can create indexes on functions. So if you need case-insensitive queries, you can create an index like the following on your table:

      CREATE INDEX my_index ON my_table(LOWER(column_name));

      Then you can use something like the following query:

      SELECT * from my_table WHERE LOWER(column_name) = LOWER('Search String');

      This gives you case-insensitive searching with no performance penalty. A little more setup involved, but the same functionality as the other DBMS's you mention.

    2. Re:Why it gets dismissed where I work. by pHDNgell · · Score: 2, Informative

      Just create a functional index on lower(column) and search on lower(column). There are likely other solutions to this problem (such as ILIKE).

      --
      -- The world is watching America, and America is watching TV.
    3. Re:Why it gets dismissed where I work. by killjoe · · Score: 1

      Why doesn't postgres deal with this issue as a localization problem? Just create a language called "case insensitive english" and be done with it.

      It's fine to write queries like where lower(colum_name) but if you have already witten a hundred queries that say where column_name =searchstring then what do you do?

      --
      evil is as evil does
    4. Re:Why it gets dismissed where I work. by j_w_d · · Score: 1

      It's fine to write queries like where lower(colum_name) but if you have already witten a hundred queries that say where column_name =searchstring then what do you do?

      Try reverting to SQL standards? What you seem to be indicating that is that you are expecting that your data is "dirty" and that no one has checked it for entry and data code consistency. There are many situations where permitting that kind of inconsistency and masking it could lead to all sorts of problems, everything from inaccurate scientific analytical results to problems with the IRS depending on the data.

      --
      ------ The only greater hazard to your liberty than n politicians is n+1 politicians.
    5. Re:Why it gets dismissed where I work. by killjoe · · Score: 1

      Nonsense. There are many databases which treat where clauses in a case insensitive manner. Postgres already has different collation code for each language so why not just make another one? POstgres is able to sort and search for greek, turkish, crylic, korean etc are they breaking some SQL standard because they can satisfy a where clause with umlauts in them? Of course not.

      As for inconsistancy perhaps they can take a clue from firebird and set the collation on a per column basis. That way you can use case sensitive collation for your scientific columns and case insensitive collation for names of your employees. After all do you really want to return an empty recordset because you searched for McNab instead of mcnab or Mcnab?

      --
      evil is as evil does
    6. Re:Why it gets dismissed where I work. by Anonymous Coward · · Score: 0

      There are collation upgrades being discussed and implemented, I believe. For the problem you propose, one solution that I think should be currently possible is to use PostgreSQL's rule system to rewrite queries on the table to automatically use lower().

    7. Re:Why it gets dismissed where I work. by killjoe · · Score: 1

      I am pretty sure you can't use the rule system to intercept and rework queries coming from a client. Rule system is awesomely powerful but it's not designed to do that.

      How hard could it be to write a new collation anyway? I remember people asking for this during the open source database conference way back five or six years ago.

      --
      evil is as evil does
    8. Re:Why it gets dismissed where I work. by raynet · · Score: 2, Informative

      Sure it does:

      SELECT * FROM sometable WHERE (some_column ILIKE 'SeaRcH STrinG');

      You can also do regexp instead of simple LIKE matches.

      --
      - Raynet --> .
    9. Re:Why it gets dismissed where I work. by Alioth · · Score: 1

      Well, I guess I must be hallucinating when I do those case-insensitive regular expression queries on my Postgres database.

    10. Re:Why it gets dismissed where I work. by StormReaver · · Score: 1

      "...[PostgreSQL] does not support case insensitive queries like mysql, sql server and sybase."

      "select * from table where upper(field) = 'SOME STRING';"
      "select * from table where lower(field) = 'SOME STRING';"

      If the query goes slow, then create an index on upper(field) and/or lower(field).

      You can segment the rows of large tables with partial indexes too, speeding up queries on large tables by a huge amount. The gains will depend entirely on your specific data set, and how you configure your indexes.

    11. Re:Why it gets dismissed where I work. by Anonymous Coward · · Score: 0

      I am pretty sure you can't use the rule system to intercept and rework queries coming from a client.

      Sure you can, that's the entire point of the rule system. Read chapter 33 of the docs. Rules are very flexible and it'd be trivial to implement insert/update rules that automatically call LOWER(...) on your incoming data.

    12. Re:Why it gets dismissed where I work. by glwtta · · Score: 1
      I've worked with postgres for about 5 years - the things it can do with querying/indexing I couldn't even dream about in MySQL.

      Case insensitive queries are done in the two ways the others mentioned, additionally, you can define operators for them, to save some typing (and yes, indices defined with UPPER() will work with these):

      CREATE OR REPLACE FUNCTION public.text_eqi (text, text) RETURNS boolean AS
      'SELECT UPPER($1) = UPPER($2)'
      LANGUAGE 'sql' STRICT IMMUTABLE;

      CREATE OR REPLACE FUNCTION public.text_nei (text, text) RETURNS boolean AS
      'SELECT UPPER($1) != UPPER($2)'
      LANGUAGE 'sql' STRICT IMMUTABLE;

      CREATE OR REPLACE FUNCTION public.text_gti (text, text) RETURNS boolean AS
      'SELECT UPPER($1) > UPPER($2)'
      LANGUAGE 'sql' STRICT IMMUTABLE;

      CREATE OR REPLACE FUNCTION public.text_lti (text, text) RETURNS boolean AS
      'SELECT UPPER($1) < UPPER($2)'
      LANGUAGE 'sql' STRICT IMMUTABLE;

      CREATE OPERATOR public.>* (
      PROCEDURE = public.text_gti,
      LEFTARG = text, RIGHTARG = text,
      COMMUTATOR = <*,
      RESTRICT = scalargtsel, JOIN = scalargtjoinsel
      );

      CREATE OPERATOR public.<* (
      PROCEDURE = public.text_lti,
      LEFTARG = text, RIGHTARG = text,
      NEGATOR = >*,
      RESTRICT = scalarltsel, JOIN = scalarltjoinsel
      );

      CREATE OPERATOR public.!=* (
      PROCEDURE = public.text_nei,
      LEFTARG = text, RIGHTARG = text,
      COMMUTATOR = !=*, NEGATOR = =*,
      RESTRICT = neqsel, JOIN = neqjoinsel
      );

      CREATE OPERATOR public.=* (
      PROCEDURE = public.text_eqi,
      LEFTARG = text, RIGHTARG = text,
      COMMUTATOR = =*, NEGATOR = !=*,
      RESTRICT = eqsel, JOIN = eqjoinsel
      );
      --
      sic transit gloria mundi
    13. Re:Why it gets dismissed where I work. by allanw · · Score: 1

      There's an case insenstive data type in the contrib folder that you could use. I can't remember the name right now.

  51. Why I chose MySQL by Reality+Master+101 · · Score: 4, Insightful
    First, let me say that one of my "real" sites uses PostgreSQL, has used it for about six years, and I'm very happy with it. It was the right decision.

    Now, about a year ago, I had a client that wanted a web site back-end written. Now, I wasn't sure what the future of that site was going to be, whether I was going to be involved, etc. I also knew that it would be probably be run on inexpensive shared hosting solutions.

    Guess what I chose? MySQL and PHP. The reason was because those are always available. It gives my client the flexibility to move it to any hosting solution. PostgreSQL simply is not everywhere. In my case, I run my own servers and can afford to have to understand it. But my client needs a hosting solution that does all the work for him (including back-ups). There's something to be said for using "the standard".

    And you know what? I originally chose PostgreSQL because it was ACID compliant, but I have to say that MySQL sucks a lot less than it used to. It defaults to tables that support commit/rollback. It supports sub-transactions (which PostgreSQL v7 doesn't support, not sure about 8). It (FINALLY) supports sub-selects. If you're still turning up your nose at MySQL, it really isn't as bad as it used to be.

    --
    Sometimes it's best to just let stupid people be stupid.
    1. Re:Why I chose MySQL by JoshRosenbaum · · Score: 1

      I believe 8.0+ supports nested transactions ('sub-transactions').
      http://www.postgresql.org/docs/8.1/interactive/rel ease-8-0.html

    2. Re:Why I chose MySQL by Anonymous Coward · · Score: 1, Informative
      And you know what? I originally chose PostgreSQL because it was ACID compliant, but I have to say that MySQL sucks a lot less than it used to. It defaults to tables that support commit/rollback. It supports sub-transactions (which PostgreSQL v7 doesn't support, not sure about 8). It (FINALLY) supports sub-selects. If you're still turning up your nose at MySQL, it really isn't as bad as it used to be.


      To address some of your points (and ramble on slightly)...

      MySQL's default configuration still (even in 5.0) creates MyISAM tables when no table type is specified and that of course doesn't support commit/rollback. This only applies to official binaries, of course. Various distros which package it may use a different default table type. As for the official ones, the InnoDB table type which transactions is available by default at least in the -max binaries, though I'm not sure on the other packages MySQL AB makes. Last I saw, the future roadmap indicates that they have transactional support for MyISAM on the TODO list so they might have commit/rollback on the default table type some day.

      Subtransactions are an area where MySQL was ahead of PostgreSQL for around 18 months, first appearing in a stable release with 4.0.14 (2003-07-18) but not in PostgreSQL until 8.0.0 (2005-01-19). Replication is another area where MySQL has an arguable advantage since its solution is built-in as opposed to added on later.

      Subqueries first appeared in production in MySQL with 4.1.7 (2004-10-23) and in PostgreSQL with 6.3 (1998-03-01). Advances to more fully support them came in PostgreSQL 7.0 (2000-05-08) and 7.1 (2001-04-03). Even comparing the current MySQL implementation to the PostgreSQL 7.1 level, MySQL has some notable issues with them. For example, subqueries are not currently supported in view definitions in MySQL (5.0, obviously, since previous versions didn't support views at all). In my own work with a 5.0 database, I've come across and reported some interesting bugs with subqueries, dealing with doubly nested subqueries and some combinations of joins/subqueries. Unfortunately, both bugs have been in the database for about 3 months without any progress towards a fix.

      I agree with your final point; in my eyes, MySQL 5.0 is worlds ahead of any previous release. So I'm cautiously optimistic for the future but I prefer PostgreSQL for now and until I have a compelling reason not to.
    3. Re:Why I chose MySQL by glwtta · · Score: 1
      If you're still turning up your nose at MySQL, it really isn't as bad as it used to be.

      It's true, 5.0 is far closer to being "not a toy database" than any of the previous releases (at least on paper, I haven't had much occasion to use it), but it's not there yet.

      What irks me most is the apparent attitude of the MySQL community that if you want basic features like transactions or views, you must be some sort of elitist DB snob, so they don't care what you think, anyway.

      That, and their persistent readiness to put convenience before data integrity, make me wonder if MySQL will ever become a database I would consider using; outside the narrow niche of "granular filesystem with a SQL interface" (which, it does kick ass at).

      --
      sic transit gloria mundi
  52. Autovacuum by dskoll · · Score: 1

    I looked at autovacuum, but we don't use it. We have customers with quite busy databases (we're talking several hundred queries per second, 24/7, with probably 5% of those being INSERTs or UPDATEs), and a VACUUM at the wrong time can cause problems. We prefer to time out VACUUMS for when the DB is relatively quiet.

    1. 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.
  53. Hm ... where have I heard this before ... by ScrewMaster · · Score: 1

    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.

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

    No, the "problem" (if you can call it that) is people that are simply comfortable using what they've always been using. Making a switch to a new technology will require considerable effort and in the case of these two products a substantial learning curve. Is PostgreSQL sufficiently "better" than MySQL? For some, sure ... for others it probably isn't enough better to make the effort worthwhile.

    --
    The higher the technology, the sharper that two-edged sword.
  54. How about... by JoeCommodore · · Score: 2, Insightful

    Installation

    Good installation documenation with Postgres is pretty sparse. It's not too complicated but it's not easy to find answers. This mainly includes how to properly setup pg_hba.conf which is vague at best on how to configure.

    It might be better in newer installs but in RHEL3 I was just scraping along.

    Application Support

    As mentioned there are some great apps, but there are just are not many applications supporting Postgres, most web apps are LAMP (with M being very much in represntation). I think it would help Postgre if there is a comprehensive PHP-PGSQLPHP-MYSQL conversion equivelants document/tool to help developers either to transition or at the least open up the cross-platform support for multiple DB engines.

    Documentation

    Recently there have been a growing number of updated books on Postgres including those which work along with PHP, so that situation is improving, the books I had to work with were circa 2000 or earlier before schema support.

    So, yes, I tried it, for a while, almost got there, but I just wasn't achieving as much progress as I had hoped. Maybe later I'll go back when conditions get better.

    Keep up the good work, I'll be watching.

    --
    "Enjoy what you're doing! If it becomes drudgery, you're doing it wrong!" - Jim Butterfield
  55. PostgreSQL harder to administer? by Anonymous Coward · · Score: 1, Informative

    I'm seeing alot of people citing a reason of low postgres adoption is that 'its confusing to setup' and 'administer' (or it just feels weird) compared to MySQL.. I just have to ask.. what kind of crack are you guys smoking? To me, PostgreSQL administration has always seemed neatly packed into easy, concise and well documented config files like any other *nix service, with a couple of straightforward command line utilites. In contrast you have MySQL whos admistration functions are taken care of by a seemingly random chaotic array of oddball mysql commandline programs whos number is only dwarfed by the amount of built in functions in php. How anyone can think mysql adminstration is more sensical is beyond me. There at least it seems there is a rhyme and a reason behind postgresql administration functions as opposed to mysql where the developers thought it was a good idea to add a whole new command line utility for everything feature that could have been taken care of with a command line parameter. After that it comes down to SQL, which PostgreSQL is the obvious winner (at least it was as of 4 years ago.. its been about that long since ive done web development). A lot of people say mysql is "good enough".. mabye I'm behind on the times, but back then there was NO WAY i would have considered mysql for any project at all givin its limited SQL functionality. Your web apps ended up being twice as big because youd have to hardcode database logic into the program instead of letting SQL do the work for you. You could barely call MySQL a relational database.. it boggles my mind that people love it so much.

    1. Re:PostgreSQL harder to administer? by yhetti · · Score: 1

      You don't to use hardly any of the commandline functions once you know how to use the shell client. 95% of people will only ever use mysqladmin and mysqldump. All the functionality they need is built into the mysql command shell. I think the real difference is that the mysql command shell (versus psql) seems closer to a natural language interface. I mean, "show databases" is pretty straightforward and intuitive. "show tables", too.

      With normal PHP development all the "Advanced features" of either postgres or mysql are basically dropped by the wayside and ignored. You shouldn't rely on data types and integrity checks in the database for web applications; your form processing should have already checked all that or you're leaving your self open to SQL injection, XSS problems and really crappy error messages. Very few people even use joins!

      Bottom line is that most people (like me) use mysql because it's fast and easy, and we really just want one step above flatfile. I have a lot of experience with Postgres, MSSQL, Oracle, and flatfile. I'll go to MySQL every time.

  56. People dismiss it? by Theatetus · · Score: 0

    *shrug* not me. Find me a comparable product with table inheretance and I'll consider it. Until I see one, the other DB's are pretty much lacking.

    --
    All's true that is mistrusted
  57. 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
  58. Case-insensitve queries by dskoll · · Score: 1

    What are you talking about??

    Of course you can make case-insensitive queries in PostgreSQL:

    SELECT foo, bar FROM table WHERE lower(fritz) = 'blat';

    You can even make indexes on lower-cased versions of your column(s) (for example) if you want the query to use an index.

  59. Ignorance and defaults. by adolfojp · · Score: 1

    Most people that I've worked with don't know the importance or value of the database features that MySQL didn't include before version 5. Even with the arrival of MySQL 5 they insist on using MyISAM tables. Most people don't care about solid reliable data warehousing. They care about simple tables that will make their forums run. If they didn't use PostgreSQL before they will not use it now that MySQL has a competitive feature set.

    If you want to make people switch to PostgreSQL explain to them that since it has a BSDish license, instead of a dual licensing scheme like MySQL, using it might be 500 bucks cheaper ;-)

    Cheers,
    Adolfo

  60. yeah *ahem*.... "other DBs" by RelliK · · Score: 1
    select count(*) from tablename
    or
    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.


    Yeah, MySQL handles it really well... by giving you an approximation!

    --
    ___
    If you think big enough, you'll never have to do it.
    1. Re:yeah *ahem*.... "other DBs" by Slashcrunch · · Score: 1

      Actually I was talking specifically about MS SQL which we use for some big DB's, but the approximations from mysql that you speak of... as far as I understand the table stats are updated more frequently, if not on every insert and delete which is why the count(*) works fine in MySQL. I've never found a discrepancy with it yet.

      To get an approximation from PostgreSQL I need to vacuum the DB which is not ideal to run frequently on a big, busy database... no matter which way you look at it.

      Like I said, I like PostgreSQL but until this works fast it is a show stopped for many projects I work on. I can just see myself saying to the client... "Oh its not slow, its a feature of the DB. Its way better than the others we could have put in for you even though they won't leave you hanging for 3 minutes to finish that query that the others handle in under 1 second."

      I'm serious. There is no exagaeration in query times at there. Try it on a big table, see how you go before you get all upset again :)

    2. Re:yeah *ahem*.... "other DBs" by mgkimsal2 · · Score: 1

      MySQL gives an approximation on innodb tables, but for myisam tables it gives back accurate counts, not approximations.

    3. Re:yeah *ahem*.... "other DBs" by Anonymous Coward · · Score: 0

      It is doubtful that you really need exact counts of all of the rows from tables with millions of rows.
      However if you do, you can trade some complication to speed up various count queries using triggers. The simplest ways of doing this will not work in cases where the table is being queried concurrently, but there are some more complicated methods that will work well.
      The trade off is that you slow down inserts, updates and deletes in order for count to work faster. In most cases this is a bad trade off.

  61. No newbie guides by Saeed+al-Sahaf · · Score: 3, Insightful
    I went to Books-A-Million a few weeks later, and found many books on PHP, MySQL, php/mysql - and nothing on PostgreSQL. ... I looked more into sub-queries in PostgreSQL, but the community structure was so scattered and non-newbie friendly

    Two of PostgreSQL's biggest problems: Very little documentation that mere mortals can read (if they can even find it), and a rude, elitist cheering squad. The product my be the greatest thing to hit Open Source since RMS, but most people who need a database (usually for web dev, but yes, often for "real" applications as well) will never find out about all of PostgreSQL's golden features.

    --
    "Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
  62. PostgreSQL is BSD licensed by Omnifarious · · Score: 1

    I do not trust that the contributions I make by learning it and using it and answering other people's questions will be a wise investment in the future. It's quite possible that some random company will manage to market and promote their closed version of PostgreSQL to the point where it squeezes out the free as in speech versions, and then my investment will be effectively lost.

    1. Re:PostgreSQL is BSD licensed by Anonymous Coward · · Score: 0

      First of all, what RDBMS contributions have you made, and are you even capable of making any?

      Second, Postgres is like decades behind commerical DB engines, so, even if you did outsmart all the PhDs at Oracle and Microsoft, nobody's going to bother steal your wonderful ideas.

    2. Re:PostgreSQL is BSD licensed by tgl · · Score: 3, Insightful

      That's an utterly stupid argument, especially if you think it's a reason to contribute to mysql instead.

      There isn't any way for someone to "take control" of a BSD-licensed project. Sure, someone could use a BSD project as the base for a proprietary project, but that isn't going to discourage anybody else from working on the open original. We have in fact watched several proprietary "improvements" of postgres quietly tank over the years.

      On the other hand, MySQL AB own mysql lock stock and barrel, and only release GPL versions because they choose to. They could announce tomorrow that all their future versions will be high-price closed-source shrink-wrap, and no one could say boo to them about it. The difference from the postgres situation is that MySQL AB could take with them the vast majority of the existing development expertise for the code base. Postgres will continue as an open-source project no matter what any one company thinks about it --- you cannot say the same about mysql.

    3. Re:PostgreSQL is BSD licensed by Omnifarious · · Score: 1

      It isn't an utterly stupid argument, but you may be correct that it doesn't strongly apply specifically to this situation. Thinking about it, your assessment of the situation with MySQL is very correct. Though I also happen to know a few of the people who are involved in the development of MySQL, and I'm pretty sure they would quit and start their own company if MySQL's management decided to go that route.

      You know, one thing that might really help PostreSQL is if the advocates didn't complain bitterly about how unfairly unpopular they were, and instead built bridges to MySQL. Get together on the wire protocol. See if maybe the two projects can agree on some of the odder datatypes. If people percieved you as being interested and helpful instead of as combative and whiny, it might help a lot.

      I still don't trust the BSD license very much. But I might be more favorably inclined if I didn't percieve PostreSQL supporters in that light.

    4. Re:PostgreSQL is BSD licensed by Omnifarious · · Score: 1

      Even using a project is a contribution. I'm contributing my time and energy to getting it running in some situation or environment. Then there's bug reports, and asking (and answering) questions in forums, and devoting time to learning how to use it. I don't have to be some fantastic RDBMS design guru in order to contribute to a project. One of the thing that makes Open Source work is that every single user is a contributor, whether or not they realize it.

      Also, outsmarting PhDs isn't so hard. Microsoft still can't make an OS who's kernel outperforms BSD or Linux except in specially contrived situations. There's a lot more to a project or organization than how many smart people they employ.

    5. Re:PostgreSQL is BSD licensed by ajs318 · · Score: 1
      You know, one thing that might really help PostreSQL is if the advocates didn't complain bitterly about how unfairly unpopular they were, and instead built bridges to MySQL.
      *sigh* Where are mod points when you need them?

      I think all Open Source users are, to some greater or lesser extent, a bit self-righteous about it. Like "My system is purer than yours". It's the same with the BSDs versus Linux. This attitude can be counter-productive because it creates artificial divisions between people who, if it came down to a battle of "good" versus "evil", should be on the same side. And while the Free / Open Source Community descend into factions and squabble amongst ourselves over trivia, The Enemy is making progress.

      It would be nice to see some articles on switching from MySQL to PostgreSQL, covering the how {bridging the dialect gap}, the why {explaining the improvements}, and including a checklist of points to help MySQL users see when its limitations are beginning to bite. And what sort of things can PostgreSQL do for itself, that would need a script to do them in MySQL. I'm sure MySQL is adequate for what most of its users expect {glorified variable persistence, if we're brutally honest}; but there must be a proportion of advanced users who are encountering its limitations and probably don't even realise it. The people who have had projects that started modest and grew slowly but relentlessly, like a family that eventually outgrow their car. These are the people the PostgreSQL folks really need to convince -- which means not getting all snobbish and hostile because of where they've come from, but welcoming them into the community. Try catching flies with honey as opposed to vinegar!
      --
      Je fume. Tu fumes. Nous fûmes!
    6. Re:PostgreSQL is BSD licensed by eltoyoboyo · · Score: 1

      BSD vs GPL for contributions has been discussed repeatedly in the Slashdot forum. But, more important to me is the manner in which the software may used. mySQL AB puts restrictions on the redistribution of application, with a special exception for PHP based applications. Also, it appears that a for-profit company would be on the hook to purchase commerical licenses, unless they were willing to publish the source code to their mySQL powered application.

      http://www.mysql.com/company/legal/licensing/opens ource-license.html

      So now, as an application developer for a commercial enterprise, one starts looking at all freely available alternatives, including those published by the top database vendors. If you could live within the size or license restrictions imposed by the no-cost commercial versions, PostGreSQL and mySQL become just two of many choices.

      --
      Have you Meta Moderated t
    7. Re:PostgreSQL is BSD licensed by wieck · · Score: 1

      Though I also happen to know a few of the people who are involved in the development of MySQL, and I'm pretty sure they would quit and start their own company if MySQL's management decided to go that route.

      And that new company is selling what exactly?

      Note that MySQL AB holds the copyright to all of the server code as well as the trademark MySQL. Because of the trademark, let's call the fork TheirOwnSQL. Since TheirOwnSQL will be a fork of the GPL release, TheirOwnSQL AB will not be able to do the dual licensing again. That means that TheirOwnSQL AB will only be able to publish new GPL versions. The very reason why closed source software shops pay MySQL AB license fees today will prevent exactly those paying customers to use TheirOwnSQL. I guess they will continue to pay MySQL AB for a now closed source product.

      Without paying customers and a single GPL licensed product, which is polluted with foreign copyright, how long will that new company exist?

      Jan

      --
      It takes a real man to ride a scooter ... what are you compensating for?
    8. Re:PostgreSQL is BSD licensed by Omnifarious · · Score: 1

      I bet almost none of those companies actually ship any product to anybody that uses MySQL. I suspect many just do in house development with it and buy a license out of either unfounded fear, or just because they want the support. I suspect MySQL's revenue model is not anywhere near as dependent on dual licensing as you think.

      I'm going to have to ask about that and make sure though. But I strongly suspect it's true.

    9. Re:PostgreSQL is BSD licensed by wieck · · Score: 1

      It doesn't matter if any of those companies actually ship stuff or just use it internally and buy the license out of fear. With MySQL AB being the copyright holder of the majority of the code base and the fork being GPL based, TheirOwnSQL AB cannot sell them any commercial license that allows closed source usage. They can only hand them the whole thing under the GPL. So there is no license and no fear factor whatsoever that would make anyone pay anything to TheirOwnSQL AB. MySQL AB's business model is based on dual licensing ... what is TheirOwnSQL AB's business model?

      My guess is that far too many people have repeated over and over that "MySQL is open source, MySQL is GPL, if ... yadda ... fork ...". There is no distributed developer community behind MySQL, there is a company with a business model behind it. If MySQL AB goes down the hard way, the people who maintain the code today will have to look for new jobs. They will be allowed to continue working on the GPL version in their spare time, but they will not be able to make a living out of that unless that is entirely based on a support/service model. And nobody can spin off any license based distribution or package business from that GPL community fork.

      Yes, it is open source under GPL, that legally allows a fork. I yet fail to see who is going to do that and why.

      Jan

      --
      It takes a real man to ride a scooter ... what are you compensating for?
    10. Re:PostgreSQL is BSD licensed by Omnifarious · · Score: 1

      That's an interesting argument. That essentially GPL licensed code who's copyright is owned by a company that dual licenses is just as (and perhaps more) vulnerable to a proprietary fork than a piece of BSD licensed code.

      You are right in that anybody who quit and formed their own company would have to start using a pure service model. And I think they would get some business that way, but I suspect a fair amount less than MySQL AB was getting.

      Still doesn't address my other complaint about 'chip on their shoulder' PostgreSQL supporters though.

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

  64. Same reasons as Lisp or Smalltalk by GnuVince · · Score: 1

    Why do people keep using C#, Java and C++ despite the fact that both Lisp and Smalltalk are simpler, more powerful and have better programming environments? People hate to change, so they stick with what they know. Also, more support might be another reason; MySQL is a lot more popular than PostgreSQL, it's easier to find a host that supports it, a buddy that knows it, etc.

    1. Re:Same reasons as Lisp or Smalltalk by Dionysus · · Score: 1

      Why do people keep using C#, Java and C++ despite the fact that both Lisp and Smalltalk are simpler, more powerful and have better programming environments? People hate to change, so they stick with what they know.

      Don't Lisp and Smalltalk predate C#, Java and C++?

      --
      Je ne parle pas francais.
  65. Analytic functions? by C_Lo_Fresh · · Score: 1

    Where are the analytic functions??

  66. Buyer Confidence by zbyte64 · · Score: 1

    I know for our workplace one of the reasons we don't recommend PostgreSQL is because of all the FUD. It is sad because PostgreSQL is an amazing product.

  67. An easy answer to this..... by ip_freely_2000 · · Score: 1

    Postgres did not have a native Win32 version.

    You could use Cygwin, but that made it a pain to install, so no one bothered. Then they found MySQL. It 'just worked' and they started telling their friends. People aren't going to switch unless it's worth the pain.

    Hint: For 99.99999% of people using a database, it will never be worth the pain.

  68. Postgres slower! by Anonymous Coward · · Score: 0

    Postgres has a better license than MySql. However, I didn't like it
    for a few reasons:

    * installer won't work on FAT disk volumes on Win32 (requires NTFS)
    * SELECT performance much lower than MySql. Most websites use SELECT than any other command
    * MySql has better documentation, is very easy to install and use.

    I don't like MySql's license though...

  69. "The best songs are always on the B side of the re by Anonymous Coward · · Score: 0

    "The best songs are always on the B side of the record"

    Simplicity appeals to the masses,
    Functionality appeals to those who need it.

  70. #6 Almost nobody cares it is on your resume! by Anonymous Coward · · Score: 0

    I am all for using it, but will my employer want to use it? Oracle, Microsoft and DB2 are all free (with lots of crappy limitations) now so why bother using postgre unless you want to save money. Most companies seem more intent on staying in ruts and not changing anything. I worked for a non-profit, they were replacing the crystal reports server with custom web applications (charging others to use) and getting rid of the crystal entriprise server (and license). I had to get the darn thing working on a 9i database rather than the native 10g. I had to laugh when the DBA messed up and deleted 2 months worth or work with a few delete table .... the whole application is stored in the database weird shite.

    1. Re:#6 Almost nobody cares it is on your resume! by Anonymous Coward · · Score: 0

      > I am all for using it, but will my employer want to use it?

      The answer to that question depends largely upon whether you are empowered with the responsibility of making database selection decisions for your employer. If that is not the case, why worry about it? Do you *want* to be in a position with this sort of decision making authority? Why aren't you?

  71. postgresql bites because by joelpt · · Score: 1

    Table names (and perhaps even column names) have to be in ALL CAPS. Sorry can't name a table PersonContact, you must use PERSON_CONTACT.

    Guess it's just my aesthetic pedanticness but I do not like ALL_CAPS except in my C constants. It also makes any kind of automated conversion from another DB that much more annoying.

    A bad design decision that's never really been fixed. I believe it is possible to get UpperLowerCase table names in Postgres, but you have to jump through so many error-prone hoops, it's not worth the trouble.

    1. Re:postgresql bites because by tgl · · Score: 1

      Apparently you've never actually *USED* Postgres, because if you had, you'd know it prefers all-lower-case. You also seem to be quite unaware of the SQL standard requirements in this area. Mixed-case table names are not easy in any DB that comes close to honoring the letter of the SQL spec --- so claiming that this is a problem for conversion just shows that you don't know what you're talking about.

    2. Re:postgresql bites because by fingusernames · · Score: 2, Informative

      Have you ever used it? Ever? The following (edited) transcript is from an old 7.4 installation.

      foo=# create table JoelPtIsAnIdiot ( idiot varchar );
      foo=# \dt
        public | joelptisanidiot | table | foo

      foo=# create table "JoelPtIsAnIdiot" ( idiot varchar );
      foo=# \dt
        public | JoelPtIsAnIdiot | table | foo
        public | joelptisanidiot | table | foo

      Lessons: PostgreSQL (or rather psql I am sure) defaults to wrapping to lower case. It preserves case with quotes. And its namespace is case sensitive, hence the two tables existing simultaneously. No hideous ALL_UPPER_CASE identifiers, and no terrifying hoops unless one fears quotes.

      Larry

    3. Re:postgresql bites because by joelpt · · Score: 1

      Hmm, my mistake. Perhaps I was hallucinating.

      If so, it wasn't a very pleasant hallucination.

    4. Re:postgresql bites because by joelpt · · Score: 1

      Out of curiosity, what does the SQL spec say about mixed case / case sensitivity on db objects?

      Ok I'll RTFS if you insist but you already seem to know..

  72. Reason number 6 by porkThreeWays · · Score: 4, Insightful

    Reason number 6 is the damnned Postgres zealots that feel the need to bash everyone else's database rather than promote their own. I use MySQL and Postgres on a regular basis. I'm proficient in both. And to the dismay of Postgres users everywhere, there are times which *gasp* MySQL is better suited. "Oh, you are probably a lame programmer and use it for trivial web stuff". Not true! I look at a project and each databases strenths. It has nothing to do with the seriousness of an application. When I was writing VoIP billing software, we'd sometimes see 4-5 million CDR's (call detail records) in a single day. Our first iteration actually used Postgres and choked on that many records. We had to make some compromises with MySQL. We had an additional field for Unix epoch time because of MySQL's lacking (at the time) date and time math. There was a tradeoff. It was deemed that having billing invoices generate in 5 seconds (as opposed to 5 minutes) was more important than programmer time. Welcome to the real world. Another project I had was for writing worker punchcard system. Six months of records only topped out at 50,000 records and we decided Postgres' procedural languages would be a great help to us. Lose the zealots and attitude and maybe you'll have a greater user base.

    --
    If an officer ever threatens to taze you, say you have a pacemaker.
    1. Re:Reason number 6 by jadavis · · Score: 5, Informative

      My reply was apt. The parent said that there was little reason to switch, I gave some reasons. I stated a fact (that MySQL thinks Feb 31st is a date), which is not bashing. It looks like bashing because it makes MySQL look bad.

      I don't have a problem with other databases. The only database that, to me, stands out as particularly bad is MySQL. That's because their marketing deceives many people.

      Someone may see:
      1. "MySQL supports strict SQL compliance mode"
      2. "MySQL is easy to use from the default install"
      3. "MySQL is screaming fast"
      4. "MySQL has transactions"
      5. "MySQL has more applications written for it than PostgreSQL"

      But...
      #1 conflicts with #2 and #5 because strict is off by default, and there are fewer "MySQL Strict Mode" apps than PostgreSQL apps.
      #2 conflicts with #4 because the default install and CREATE TABLE create MyISAM tables which do not support transactions.
      #3 conflicts with #4 because the "screaming fast" reputation is from MyISAM tables. InnoDB is somewhat similar in performance to PostgreSQL.

      Everything about MySQL pigeonholes you into a subset of the features that MySQL AB advertises, and then makes it as difficult as possible to roam between those features. In MySQL, if you need to change the type of a table, for instance if you want transactions, you can't do that without disrupting running applications. You need to pause and resume all the applications accessing that table.

      Compare to PostgreSQL, if you need to, for example, change the disk that a table is stored on (of course PostgreSQL doesn't have different table types), you can make all the necessary DDL modifications in a transaction-safe way, and the application will never know the difference.

      I know MySQL has uses. I use it (sparingly). Slashdot uses it, for good reasons I'm sure. But "has it's uses" does not mean "immune from criticism".

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    2. 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.

    3. Re:Reason number 6 by Decibel · · Score: 1

      Actually, the PostgreSQL community is happy to point users at other databases, especially SQLite. They generally don't point folks to Firebird only because it's relatively recent on the OSS scene.

      The community is reluctant to point users at MySQL however, because it's asking for trouble to do so unless the user already has a solid grasp of how databases should work and can therefor recognize all the shortcommings in MySQL and come up with work-arounds.

    4. Re:Reason number 6 by The+AtomicPunk · · Score: 1

      lol - yeah, 'cause we don't see zealots for both sides of any argument here on slashdot.

      Zealots allowed on slashdot:

      * PostgreSQL
      * VI
      * Linux

      Zealots excluded via special filters:

      * MySQL
      * Emacs
      * Windows

    5. Re:Reason number 6 by Jesus_666 · · Score: 1

      What's especially annoying about MySQL is that some of the more advanced functionality is in MaxDB, which is a separate product (although it doesn't seem to be more than a more professional MySQL). Things like UNION would be handy but aren't supported by MySQL.

      However it's quite unlikely to ever see Postgres on a non-commercial site even if the admins have root access and could set it up. Because MySQL is the default and it's good enough. If it doesn't support UNION you can just make multiple queries instead.
      Bleh.

      I do admit that I privately mainly use MySQL, but then again most of the tables I make hold twenty entries and are only ever accessed via "SELECT * FROM foo;"...

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
    6. Re:Reason number 6 by BandwidthHog · · Score: 1

      I can't count the number of time I and my customers have lost data with MySQL.

      Don’t worry. I hear they plan to address this shortcoming by improving MySQL’s aggregate query handling in a future release.

      --

      Quantum materiae materietur marmota monax si marmota monax materiam possit materiari?
    7. Re:Reason number 6 by consumer · · Score: 1

      I can't imagine why you would change the type of a table in a running application.

      There are some uses for multiple table types. One convenient use is for data warehousing. You can make the read-only data warehouse use MyISAM tables, which have low overhead, and keep your main database in ACID-compliant InnoDB tables.

    8. Re:Reason number 6 by Bloke+down+the+pub · · Score: 0
      although it doesn't seem to be more than a more professional MySQL
      Well looks can be deceptive. Max DB was called SAP DB. It's descended from an old German mainframe DBMS called Adabas.
      --
      It's true I tell you, feller at work's next door neighbour read it in the paper.
    9. Re:Reason number 6 by aevans · · Score: 1

      When MySQL thought February 31 was a date, Postgres thought data was something you chewed up and swallowed, and if you were lucky, it might come out the other end as a pile of shit, after rebooting because it locked up the whole machine.

      writing an validate_date() function before submitting a query was alot easier than starting over from scratch with a fully ACID compliant database that was most reliable when it wouldn't accept any connections because it had exhausted all system resources, because once you got your data in, you couldn't count on it coming out right.

      That's why Postgres doesn't have the uptake, because it has a bad reputation. And while they may have beaten most of the bugs into submission, too many people remember getting burned and don't want to wait for the next subtle catastropic glitch.

      Something that starts simple and works right from the start, adding features slowly is better than something complex that aims for "correctness" but works wrong until the bugs are fixed.

    10. Re:Reason number 6 by aevans · · Score: 1

      "garbage in-garbage out" is a pretty good rule of thumb. If you enter a bogus date into your database, expect a bogus date to come out.

    11. Re:Reason number 6 by h4ck7h3p14n37 · · Score: 1
      When I was writing VoIP billing software, we'd sometimes see 4-5 million CDR's (call detail records) in a single day. Our first iteration actually used Postgres and choked on that many records.

      Without seeing your actual code and database configuration, I can't tell, but I tend to believe you either structured the query poorly or didn't configure the database for that sort of load. PostgreSQL should easily be able to handle that many records.

      Perhaps it was a problem with your redo log or tablespace setup? If the system needs to keep rotating logs or adding extents to a tablespace, then that's going to impact your performance. Also, keeping the logs and tablespaces on separate disk spindles can help immensely.

    12. Re:Reason number 6 by zardo · · Score: 1
      It's always bothered me how slow postgres is sometimes. It doesn't take anywhere near a million records to see speeds slow to a crawl.

      MySQL, on the other hand, can be optimized to be faster than anything else out there. I've heard Oracle is faster in certain circumstances, but I don't know enough about oracle. Check out all the ways to optimize MySQL queries like fixed length rows and indexes, natural sort order, table and index defragmenting, hash lookups, mysql 5 has an index merge algorithm which was always a sore spot in the past, but now puts it up there with the rest of the big time databases (I'll include Postgres in that category for the sake of argument).

      Personally I see less and less reason to use ANYTHING but MySQL these days. It's only a matter of time before MySQL is king. I don't really pay any attention to the license restrictions. As long as I have the source code on my computer I am happy.

  73. Most importantly... by Anonymous Coward · · Score: 0

    The top reason is the exact same reason *most* people use MS Windows instead of Linux. There is more 3rd-party software that runs on or even requires MySQL and that is more compelling than the fact that PostgreSQL is better in most other aspects.

    Faster -------------------- More features

    SQLite ----- MySQL ----- PostgreSQL

    Need fastest speed? Use SQLite 3.3.4 or something similar

    Need most RDBMS or ORDBMS features? Use PostgreSQL 8.1.3

    Need compatibility with most packages? Use MySQL 4.x

  74. why dont they add this? by illuminatedwax · · Score: 0

    insert into table set field=42;
    ERROR: parser: parse error at or near "set" at character

    When I have a table with a lot of columns, I don't feel like counting fields. This allows far too many bugs into queries (oops you got rid of a value on accident! oops you transposed two on accident...etc...). This problem is mostly taken care of by modern DB packages, but still...

    (Disclaimer: I have but the smallest experience with Postgres.)

    --
    Did you ever notice that *nix doesn't even cover Linux?
    1. Re:why dont they add this? by mw · · Score: 1

      Why don't you write:
      insert into tablename ( field) values (42);
      This is a good practise anyway, never ever write queries like
      insert into tablename values (42); -- You will be in trouble sooner or later.

    2. Re:why dont they add this? by illuminatedwax · · Score: 1

      Because when I use a scripting language without a nice implementation like Perl or PHP i have: insert into tablename (field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11) values ('hello', 'hi'.$complicated_stuff'... ) And it all starts to look like line noise, and if i insert or remove a row or column, it can be confusing to have to separate the variable names and variable values like that. Another thing that always got me about SQL: Why is the UPDATE syntax TOTALLY DIFFERENT from the INSERT syntax?

      --
      Did you ever notice that *nix doesn't even cover Linux?
  75. No support in other OSS products by pdontthink · · Score: 1

    I don't find support for PostgreSQL in all the other OSS products I use. Last time I checked, I couldn't integrate a PostgreSQL database with a semi-complex DB-backed mail system based on Postfix/Courier-IMAP/SpamAssassin/Amavis/Courier-M aildrop/etc. And it is odd to me that if PostgreSQL is becoming more popular in the OSS developer world that there are not more PostgreSQL integration options with these kinds of tools.

    For me, that's always been the barrier, even though, having come from the Oracle world before I sat down with MySQL (and at the time thought it was a piece of $&#!@), PostgreSQL seemed technically superior. However, as I wait around for better OSS support for PostgreSQL, MySQL has made a lot of strides, especially with the InnoDB storage engine, in terms of more complex functionalities (transactions/nested queries/etc) and more enterprise-like reliability and features (clustering, replication, etc).... so, while MySQL may not be Oracle yet, I am finding fewer and fewer reasons why I will need to change, even if PostgreSQL finally becomes more widely integrated into other OSS apps.

    (Maybe the subject should start with "Not enough")

    1. Re:No support in other OSS products by bunco · · Score: 1

      Hrm.. most if not all of the software you mention supports PostgreSQL. If I were to take a bet on _which_ bits don't, it would be Courier and SASL (I know you didn't list it but it's implied). All the milter bits are in perl and work just fine with PostgreSQL.

      I tend to trigger/cron a hash dump of local recipients instead of plugging Postfix straight into MySQL. It simply does not play nice. The hash files are much faster. Once local delivery is confirmed, SQL lookups are fine.

      Check out the mail build instructions on my wiki for details of my most recent deployment. IIRC, there's no step where I had to use MySQL over PostgreSQL.

  76. yeah, i don't know which is weirder by subtropolis · · Score: 1
    the gp, who (apparently, with a straight face) acknowledges that the frickin' name is behind his apprehension of it, or all the others who (apparently, with straight faces) replied about the name and completely disregarded that 'tard excuse. Or that it somehow got modded "insightful" (wtf?).

    But whatever - let 'em remain mystified and befuddled if it keeps the signal-to-noise at a convenient level.

    --
    "Our interests are to see if we can't scale it up to something more exciting," he said.
  77. A few more reasons by jdoeii · · Score: 4, Insightful
    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;

    Vacuum kills performance. Some uses maybe OK with loosing 50% or more while VACUUM runs. In some uses it's unacceptable. In our case (a lot of inserts with majority of selects going for the newly inserted records) performance degrades within 6-8 hours after running VACUUM & friends. VACUUM takes ~20 minutes to complete which is completely unacceptable during the day and we can't delay it till night.

    No, AUTOVACUUM is not an answer because it kicks in unexpectedly and makes random queries run unexpectedly slow at unexpected times. Usual VACUUM makes all queries run slow at predetermined time. Not a very appealing choice.

    More reasons:
    • No memory management. For example, here is 1GB database on a dedicated host with 2GB of RAM. PG should suck the while DB into RAM and run selects from there, right? Wrong. PG is extremely frugal about memory management. It caches the last few results, but otherwise goes to disk for data even if there is anough RAM to cache the whole DB. The PG developers keep saying that it's the job for the OS. Now, which OS should we use then? FreeBSD, Linux, Windows? Which one?
    • Forever broken COUNT(). Although MIN & MAX were fixed in the latest release, COUNT() is still broken and there is no fixing in sight. Yes, I beieve 10 seconds execution time for count() on a table with just a few million records qualifies it as a broken feature.
    • Of course, the query optimizer/planner can be improved, but that's understandable and can be applied to pretty much any DBMS
    1. Re:A few more reasons by mw · · Score: 3, Informative

      "Forever broken COUNT(). Although MIN & MAX were fixed in the latest release, COUNT() is still broken and there is no fixing in sight. Yes, I beieve 10 seconds execution time for count() on a table with just a few million records qualifies it as a broken feature."

      You know that count() does full table scans in MySQL too when you use InnoDB? And for MyISAM the result is simply wrong while updating.

      "No memory management. For example, here is 1GB database on a dedicated host with 2GB of RAM. PG should suck the while DB into RAM and run selects from there, right? Wrong. PG is extremely frugal about memory management. It caches the last few results, but otherwise goes to disk for data even if there is anough RAM to cache the whole DB. The PG developers keep saying that it's the job for the OS. Now, which OS should we use then? FreeBSD, Linux, Windows? Which one?"

      That's right. Postgres requires that you specify how much memory it should use. As for every complex program, it requires some skill.

    2. Re:A few more reasons by swilver · · Score: 1
      No memory management. For example, here is 1GB database on a dedicated host with 2GB of RAM. PG should suck the while DB into RAM and run selects from there, right?
      That's probably what is happening, however, memory occupied by your OS file caching mechanism doesn't count towards the amount of memory used.
      It caches the last few results, but otherwise goes to disk for data even if there is anough RAM to cache the whole DB. The PG developers keep saying that it's the job for the OS. Now, which OS should we use then? FreeBSD, Linux, Windows? Which one?
      They are right in my opinion, and any of the above mentioned OSes will do. They all are quite adept at file caching. PostgreSQL accesses a table file, OS reads it and caches it. PostgreSQL accesses table file again, OS serves file from cache. Where exactly lies the problem?

      Just make sure you have enough FREE memory so the OS can use that to cache all the files PostgreSQL frequently uses.

    3. Re:A few more reasons by jdoeii · · Score: 1
      You know that count() does full table scans in MySQL too when you use InnoDB? And for MyISAM the result is simply wrong while updating.

      What's you point? It's like me saying "Hyundai is not the greatest car" and you are replying with "Yugo is even worse". So what? There are other real DBMS's that don't have this problem. Why compare to MySQL? PGSQL positions itself as a "real DBMS" as opposed to "toy MySQL". Compare to Oracle, DB2 or Sybase.

      That's right. Postgres requires that you specify how much memory it should use. As for every complex program, it requires some skill.

      Ahm. Well, aaa. I don't even know how to start. First of all, it doen't let you use all available memory. There is no such configuration option. And don't point to shared buffers. That's a different thing. Second, complexity is not an excuse for poor functionality. Oracle or MSSQL are no less complex.

    4. Re:A few more reasons by jdoeii · · Score: 1
      They are right in my opinion, and any of the above mentioned OSes will do. They all are quite adept at file caching. PostgreSQL accesses a table file, OS reads it and caches it. PostgreSQL accesses table file again, OS serves file from cache. Where exactly lies the problem?

      The problem lies in my inability to use the product. Say DBMS Abc on a certain box runs fine. DBMS Cba on the same box has performance problems because the cache does not work as I would expect. The Cba's developers keep saying it's not a bug, but a feature. The cache works right, just as designed. OK, it's a fine feature then, but it makes their product unuseable *for me*. Maybe this exact feature makes others happy, but I can't use Cba because of it. That's all.

      This thread is "Top 5 Reasons People Dismiss PostgreSQL". These are my own purely subjective reasons why *I* dismiss it. I tried very hard to make it work for us. The team spent probably over 2 man-months on it.

    5. Re:A few more reasons by mw · · Score: 1

      In fact, the shared_buffer setting IS EXACTLY for this. In Postgres you have:
      effective_cache_size => a hint for the planner how much memory is remaining. Postgres does not allocate this memory, it's just used in the calculations of the planer. If you give postgres enough buffers here to cache your database in memory, it will happily do so. However, UPDATES/DELETES will still require to access the disks.

      shared_buffers => Shared Memory Segment where commonly used page tables are stored for later reuse.

      work_mem => Memory Postgres will allocate PER database backend for sorting and other purposes. This is not shared between backends.

      In fact, this data is from a postgres database with 3,8GB of used space, 300 relations and 600 indices:
      * shared_buffers is set to 200MB
      * work_mem is set to 4MB
      * effective_cache_size is set to 1GB

      This way, the system gets a cache hit ratio of 99.6%
      The DB is up around 120 days on this system, 16901 GB (~17TB) where fetched from disk, and around 1700TB was fetched from RAM. So I guess this is a pretty good hit rate.

      And stating that InnoDB has to do exactly the same here is for a good reason, InnoDB uses MVVC too. And MVVC requires to have full table scans. BTW, oracle uses full table scans too, at least it did until 3 years when I stopped using Oracle.

    6. Re:A few more reasons by nconway · · Score: 1
      Vacuum kills performance. Some uses maybe OK with loosing 50% or more while VACUUM runs.


      What version of PG were you using? Recent versions should be fairly good about minimizing the effect of VACUUM on concurrent operations. There are many people who run VACUUM regularly during production operation without degrading their overall performance too badly -- look into vacuum delay configuration, among other things.

      In our case (a lot of inserts with majority of selects going for the newly inserted records) performance degrades within 6-8 hours after running VACUUM & friends.


      Well, INSERT and SELECT will not generate expired tuples (except if the INSERTing transaction aborts), so if your workload is mostly INSERT / SELECT I wouldn't expect you to need to VACUUM very often. Did you determine what the cause of this alleged performance decrease was?

      It caches the last few results, but otherwise goes to disk for data even if there is anough RAM to cache the whole DB.


      Nonsense, PG does not cache "the last few results." If anything, the shared buffer cache is organized around caching frequently used pages, not results.

      The PG developers keep saying that it's the job for the OS. Now, which OS should we use then? FreeBSD, Linux, Windows? Which one?


      Why is letting the OS handle most of the I/O caching unacceptable for you?

      As for which OS you should use, that's really up to you, Postgres works well on a lot of platforms. I'd personally wouldn't run an important DBMS on Windows, though.

      Forever broken COUNT(). Although MIN & MAX were fixed in the latest release, COUNT() is still broken and there is no fixing in sight. Yes, I beieve 10 seconds execution time for count() on a table with just a few million records qualifies it as a broken feature.


      Well, if it's "broken" it seems hard to envision how to fix it. What would you suggest? Due to MVCC, you can't just maintain a single count of the tuples in the table (or rather Postgres does maintain such a count, but it is merely an approximation for planning purposes) -- different concurrent clients will see different snapshots of the table. You could potentially optimize COUNT(*) by keeping multiple counts for different clients etc, but that would impose significant overhead for all clients, most of whom aren't interested in COUNT(*).

      And do people really use SELECT COUNT(*) FROM large_table; regularly in realistic applications? Not in my experience...
    7. Re:A few more reasons by nconway · · Score: 1
      work_mem => Memory Postgres will allocate PER database backend for sorting and other purposes. This is not shared between backends.


      Nitpick: work_mem is actually the per-operation limit on temporary memory usage. If a single backend is doing several sorts simultaneously (which is quite possible with reasonably complex queries), it can consume several times work_mem.
    8. Re:A few more reasons by jdoeii · · Score: 1

      I think I had this kind of discussion with you before.

      What version of PG were you using? Recent versions should be fairly good about minimizing the effect of VACUUM on concurrent operations.

      The last one we tested was some 8.1 beta on FreeBSD 6. The queries ran anywhere from 50% to 5 times longer with running vacuum. I am sure there are some uses when people won't notice such slowing down. Our case is not one of them.

      Did you determine what the cause of this alleged performance decrease was?

      I love the "alleged". Denial won't help PgSQL gain market share.

      This is market data. The records are time stamped and 99% of selects are constrained by the time stamp "ts>'...'". My guess is that inserts skew timestap index statistics and it becomes useless.

      If anything, the shared buffer cache is organized around caching frequently used pages, not results.

      Fine, you know better where the problem lies. Take a box, instal Windoze, MSSQL Server 2000, run queries. Observe there is no problem. Reformat, instal FreeBSD and PgSQL 8.1. Same DB, same queries, fresh indexes. The first load of daily bars takes maybe 1.5 sec. Subsequent queries for the daily data take less than 50 ms. Fine. Now load minute bars, then go for the daily again. It takes the same 1.5 seconds again. WTF? If it's not the cache problem then what is it?

      I don't want to use mssql. I would love to dump it in favor of pgsql. We had been testing nearly every release of pgsql since the days of 6.4. No luck so far.

      OS you should use, that's really up to you, Postgres works well on a lot of platforms

      I know that. My real question was: since pgsql relies on OS caching, which one does a proper job of caching for pgsql?

      Well, if it's "broken" it seems hard to envision how to fix it. What would you suggest?

      Well, I am a user, not a DB developer. I am sure something can be done. Like keep a single "big" counter per table, read in into transaction on start, calculate difference in the transaction. When the transaction ends update the "big" counter. It took only 7 years of constant nagging, but pg developers did find a way to fix min & max. There is simply no excuse to have such often used feature broken for a DBMS which positions itself for enterprise.

    9. Re:A few more reasons by Anonymous Coward · · Score: 0

      "My guess is that inserts skew timestap index statistics and it becomes useless."

      Tried using only ANALYZE instead of VACUUM in order to unskew the timestamp index statistics after a (sufficiently large) bunch of inserts? ANALYZE typically runs (a lot) faster than VACUUM, since it normally samples a subset of the records rather than visits them all.

      Just a tiny little suggestion which might (or not) have any use for you in your situation.

    10. Re:A few more reasons by LightningBolt! · · Score: 1

      The records are time stamped and 99% of selects are constrained by the time stamp "ts>'...'". My guess is that inserts skew timestap index statistics and it becomes useless.

      Be careful with timestamp comparisons in postgres. I'm not saying this is definitely your problem, but there are a number of scenarios where your index might be ignored. For instance, comparing a timestamp column to a dynamic function, like some offset from now(), requires the function be evaluated for each row, thus requiring a full table scan. Also, there appear to be some typecasting issues in comparison that boil down to the same thing. I believe you can end up with a full table scan if you compare "timestamp with timezone" against "timestamp" types, or other types that autocast. Use EXPLAIN to see which queries use the index and which don't. Keep in mind that the Postgres query optimizer is dynamic, so on a table with few rows, it may surprise you and do a full table scan.

      --
      Old people fall. Young people spring. Rich people summer and winter.
    11. Re:A few more reasons by nconway · · Score: 1
      I love the "alleged". Denial won't help PgSQL gain market share.


      My apologies; "alleged" was the wrong word. My intent was just to suggest that, given the appropriate tuning, VACUUM can have a minimal effect on the performance of concurrent queries. That is, the basic technology is already in place, but it can take a fair bit of Postgres knowledge and manual tweaking to get something that works in production. This could definitely be improved, I agree.

      This is market data. The records are time stamped and 99% of selects are constrained by the time stamp "ts>'...'". My guess is that inserts skew timestap index statistics and it becomes useless.


      FYI, this sounds like the sort of situation in which table partitioning ("constraint exclusion", new in 8.1) might be useful.

      since pgsql relies on OS caching, which one does a proper job of caching for pgsql?


      AFAIK there is no unanimous recommendation on which OS to use with PG (or which filesystem, for that matter). Solaris is generally seen as slow (although that is being worked on), and I wouldn't personally consider Windows, but FreeBSD, Linux et al. should all be suitable. That is, I wouldn't expect to see the problems you encountered magically resolved by switching OSs.

      I am sure something can be done. Like keep a single "big" counter per table, read in into transaction on start, calculate difference in the transaction. When the transaction ends update the "big" counter.


      That would impose a significant amount of overhead for all transactions, whereas only a tiny fraction of queries actually need count(*) on a large table with no WHERE clause.

      It took only 7 years of constant nagging, but pg developers did find a way to fix min & max. There is simply no excuse to have such often used feature broken for a DBMS which positions itself for enterprise.


      Well, I certainly have no objection in principle to optimizing count(*) with no WHERE clause, and the topic has been discussed extensively on pgsql-hackers. However, I've yet to see anyone come up with a feasible way to implement it: optimizing count(*) with no WHERE clause is hard in a system that uses MVCC.
  78. Why I choose MySQL... by OneFix · · Score: 1

    The biggest reason I choose MySQL over anything else is speed...for the simple stuff...which is most web based apps...it's the fastest option...plus there's room to grow if you need to...

    Ease of replication...MySQL is real easy to set up when it comes to replication, not only is it easy, but it's full featured...

    Availability...it's available almost everywhere you go (most default installations of Linux and a good number of proprietary unicies...binary packages are available from MySQL for AIX, Solaris, MacOS, BSD, HP-UX, and Novell)...there are many software vendors that support MySQL as a backend database...not so many that support PostgreSQL...this is all handy when I'm trying to get a new application up and running...it's gotten so I don't even have to think about wetting up a new MySQL installation...

    I would like to add that I run 2 PostgreSQL servers...but I have found it to be overly cumbersome for the majority of my applications.

    1. Re:Why I choose MySQL... by C_Kode · · Score: 1

      You forgot to list SCO Unixware as a OS that MySQL runs on! ;)

      I would like to add that I run 2 PostgreSQL servers...but I have found it to be overly cumbersome for the majority of my applications.

      Hmm, maybe it's learning curve is to cumbersome as it isn't quite the Plug-and-Play database MySQL is. Also as to your speed comment. Postgres is quite fast even compared to MySQL. (not faster but very fast)

    2. Re:Why I choose MySQL... by OneFix · · Score: 1

      I don't think it's learning curve...it's a combination of bloat and poor documentation (very few references available) that make it cumbersome...

    3. Re:Why I choose MySQL... by wieck · · Score: 2, Insightful

      Ease of replication...MySQL is real easy to set up when it comes to replication, not only is it easy, but it's full featured...

      So MySQL replication does support a master to multiple slave setup where you can failover to one slave and the new master inherits all other slaves without the requirement of resynchronization. And when you later repair the original master, you can fail-back without significant downtime, right?

      I might have not looked at it for a long time, but last time I looked it only allowed to promote a slave to a single standalone database ... that's not a master in my book (it misses any slave). Also MySQL's replication being still statement based, some of the glorious new enterprise features like stored procedures and triggers simply screw up your full featured replication.

      I do admit, the Slony-I replication system has a lot of shortcomings, most of which are due to the original design goal of "being able to install on an existing, old Postgres version and use it to upgrade to newer ones". But that mostly affected the implementation, not the initial design of features.

      Jan

      --
      It takes a real man to ride a scooter ... what are you compensating for?
  79. I'll dump MySQL when MediaWiki does by theurge14 · · Score: 1

    Until then, I've got little reason to double up on SQL server software.

  80. Avoidance through Ignorance by GISGEOLOGYGEEK · · Score: 3, Informative

    Most people avoid Postgres because they are totally ignorant and are going with the popular flow no matter how ugly it is. They've jumped on the MySQL bandwagon with no regard for what they are missing.

    Heck do you want ignorance? ... I know one dumbass who spent $8000 for SQLServer based on a lie from the Microsoft salesman who told the dumbass that Postgres can not in any way handle Triggers! The fool couldn't be bothered to ask me or even to spend 2 minutes at postgres.org. Then there's other people who think your shop has to have the big name software or else you won't have any credibility with your clients. Hmmm ... have smart clients who get from you a cost effective and powerful product at a good price ... or have stupid clients who's money passes from you to the Database salesmen, leaving less for you. Which do you prefer?

    I haven't seen much about the windows world in this thread ... so here's my 2cents.

    I am not proficient in Linux. It took me two weeks of spare time to get postgres with the PostGIS spatial engine up and running properly. The pathetic typos in the configuration scripts, the dumbass instructions that contradicted the contents of the files they described ... it was a nightmare, no wonder people didnt use it.

    Then, about 1.5 years ago, a Windows installer came out for Postgres and PostGIS and it all changed.

    Literally 5 minutes later I was adding data to my spatial database and learning how to use the powerful spatial query functions.

    Sure MySQL does have some brutally weak spatial abilities, but its a joke compared to what PostGIS can do.

    Suddenly Windows users got to make the equivalent of an ArcSDE backend for their UMN MapServer websites, instead of spending $50,000 on ArcIMS with Oracle / ArcSDE. Heck I can build a few such sites for less than what the software costs to use the ESRI / Oracle crap.

    The moral of my story and main reason for people avoiding the current, powerful, fast, spatially enabled postgresql is that people are stupid. Disagree? ... remember that you are the people.

    --
    George Bush + Linux = "I will not let information get in the way of the fight against Windows"
    1. Re:Avoidance through Ignorance by ensignyu · · Score: 3, Insightful

      A small change:

      "Most people avoid Linux because they are totally ignorant and are going with the popular flow no matter how ugly it is. They've jumped on the Windows bandwagon with no regard for what they are missing."

      I think that you, as someone not proficient in Linux, should at least appreciate that some things are a pain in the ass to learn, even if there are considerable benefits. Don't be so quick to judge people who haven't adopted your favorite database package or OS or seafood dish.

    2. Re:Avoidance through Ignorance by asuffield · · Score: 1

      I know one dumbass who spent $8000 for SQLServer based on a lie from the Microsoft salesman who told the dumbass that Postgres can not in any way handle Triggers!

      That's fraud. I hope you sued Microsoft. Should have been a simple case that paid out large damages plus your legal costs.

  81. Re:Love the PSQL interface - ##%&@ the GUIs I by pba123 · · Score: 1

    Yes it was a pain that Mandriva removed postgresql from the cd-sets, but the cure is fairly simple (at least as a silver member). As root: urpmi.addmedia "club.club_x86-32_2006" https://dl.mandriva.com/rpm/club/2006.0/i586/ with hdlist.cz urpmi postgresql-server Should do the trick.

  82. Seamless? by Schraegstrichpunkt · · Score: 1

    You've obviously never had a close look at the seams.

  83. I've used both MySQL and Postgres and I prefer PG by Serveert · · Score: 1

    I have seen mysql pushed to its limits and it worked. Mysql is funny, we tweaked things a lot, found out it doesnt like to join more than 5 or so tables, beyond that it doesnt want to use indexes. This may have changed in recent versions.

    BUT, when dealing with mysql, I cursed up a storm and became a violent man figuring out its little quirks. With postgres I'm very calm, the universe makes sense and I get things done without wanting to take an AK-47 and kill everything in sight.

    One issue I have with postgres is its partitioning support. Yes that's great that they added it but what we need is a global index, THEN we're talking oracle-quality database. It's mostly there, but that added step would be absolutely huge.

    I'm going to try slony soon so I hope to hell that scales.

    --
    2 years and no mod points. Join reddit. Because openness is good.
  84. missing alternate indexes by gullevek · · Score: 1

    missing alternate indexes, no optimization run can bring down both DBs to the knees. After a lot of inserts, to bring the indexes up to date and have them actually usable you need to run vacuum for postgres. I haven't used mysql on such huge data, but from even simple 100.000 - 100.000 table joins I know that with some good alternate indexes you can speed up things enormously.

    --
    "Freiheit ist immer auch die Freiheit des Andersdenkenden" - Rosa Luxemburg, 1871 - 1919
    1. Re:missing alternate indexes by ErikZ · · Score: 1


      I had heard that they fixed the problems with vacuum? Is this still an issue?

      --
      Democrats or Republicans. They are both taking us to the same place and they are not afraid of us anymore.
    2. Re:missing alternate indexes by jsight · · Score: 1

      Depends on what you mean by "still an issue". :)

      Virtually every db needs some sort of index maintenance from time to time. The issue with Postgres is that it was a little harder and heavier weight than it should have been.

      These days about 99% of Postgres installations can get by with the autovacuum daemon in the database, which is a cinch.

    3. Re:missing alternate indexes by RuneB · · Score: 2, Informative
      It is my understanding that you shouldn't need to run VACUUM very often if you are only doing INSERTs, just once every billion transactions or so.

      Perhaps you are thinking of the ANALYZE command (which can be done as part of VACUUM), which updates the optimizer's statistics for a table?

      --
      dtach - A tiny program that emulates the detach feat
    4. Re:missing alternate indexes by gullevek · · Score: 1

      Well I never ever had any kind of issue with vacuum. On none of my live databases. I do not use auto-vacuum as it is only from 8.1 and I do not have 8.1 in production

      --
      "Freiheit ist immer auch die Freiheit des Andersdenkenden" - Rosa Luxemburg, 1871 - 1919
    5. Re:missing alternate indexes by gullevek · · Score: 1

      I run vacuum analyze every night, to keep the stats, planner, etc up to date. I run vacuum full once every two weeks, because I rarely delete data or do big updates.

      Every six months the data gets a big roll around, after that I run a full vacuum of course. So I never saw a big slow down, as I am not using full vacuum all the time

      --
      "Freiheit ist immer auch die Freiheit des Andersdenkenden" - Rosa Luxemburg, 1871 - 1919
  85. Multi-Value Concurrency Control by mbirk · · Score: 2, Informative

    One of the great features of Postresql is Multi-Value Concurrency Control (MVCC). In a nutshell, readers never block: "querying a database each transaction sees a snapshot of data (a database version) as it was some time ago."

    If you have a single, long-running write transaction (e.g. a batch process), and many short-running read transactions (e.g. serving web requests), this works very well. When the batch process completes, readers "atomically" switch to the newly-committed version. This (drastically) simplifies the batch process, since you don't have to worry about readers blocking or seeing inconsistent state. (Things get more complex in the many-writers scenario, however.)

    I don't think MySQL has this feature. (Please correct me if I am wrong.)

    1. Re:Multi-Value Concurrency Control by mbirk · · Score: 1

      Sorry, brain fart: "Multi-Version Concurrency Control."

    2. Re:Multi-Value Concurrency Control by mbirk · · Score: 1

      "I don't think MySQL has this feature. (Please correct me if I am wrong.)"

      Just correcting my own FUD here. Evidently MySQL does have MVCC, via InnoDB.

      See folks, you can't go wrong either way! :-)

  86. Webdevelopers should use: MySQL by PietjeJantje · · Score: 1

    Last time I tried PostgreSQL on a "simple website", despite the claims it ran at half the speed of MySQL. Of course we all know MySQL is 'cheating', or that PostgreSQL might scale better, which might be interesting for 0,01% of the web sites out there. Also, only 0,01% do need the power of Oracle or PostgreSQL, unlike developers at Slashdot, who always will tell you to run a "real database" like Oracle, or PostgreSQL.

    1. Re:Webdevelopers should use: MySQL by bunco · · Score: 1

      I ran into the same problem years ago. I'm sure several factors contribute to this slowdown. Remember that PostgreSQL tends to be transactional in nature. The default behavior (at the time) was to flush _everything_ to disc after each operation. No soft updates. This kicks the crap out of performance. However, it's really nice if someone decides to take your db down with a pull of the plug.

    2. Re:Webdevelopers should use: MySQL by MemoryDragon · · Score: 1

      autocommit being on per default and the optimizer cache being trimmed down could contribute to the problem ;-) if you need speed from postgres you have to read the performance documents floating the web. IMHO the biggest problem postgres nowadays has that the devs do not distributed a default performance optimized binary but one which is optimized for being ultimately resource consumption nice.

  87. Stupid name by MichailS · · Score: 1

    People should be more thoughtful when they name things.

    How do you pronounce it?

    Will people stare at you with raised eyebrows when you stutter forth an attempt to mention it?

    "We should use Post...postgreesc... post-grayscu... Myesscueell"

  88. Doesn't scale? by MichaelPenne · · Score: 1

    Funny, when I saw Zawodny at OSCON, IIRC the gist was that Yahoo used MySQL where it needs scale and Oracle where it needs superior data integrity?

    More:
    http://jeremy.zawodny.com/blog/archives/000593.htm l
    http://jeremy.zawodny.com/blog/archives/cat_mysql. html (interesting discssion of how Livejournal scales:

    "LJ relies pretty heavily on caching nowadays. None of the stuff in MySQL was quite what they needed, so they built memcached. Used by LJ, Slashdot, Wikipedia, others use it now. Original version in Perl, now written in C. Lots of O(1) operations inside make it quite fast. The client can do multi-server parallel fetching (kick ass!). They run multiple instances on boxes with more than 4GB RAM. They have a 90-93% hit rate on the cache."

    1. Re:Doesn't scale? by swmccracken · · Score: 1

      You're basically praising memcached; which isn't MySQL specific at all. Read Danga's documentation.

      Memcached is effectively its own simple associative-array style database, stored purely in memory. It is expected you use another database for the real, persistent storage and then cache the results of database queries using memcached.

    2. Re:Doesn't scale? by MichaelPenne · · Score: 1

      Actually, I meant the quote on memcached as more or less an aside. If you read some of the other discussion on the referenced article it talks about how LJ is doing very large scale MySQL...and then talks about how they use memcached also.

  89. Sometimes the tool IS the problem by WebCowboy · · Score: 4, Insightful

    My point is that the tool is not always the problem. Now if C++'s integer arithmetic had an issue, that is another story, but the programmer simply was not good.

    No, the tool IS part of the problem in such cases. If the programmer was not that good at C then C was the wrong tool and thus part of the problem. The programmer should've taken the time to study up on C, or picked a different tool. There are times when the tool is not appropriate for the job--you probably shouldn't use C if you need to do heavy text processing and need to get the job done fast (use Perl instead), or if you are less experienced and want a language that supports sound object-oriented programming maybe try Python, etc.

    MySQL was not designed as a robust relational database, and its creators didn't seem to be intent on making it so, or else they'd have designed it differently. It was designed as a very quick and quite dirty SQL frontend/ISAM backend system to support small, informal databases (or so it seems): Basically, its heritage is to be like the old Ashton-Tate dBase but using SQL to query the tables. Since then it has lost that focus and now we have large websites storing millions of records in mySQL.

    MySQL is a great tool if used as intended, however it definitely IS a problem if your accounting system uses it for example. People started doing crap like that and complained about mySQL's lack of features, thus we have things tacked on like innoDB tables and such to add this robustness.

    PostgreSQL was not always as super-robust as it is now, and in its present form its source code is probably almost unrecognisable from 10 years ago, however its architecture was more sound and thought out from the start, as its heritage was as an academic project. Its challenge was not to add features as was the case with mySQL--PgSQL was designed for extensibility. PostgreSQL had to catch up in performance and stability, which it has done in spades.

    Personally, I always use UNIX timestamps (seconds since 1970). They can be directly added, sorted, and converted into any timezone, and its very portable. But thats just me. (Yes, UNIX timestamps do nothing before 1970, etc, etc).

    It seems somehow wrong that your business logic has to perform low-level validation of basic datatypes, and it is cumbersome and error-prone to deal with unrecognisable representations. Only the geekiest of geeks could tell me whether 1984293617 falls on a Thursday without runing it through some kind of conversion program (simple as that may be for a geek). What about people who point-and-click their way through some report designer--they're gonna have to deal with some giant integer in a column entitled "something-date". The other problem is that it is not very precise for some applications that need sub-second timestamp values.

    Personally, I like PostgreSQL because it accepts ISO standard formats, you don't need to do anything to convert timezones--you simply specify the time zone when you insert or query and it issmart enough to figure it out when you query fordatain Eastern time zone and it was inserted in Pacific timezone. Furthermore, it knows Feb 30 isn't valid, and knows when leap years occur, and can format the date in many different ways with simple built-in functions, can be accurate to the millisecond and won't crash and burn in 2038.

    FYI, I believe the "seconds since UNIX epoch" representation of date/time values is a SIGNED integer, so they are in fact good for earlier dates than 1970 (they are good to some time in late 1901 in fact). That is still a pretty limited range and why early systems didn't use that representation inmany cases (couldn't store birthdates for a lot of people who were still alive in the early 1970s becasue they were born before 1901). It is still a problem in some applications ad that is why 32-bit "UNIX-style" time is discouraged.

    I think it's a shame that people resort to such kludges without adequately lookig for more appropriate alternatives...but that's just me ;-)

    1. Re:Sometimes the tool IS the problem by dbitter1 · · Score: 1
      Only the geekiest of geeks could tell me whether 1984293617 falls on a Thursday without runing it through some kind of conversion program

      And just to claim those geek points, that algorithm is called "zeller's congruence", and can be easily done in about 4 lines of C. (Depending on how you place your brackets ;) )

      --
      For us carnivores, "Sucking the marrow out of life" isn't a transcendentalist philosophy but a practical instruction.
    2. Re:Sometimes the tool IS the problem by AlecC · · Score: 2, Insightful

      MySQL was not designed as a robust relational database, and its creators didn't seem to be intent on making it so, or else they'd have designed it differently. It was designed as a very quick and quite dirty SQL frontend/ISAM backend system to support small, informal databases (or so it seems)

      On MySQL doing only "informal" databases, you have a point: it is not good on points like referential integrity. But on "small", I think you are unfair. It scales very well to very large numbers of records/gigabytes, and performs well when doing so. If your challenge is sheer numbers of records, MySQL is good. It is still OK if you have very few developers who understand the entire database and its constraints. If you have many tables with complex relationships and many developers, some of indifferent quality, you need a lot more enforcement than MySQL gives you.

      --
      Consciousness is an illusion caused by an excess of self consciousness.
    3. Re:Sometimes the tool IS the problem by hackstraw · · Score: 1

      No, the tool IS part of the problem in such cases.

      Now, I said that MySQL _should_ do the "right thing" with the date, but it doesn't.

      I miss the pick any two out of three things that were the fad here on slashdot. But here you go:

      1) fast
      2) cheap
      3) good

      Pick any two.

      MySQL does 1 and 2 very well. PostgreSQL does 2 and 3 well. Odds are, the DB would not have been any better with PostgreSQL or Oracle or DB2 or a roll-your-own database, because the programmer sucked. Especially considering that most people know MySQL better than other DBs, I would say that this project was destined to fail due to a dud of a programmer.

      I don't particularly care for C++, but I sure as shit would have written the code to store the numbers as a number, not as an ASCII string in hex and/or base 10.

      I guess the fast, cheap, good thing applies to programmers as well.

    4. Re:Sometimes the tool IS the problem by hackstraw · · Score: 2, Funny

      Only the geekiest of geeks could tell me whether 1984293617 falls on a Thursday without runing it through some kind of conversion program (simple as that may be for a geek).

      $ ./gmt2localtime.pl 1984293617

      Wed Nov 17 03:40:17 2032

      $ cat gmt2localtime.pl
      #!/usr/bin/perl

      if (!@ARGV) {
          die "Usage: $0 timestamp\n".
                  "\n".
                  "converts a unix timestamp to localtime";
      }

      print scalar localtime($ARGV[0]), "\n";


      I guess only the geekiest of geeks have used Oracle.

      $ oerr 942
      Error 942 is: ORA-00942: table or view does not exist


      Now, tell me that less than the geekiest of geeks knows that November 18, 2032 is a Thursday. I would have to get out a serious calculator, or use much more than a one line perl script to figure it out.

    5. Re:Sometimes the tool IS the problem by panda · · Score: 1

      No, the tool IS part of the problem in such cases. If the programmer was not that good at C then C was the wrong tool and thus part of the problem.

      "It's a poor craftsman who blames his tools."

      --
      Just be sure to wear the gold uniform when you beam down -- you know what happens when you wear the red one.
    6. Re:Sometimes the tool IS the problem by Anonymous Coward · · Score: 0

      It's a fucking idiot who quotes simple adages in reply to complex problems.

    7. Re:Sometimes the tool IS the problem by metamatic · · Score: 1

      It's also a poor craftsman who bangs in nails using a screwdriver.

      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    8. Re:Sometimes the tool IS the problem by renoX · · Score: 1

      Funny, this post has made me realise that MySQL is the C++ of the database: by default it's very fast but unsafe, if you use it appropriatedly you can get additionnal security but it's hard to do.

      The IT world is slowly but surely using language with better security feature by default than C++, I hope the DB programmers will do the same thing, maybe we'll see less 'DB corrupted' webpages..

  90. The price of success by Anonymous Coward · · Score: 1, Interesting

    Oh-oh. We must be getting successful. People are bashing us on Slashdot now.

    --Josh Berkus
        PostgreSQL Project

  91. The History of PostgreSQL by mbirk · · Score: 2, Interesting

    For a better understanding of where PostgreSQL sits with respect to MySQL, it's worth reading the history of PostgreSQL on Wikipedia.

    The short story is, it has deep roots in academia. It was Michael Stonebraker's experimental, "post-relational" database. It had "advanced" features, relative to its precursor INGRES, some of which still remain (e.g. extensible types). (Others, like built-in storage and querying of time-series data, do not.) After the academic project was abandoned, two of Stonebraker's grad students ripped out some of the more esoteric (and unstable) features and added a real SQL parser.

    Anyway, I wasn't involved in any of the academic work. However, I was an early adopter in this transition period, circa 1995 (when it was called Postgres95). It was buggy, but it was very, very cool.

    I think when MySQL came along, Postgres still had not fully shed it's "academic" pedigree, and still was complex, quirky, and buggy. MySQL was light-weight and simple, and "just worked."

    I love PostgreSQL, use it daily, and have had no stability problems in the last five years. But, it was not quite the write DMBS and the right time.

  92. What an attitude by WebCowboy · · Score: 4, Insightful

    I can't be bothered to learn something new when it seems everything supports MySQL.

    I'm glad you don't work for me with that attitude. I'd rather work with someone who is interested in learning new things and will bring some creativity to the job. People of your mentality have to be careful they don't fall into the "false laziness" trap--using some tool or technique or techology because you are too lazy to learn something new, only to end up doing load of extra work to avoid the shortcomings of your inappropriate design choices. The result is scads of legacy code at higher layers of an application to handle things like datatype verification, basic referential integrity and so on.

    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

    I've never found it to be a major struggle to use PostgreSQL, though being a more full-featured database it will naturally be a bit more complex to manage.
    I'm puzzled about the "all the various executables" part too, since many of them were invocable from the psql shell anyways. Also, it sounds like you've not lookded at PostgreSQL for awhile because its permissions system has undergone a lot of work--certainly it can be complex but it is very flexible and powerful, and honestly it gets rid of most excuses you had to execute all your database operations under the database superuser (or some other single user account) in your backend code.

    I have better things to do with my time, like write cool code that uses MySQL.

    You might want to examine how you used your time...if you had spent a few hours or a couple days learning something new for a change (like PostgreSQL) then it might've saved weeks or hours of frustration trying to use mySQL for too-complex tasks.

    MySQL might have grownup a lot in recent years, but at its heart it was meant for much more modest tasks, like storing guestbook entries, record collections, as a temporary datastore/embedded database, high-performance querying of relatively static ad/or non-critical data and so on.

    1. Re:What an attitude by koekepeer · · Score: 2, Interesting

      > > I can't be bothered to learn something new when it seems everything
      > > supports MySQL.
      >
      > I'm glad you don't work for me with that attitude. I'd rather work
      > with someone who is interested in learning new things and will bring
      > some creativity to the job. People of your mentality have to be careful
      > they don't fall into the "false laziness" trap--using some tool or
      > technique or techology because you are too lazy to learn something new,
      > only to end up doing load of extra work to avoid the shortcomings of your
      > inappropriate design choices. The result is scads of legacy code at higher
      > layers of an application to handle things like datatype verification, basic
      > referential integrity and so on.

      not to attack you, but i feel you are presenting the situation quite black and white. i had a similar talk with a friend the other night, who develops in MySQL/PHP in a very innovative and creative environment (art/new media).

      the gist of his response was something like "creativity exists *because* of limitations and boundaries. you need them to be forced to think outside the box" (loosely paraphrasing).

      "just getting the job done" is often a very important issue as well. if your company makes money by selling a product with a complex MySQL database and a PHP frontend that has been developed by someone else, it's a big big effort to change all that to Postgres and some more "up-to-date" scripting language like ruby... especially if you have to meet deadlines all the time. and i'm not even considering what other team members think of this sudden change.

      having said that, i'm all for google-like policies, where people can invest 20% of their time in coding hobby projects. in this way you can invest part of your time on learning new fun stuff, and enlarge the array of possible solutions to the problems you need to tackle in the future.

    2. Re:What an attitude by Anonymous Coward · · Score: 0
      I can't be bothered to learn something new when it seems everything supports MySQL.
      I'm glad you don't work for me with that attitude.
      And i'm glad that i don't delegate my decisions to you. When i have a programming project, i want my contractors to get the job done. They have specifications and functional requirements and they can be as creative with that as they want to be. But i'm not gonna hire, as you put it "someone who is interested in learning new things".

      Maybe you should step out of the 1980s and enter the 21th century. IT professionals are no longer the new surgeons. They're plumbers. And i'm not paying or selecting my plumber based on "creativity" or his interested in "learning new things" during billable hours.

      I expect professionalism, and something that will stand the test of time. And i pay them accordingly.
  93. SELECT COUNT(*) FROM SOMETABLE took 15 minutes by Anonymous Coward · · Score: 0

    Last time I used PostgresSQL, after installation and loading the table with a a few dozen million records, a select count(*) from tablename took eons. Then, another one immediately afterwards took the same eons. I wouldn't call that impressive when 1) the simple number of records in a table isn't optimized into a O(0) response and 2) it isn't even cashed after doing the work once. Unless you dig really deep into how to optimize and what to avoid in Postgres it is, in comparison to MySQL *extremely slow* in some functions. So if you just want to create an application that does a lot of querying but does not need transactions etc. MySQL will make your application much more responive in many cases.

  94. And sun supports it... by Anonymous Coward · · Score: 0
  95. Because Firebird is here by Almad · · Score: 1

    I'm surprised nobody mentioned Firebird. I started using it since 1.0 and I cannot complain. And yes, this is reason not to use PostgreSQL. Friend of mine has been now forced to use postgres, complaining every day (he is ending up dropping whole database schema nearly each day because of altering some view/SP and postgres not controlling dependencies, about syntax and usability where firebird use for select into var suspend etc. etc.). Most importantly, Firebird have a decent learning curve. Syntax is very comfortable for users, kinterbasdb is functioning nicely (even PHP has now documented connection set)... Functions in postgres are acting like functions (suprise!), which is what I do not want, I want SP using from my apps. When functions, then UDF. No, really. Any reason to switch to postgres from firebird?

    1. Re:Because Firebird is here by fok · · Score: 2, Interesting

      I converted my Delphi app from firebird to postgresql because of scalability problems. Serious scalability problems. Firebird is good, but not nearly as grate as PostgreSQL (as a database engine). It simply cannot work with tables holding a few million records (the server crawls). An almost direct conversion to PostgreSQL gave the app the speed it needed (and afterlife to the server).

      --
      \m/
    2. Re:Because Firebird is here by Almad · · Score: 1

      Strange. We've got experience with ~50G FB without any issues... Also true that this was webapp, not Delphi app, so another type of use.

    3. Re:Because Firebird is here by fok · · Score: 1

      What are your server specs? The server was a dual pentium 3 at 933 MHz with 1Gb RAM. The database was 4Gb+ in size.

      We did not expect this kind o problem... we are prety sure about what we do in Delphi/SQL.

      --
      \m/
    4. Re:Because Firebird is here by fok · · Score: 1

      Oh, oane more thing: server load was always 99.9% full. Now with PostgreSQL it's always 0.1%. :)

      --
      \m/
  96. My pet peeve: char escaping in string constants by ianezz · · Score: 1

    Not really a reason to avoid PostgreSQL, but its default non-ANSI SQL way of quoting characters in string constants (using also backslashes) is for me a major annoyance when developing cross-RDBMS applications (yes, I already know of PQescapeString()).

    Fortunately, PostgreSQL developers recognized this is more of an annoyance than a feature, and are going to change the default behaviour in PostgreSQL 8.2 (while preserving the old behaviour using a new syntax).

  97. The main reason... by MaestroSartori · · Score: 1

    ...for me is MySQL.

    I'm not a database-y developer really, so I don't have a grasp of the technical abilities of each database. I just go by how easy it is to get third party stuff to install and run on my webhost, and so far PostgreSQL is pretty crappy on that score, through no real fault of its own.

    Pretty much every database-enabled open source CMS or blogging app I've tried to use wants MySQL. I assume from these that it's really difficult to write cross-database-platform code, because hardly any of them will work with PostgreSQL. And some of the ones that claim to, don't (yes I'm looking at you Drupal with your lying version requirements!). Even the plugins for things which do end up working (I'm using Movabletype with its standalone db) depend on MySQL rather than using whatever you've set up with the host application.

    If I had more spare time, and the inclination to learn more PHP and web development and database stuff, I'd probably have a look at helping out the projects I've tried and failed to use. But I don't.

  98. costs of switching by Tom · · Score: 1

    I would love to switch to Postgres. The main reasons I don't are:

    a) I have third-party applications that only run on MySQL. So I'd have to run two different database engines. Bah.

    b) Even though I've used an abstraction layer from the get go, I found out that subtle differences still would cause me a lot of effort to move my own applications from MySQL to Postgres. And right now, it simply isn't worth the effort. :(

    --
    Assorted stuff I do sometimes: Lemuria.org
  99. Main reason: Entry curve for developers by KZigurs · · Score: 1

    Why MySQL beats PostgreSQL:

    - Windows install (5 minutes and you are up and running. You can argue that Real Developers doesn't use Windows, but on the other hand - Real Developers value their time and tend to choose what allows to get the task done in shortest and easiest timeframe while fulfilling client's needs. MySQL tends to be the safe bet here, especially in small web and workflow applications).
    - Simple GUI tools (again, I don't want to start writing SQL, if all I want is my table, in a minute and holding some test data).
    - Examples for most languages, development enviroments and in books presume you use MySQL. Again, no need to figure what is the difference between navigating result set by PK or cursor, in example.

    During learning/developement nobody gives a damn about database settings, it's functionality details or scalability. 99% of the developement is projects that doesn't need (or goes without, since developer[s] retains such functionality in app layer) triggers, stored procedures or 'correct' type checking. Therefore we just pick what get's us started NOW, instead of 'after you'll reconfigure that, this, execute such query, update users table manually or wait for a few minutes for everything to load up).

    1. Re:Main reason: Entry curve for developers by fok · · Score: 1

      PostgreSQL has it all...

      Windows port: http://www.postgresql.org/ftp/binary/v8.1.3/win32/
      GUI Tool: http://pgadmin.org/ (comes with the windows install)
      Lots of documentation: http://www.postgresql.org/docs/8.1/interactive/ind ex.html
      Books: http://www.postgresql.org/docs/books/

      And don't repeat my mistakes, you should always mind scalability.

      --
      \m/
  100. Number Six reason. by Anonymous Coward · · Score: 0

    Reason #6: Postgresql was made by database gods and I am not worthy.

    Yes. Postgresql is perfect and unique free database that operates perfectly on Windows (or if your a Fanboi that likes suffering: Linux) and never ever will have any fucking problems. If it has problems, then YOUR the problem. Fuck you. Your not worthy. Use Firebird or that shit toy laughably called My'SQL'. HA!

    The only thing better then Postgresql is Oracle. That is because Oracle was made by Jesus. But you probably don't need it because it's very high end, and obviously if your too pathetic to use postgresql then by fuck all means don't sully Oracle with your filth.

    Postgresql is also probably better then even MS SQL, but I am not sure about that. Screw Microsoft. Unless it's Windows. Then you should use Windows if it's better then Linux (and it usually is because it's easier and hardware install is better and the directories make sense and it's easier to install software and it's stable now and if you get a virus or adware your a moron and it's not microsofts fault it's because Linux isn't popular's fault and your fault and it makes perfect sense). Best tool for the job, of course. I am not a fanboy, you are the fanboy.

    Your not worthy. Your not worthy.

  101. PostgreSQL is a grown-ups database by mrphewitt · · Score: 2, Interesting

    My take is that "mySQL" is a marketing wonks dream name, "postgreSQL" says difficult and geeky. PostgreSQL is also a grown up database and has a different target audience to mySQL aiming itself at the Oracle and DB2 market. mySQL is aiming at a different market. I examined the strengths and weaknesses of mySQL and PosgtreSQL when deciding which OS database to use for my business and chose PostgreSQL because of its better support for transactional processing and ACID. My current applications built on the rock of postgreSQL include a 250GB datawarehouse modelling the UK electricity market which is used by major players in that market. It has never gone wrong, performs with impressive speed and has never written a record incorrectly or returned an incorrect row. Without postgreSQL I wouldn't be in business. It is the best OS database out there and competes with many of the paid for databases very well.

  102. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  103. Comment removed by account_deleted · · Score: 5, Insightful

    Comment removed based on user account deletion

  104. OT Beer by nietsch · · Score: 1

    Like Germany has ~10 million microbreweries? (and if you did, it's not like nobody knows your families recipe. And if they don't, then there is no problem coming up with a similar as 'the family recipe'.

    Which one does not belong in the following list:
    Warsteiner, Bittburger, Heineken.

    --
    This space is intentionally staring blankly at you
  105. The REAL reason by ClamIAm · · Score: 1
    The real reason you should use it is that elephants kick the crap out of dolphins, every time.

    DISLAIMER: I have never used a database in my life, shut up already.

  106. Ah, postgres 8! by OpCode42 · · Score: 2, Informative

    There are many reasons not to use postgres 7.

    Want to add a not null column with a default value? Thats 3 statements. Plus one to update the existing rows to the default value.

    Want to rename a column? Create the new column. Copy the data over. Copy any contraints. Update any forgein key contrainsts. Drop the old column. That's right, postgres 7 does not do RENAME on columns!

    Here's one that will catch you out :

    SELECT a.*, b.* from a;

    The default behaviour for postgres 7 is to join a and b automatically, giving you a potentially huge result set instead of warning that b does not have a from clause. Yes, you can turn this off, but having it as default behaviour? Insanity. Fine if your statements are always 100% correct, but if there's a novice developer on your team who misses things like this, expect trouble instead of a helpful error.

    I could go on. Glad to see that version 8 is a big improvement.

    1. Re:Ah, postgres 8! by mw · · Score: 1

      In fact you seem to be talking from very old releases, maybe 7.2?

      From a 7.4 database:
      Renaming columns:
      ALTER TABLE [ ONLY ] name [ * ]
              RENAME [ COLUMN ] column TO new_column

      > Want to add a not null column with a default value? Thats 3 statements. Plus one to update the existing rows to the default value.
      How often do you add columns? Pretty seldom I guess, so this is not a real problem. Or if you want, create a plsql function that does this for you.

    2. Re:Ah, postgres 8! by OpCode42 · · Score: 1

      Yup, we're on 7.2 here. Thanks for the heads up on that though!

    3. Re:Ah, postgres 8! by glwtta · · Score: 1
      That's right, postgres 7 does not do RENAME on columns!

      Column renames have been there since early 7.x days. You are probably thinking of changin column data types, that was the big ALTER COLUMN improvement in 8.

      --
      sic transit gloria mundi
    4. Re:Ah, postgres 8! by OpCode42 · · Score: 1

      Ah. How foolish of me. Yes, changing column TYPES, not names.

      Ahead, dizzyness factor 5!

  107. The name! by mlopes · · Score: 1

    Is the name, i think! MySQL sounds cool while Postgre sounds like some kind of desease!

  108. They forgot one by petrus4 · · Score: 1

    Postgres uses the BSD license rather than the GPL. I expect that causes a lot of Linux users in particular to avoid it, unfortunately.

    1. Re:They forgot one by bunco · · Score: 1

      Typical uneducated fanboy drivel.

      Kindly give one or more examples as to why one would choose not to utilize software which is distributed under the BSD license.

      Additionally, have you actually _READ_ the MySQL complex hybrid licensing policy? If you have any commercial interests, you will probably have to pay for MySQL whereas PostgreSQL will remain free.

      Anyone with a clue will likely weigh out the pros and cons of each license. However, in the grand scheme of things, it's likely that functionality will outweigh the license differences.

  109. PostgreSQL is tha bomb by Yonder+Way · · Score: 1

    Right now I am root on one of the biggest private GForge implementations in the world, and we use PostgreSQL on the back end. I've been thoroughly impressed with it. There were some complaints when I came on board about PostgreSQL falling over but when I looked into it, to my astonishment, there were a number of problems with the system configuration that caused PostgreSQL to run out of available connections. It had never been tuned from the default settings! So no problems were seen until we were past 17,000 developers. Honestly, I still haven't tuned it. Haven't needed to. It's very fast with the default configuration and once I got the OS and the hardware tuned that it was sitting on, it ran faster than ever.

    I've managed PostgreSQL at a few shops and usually about the time someone is ready to rip it out and replace it with Oracle, it's because the DBA is a paper tiger who was only trained and certified in Oracle and doesn't know how to tune PostgreSQL, and won't take the time to learn.

  110. uh, wrong by Ender+Ryan · · Score: 1
    MySQL has supported UNION since 4.0, IIRC. I use it all the time. I am not running MaxDB.

    Just FYI.

    --
    Sticking feathers up your butt does not make you a chicken - Tyler Durden
  111. A sixth: honest question by Second_Derivative · · Score: 1

    Last I checked, Postgres required a nightly VACUUM operation, otherwise over time the entire db would grind to a crawl. And forget about getting anything done while the db is being VACUUMed, which usually takes quite a while.

    This is, to put it lightly, quite a deal breaker. I hope this is no longer the case now, is it?

    1. Re:A sixth: honest question by Anonymous Coward · · Score: 0

      The frequency of vacumms depends on the pattern of activity on the database (tables that have high numbers of UPDATE's and/or DELETE's, or lots of rolled back transacations will need to be vacuumed freuquently. The time it takes for a vacuum to run will depend on the size of the table. This "deal breaker" is the side effect of MVCC (multi-version concurrency control), which, in short, allows for reads to never block writes, and writes to never block reads. This is a _HUGE_ boost to performance in highly concurrent databases.

      That said, there is a something called autovacuum (which, as of 8.1, is part of the main distribution) that will do exactly what the name says, automatically handle vacuuming for you.

  112. why I don't use postgresql by Squeezer · · Score: 2, Insightful

    with mysql, when you upgrade between major releases, you just compile and install it and keep on truckin'

    with postgresql you have to run pg_dumpall, and then restore it after upgrading to the next major version. which is extremely gay, and half the time it doesn't work, or doesn't work according to the postgresql docs, or sometimes loads the tables but not the users or vice versa. thats stupid and is what keeps me from using postgresql.

    --
    Does the name Pavlov ring a bell?
    1. Re:why I don't use postgresql by glwtta · · Score: 1
      While it's a hassle, I don't think I'd trust any DB to just keep going with the old data after a major release upgrade.

      It's true that pg has had issues with logical dumps between version - one that comes to mind is the "serial" column/sequence handling, but most of them were just annoying and easily fixed.

      One thing that helps is to install the client tools for the new version first, and do the dumps using those, so your loader will be from the same version as the dumper. I think doing that avoids all these incompatibilities.

      --
      sic transit gloria mundi
    2. Re:why I don't use postgresql by Iaughter · · Score: 1

      This isn't a fair criticism, because you should dump all before upgrading your database. PostgreSQL just enforces this behavior. MySQL lets you do it half-assed with the possibility of losing your databases.

  113. OLEDB was full of bugs by Anonymous Coward · · Score: 0

    I love postgres, but the oledb driver is pretty buggy.

  114. Reason #2: No professional development and adminis by Z0mb1eman · · Score: 1
    Administration and development: There are numerous impressive efforts going on in this area, and three products are particularly promising. pgAdmin III has a particularly long development history and is capable of handling practically any task ranging from simple table creation to managing replication across multiple servers. Navicat PostgreSQL offers features similar to pgAdmin III and is packaged in a very well-designed interface. A good, Web-based tool is phpPgAdmin.


    Now, I am NOT a DBA, and I'm generally a newbie when it comes to databases. I've been trying to use PostgreSQL for a small learning project. PostgreSQL itself is fine (then again, for our very limited needs pretty much anything would be), but pgAdmin III has been driving me nuts... the two worst things that have happened (repeatedly) was pgAdmin crashing when trying to view data in some tables, and pgAdmin hanging indefinitely when trying to drop some tables (and every time after when trying to interact with those tables - until I deleted the entire database and started again). Yes, I don't really know what I'm doing, and these were most likely caused by user errors, but program crashes and freezes are NOT a good sign, no matter what.

    I guess I'll give Navicat a try, it might be better.

    --
    ClutterMe.com - easiest site creation on the Net. Just click and type.
  115. What's wrong with MySQL? :-? by Spy+der+Mann · · Score: 1

    Does an e-commerce app count as mission critical? In some parts I have to use InnoDB tables because of the transactions.

    Also, please explain how PostgreSQL has the advantage over mySQL for "mission critical" apps. What's wrong with MySQL?

    (Mods: Please DONT mod this insightful, i'm asking a question and I want it to be answered)

  116. Here's a better reason: by Ivan+Matveitch · · Score: 1

    Databases, like filesystems, are inherently undesirable. Why should programmers have to write programs that explicitly restore their execution state after it has been annihilated by a crash? This can and should be transparent.

  117. yep, wrong by Jesus_666 · · Score: 1

    You're right. I confused UNION with INTERSECT.

    --
    USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
  118. syslog by StupidKatz · · Score: 1

    Done properly, no need for encryption nor even TCP. The logs go out via serial cable to a system which is off the network and not connected to any other machine, save that one which it is receiving log data from (via serial cable). That's about as secure as you can get...

    1. Re:syslog by jschrod · · Score: 1
      Secure, might be. But reliable? My syslog servers are very often HA clusters to catch outages. (After all, the logs might be from mission-critical servers.) Serial cable connections don't cut slack here, sorry. Proper planning of a syslog infrastructure must be targeted towards the situation at hand and the audit requirements. For firewalls, your approach might work. For an SAP database server, OTOH, I wouldn't use it. That said, syslog-ng is almost always better than classic Unix syslog for any data center scenario that I have encountered in the last years.

      But what I wanted to tell the OP is: good implementations of system logging is one of the areas that look trivial at first and open up a whole can of worms if you look at them in detail. It was a badly chosen show case for the supremacy of some sysadmin over another.

      --

      Joachim

      People don't write Manifestos any more -- what's going on in this world? [Frank Zappa]

  119. Reason #-1 by usidoesit · · Score: 1

    There's a billion little content management web application thingies that use PHP/MySQL. I wish it was Python/MySQL. With PHP you end up using Smarty to stay sane, so you end up with tagless scripts anyway.

  120. Typical negative article... by harshmanrob · · Score: 1

    The reality of IT is the fact that most people use the software they need to get the job done. I happen to use both MySQL and Oracle for my uses and my job but PostgreSQL is pretty nifty for personal projects. Oracle is a large animal and cost more than a Maybach for 1 CPU of support (ok, probably not but you get the idea). This same arguement can be applied to, 5 reason you should not be using Linux, or 5 reasons you should not be using OpenOffice, etc.

  121. No mod points either but -1 Troll by slyborg · · Score: 0, Troll

    And not sure what if anything this has to do with Postgres. Thanks for stopping by.

  122. #6: how do you pronounce it? by option8 · · Score: 1

    really. how do you tell your PHB "we need to use this thing you've never heard of and will probably never know how to pronounce when you tell our prospects that we're using it"

    instead, you shrug and say "tell them we're using 'MY ESS QUE ELL' not 'my sequel'."

  123. #1 Reason is... by Nevermore-Spoon · · Score: 1

    because I can't pronounce its name!

    --
    I have great faith in fools; My friends call it self-confidence. Edgar Allan Poe 1809-1845
    1. Re:#1 Reason is... by MPHellwig · · Score: 1

      So I guess you never want to go to Scheveningen?

  124. My reason - upgrading woes by ebvwfbw · · Score: 2, Insightful
    I have used Postgress off and on for about 15 years. At first it was the only serious free relational database alternative out there. Then it went through a number of owners, iterations, updates, going free and even went backwards for a while I'd argue.

    From time to time they change the structure of the database. This is toxic waste. If you are not aware of it and upgrade your system and postgre is updated, you will have to move the data to a machine that can still understand the old database, dump it and migrate it back in. This has kicked my ass more than once. It seems like it is always at the most inopportune time as well. Then there is the vacuum nonsense to deal with.

    With Mysql, I have never had this problem. The database just works regardless of an upgrade to the way they do things. It takes care of it. I don't recall one time where I had to dump and migrate my data, except from one machine to another. Usually I just move the files, even from platform to platform and they are still fine. In fact I have had mysql applications running for years without any intervention. It just works. I can't say that about Postgres, as well as Oracle.

  125. Oracle understands this very well by camt · · Score: 1

    ...which is why Oracle has released Oracle XE. It is not open source, but it does compete on price (free).

    It's quite fantastic.

  126. The article is right, but... by GReaToaK_2000 · · Score: 1

    I look at it this way...

    Remember Beta and VHS? I think there is a similarity here.
    Beta - was better and more capable, just not well marketed.
    VHS - not as good but much better marketed and easy to obtain.

    Since this country proves out that TTM is FAR more important then quality this happens time and time again.

    I use and will continue to use PostgreSQL. It is superior to MySQL in feature set and reliability. We use it for all our servers and applications. (Browser-based CRM, Predicitive Dialers, ERP solutions, etc.)

    Granted I disagree with the articles #1 comment because we shoe-horned Postgresql on a Windows 2000 AS back in 2004 with version 7.2 because we had a client that wanted a windows based server... BUT, it wasn't easy and for that reason I will acquiesce to the articles point.

    In any event I am pleased that Postgresql is continuing to push some of the bigger DB companies to change their tactics but I will not go to Oracle anytime soon. Nor will I go to MySQL. Just because it is "easy" is NOT a reason for me... You can do EVERYTHING with Postgresql that you can with MySQL and much more. Just because it is "easier to use" means nothing, other than laziness prevails.

    The only thing I will say against Postgresql that is a "pro" for Mysql... I get annoyed typing P-o-s-t-g-r-e-s-q-l ... I would rather something "simple" like Mysql, but then there is that "easy" argument again. :-D

    l8r

  127. I WANT associates links by bill_mcgonigle · · Score: 2, Interesting
    Amazon offers just about every book under the sun, so posting a link to Amazon is not an example of editorial bias. Clearly nobody forces anybody to buy from Amazon, so the only potential effect is on Amazon customers. So, what kind of idiot would post an amazon link to Slashdot without an associates ID?

    Here are the possibilities:
    • Amazon keeps all the money
    • A fellow slashdotter gets a miniscule amount of money

    Now we have to ask, "who benefits by complaining about people posting links with associates ID's?" The obvious answer would be employees and/or stockholders of Amazon. Now we have potential bias.

    In fact, I'd argue Slashcode should parse Amazon URL's and add associate ID's for Slashdot if none already exist. That could potentially be a better revenue base than subscriptions.

    It's not like Amazon is going to lower its pricing if everybody on Slashdot refrains from the practice, so consider an associates link a sign of an intelligent poster.
    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  128. Reason #6 by BorgCopyeditor · · Score: 1
    People who know the history behind the name seem unable to get this: it reads as though the "flavor" of SQL on offer is the flaccid and unpronounceable "Postgre." (You'd have to know about Ingres, etc., IIRC.) I feel a slight heaving motion in my stomach and nearly throw up a little in my mouth every time I think of the incredibly short-sighted tech-cutesy sense of taste that led to that naming decision. POSTGRE!!! WTF IS THAT! If I had paid tens of thousands of dollars to a marketing consultancy to name a product and the answer they came back with was "Postgre," I would try to have them executed.

    Good reason not to use what is plainly an excellent product? Of course not. But for Christ's sake, people, learn to make better names. "MySQL"? Great name (though I look forward to the days when the "my-" and "i-" prefixes are gone), good enough product, big win in popularity.

    --
    Shop as usual. And avoid panic buying.
  129. Why I use MySQL by seebs · · Score: 1

    I run MySQL because I have to; programs that users demand run only with it.

    MySQL regularly hangs. Now, there's definitely a kernel bug there, because killing the mysql process generally fails, even with -9, and the machine can't always reboot cleanly once mysql is hung. But I don't think the kernel is the sole malefactor; no other program I run, multithreaded or otherwise, does this.

    I don't take MySQL seriously. Every shred of documentation I've seen for it covering users and passwords tells you to enter the password on the command line. If a server's documentation specifically instructs you to do something suicidally stupid, that's a sign to me that they are fundamentally not getting it.

    Does it have an impressive checklist of features? You betcha. Very impressive. It's got lots of features, all perfectly checkboxed, just like MS Office. What it doesn't show any signs of is the kind of serious engineering design I'd want to see.

    So that's the thing; even if you hate mysql, you still have to use it to get a lot of programs to run, because they have dependencies on particular quirks or extensions. So unless you want to spend a few days revising something, you're stuck.

    That said, I think I might have lost less time by simply reimplementing stuff rather than putting up with this crap.

    --
    My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
  130. Postgre has Features, MySQL has Speed by nyabutid · · Score: 1

    Performance
    Generally even with tweaks to the original configuration, PostgreSQL has slower low end performance. This in part to the way PostgreSQL handles incoming connections; PostgreSQL forks on every incoming connection whose backend setup is a bit slow. However by coding things as stored procedures, one might experience some improved performance. Compared to MySQL, MySQL is very fast on both simple and complex SELECTs. MySQL handles connections very fast thus making it a better candidate for multiple client applications that connect/disconnect all the time.

    Text searching
    In most applications, text searching is a need more than just a want. Out of the box both PostgreSQL and MySQL ain't the top performers. (This is why people opt for commercial options). PostgreSQL text searching is enabled by an external tool (such as tsearch) not bundled by default with the DBMS engine. On the other hand, according to a manual release for MySQL 3.23 and later, full-text search using MATCH clauses and WITH QUERY EXPANSION are supported. Those who know the their database theory well will tell you that using pluggable extensions to the DBMS is just a bad idea when it comes to performance.

    Feature Set

    PostgreSQL wins hands down when it comes to features. This goes back to the philosophy behind the creation of PostgreSQL; Stack up features. Oh the philosophy on MySQL is ramp up the speed.

    Performance in a Distributed Environment

    MySQL and PostgreSQL have support for replication. However MySQL replication has been thoroughly tested, thanks to the large user community that MySQL enjoys also. Unlike inbuilt replication methodologies employed in MySQL, according to the PostgreSQL 8.0.7 Documentation release, PostgreSQL replication solutions are developed externally for example Slony-I which boasts popular slave/master replication. Besides Slony-I there are other commercial and non-commercial replication solutions for PostgreSQL.

    These are some of the core reasons why people choose one DBMS over the other. I don't know about you. I recently read an article that suggested that people who are jumping on to the Postgres bandwagon are just doing so in the hopes of using some of its features down the line, but the truth is you can do just as well with MySQL. Hey innoDB will be gone in a few years... Yeah Oracle sucks but you can now get Oracle Express.

    --
    -Dickens
    1. Re:Postgre has Features, MySQL has Speed by Anonymous Coward · · Score: 0

      Performance: You'll find that for databases with low concurrency, MySQL will often perform better. For highly concurrent patterns, Postgres will blow MySQL out of the water. Regarding connections, pgpool is an activly developed and maintain connection pooling software that will deal with this issue.

      Regarding replication - Slony is also a very well tested engine. It may not be part of the main distribution, but the core of the replication engine was written by a core postgres developer, and is tied in very tightly with the actual source code.

  131. oh yeah? by Ender+Ryan · · Score: 1
    Would you rather have a LAMP dance or a LAPP dance? QED.

    --
    Sticking feathers up your butt does not make you a chicken - Tyler Durden
  132. But what about... by Quince+alPillan · · Score: 1
    I don't have a problem with other databases. The only database that, to me, stands out as particularly bad is MySQL. That's because their marketing deceives many people.

    Uh, may I point out a database more nefarious than MySQL?

    MS Access.

    I'm sure there are worse databases out there, but I've not come across any that are remotely as popular as MS Access with the clueless.

    1. Re:But what about... by jadavis · · Score: 1

      MS Access.

      There are a few things going on. First of all, Access is two things, a frontend and the Jet database engine. The frontend isn't really what we're talking about, because you could hook that up to MS SQL or PostgreSQL if you wanted.

      Jet, I don't really know. I've heard with even a few concurrent accesses it slows to a crawl. But also, in the short time I used it, seemed to have sane behavior when I issued SQL commands: errors where I expect, otherwise the expected result. I can't say the same for MySQL.

      Microsoft sells Access as what it is: a few users only, small databases. When you start using it for a workgroup in an office of, say, 20 people, Microsoft will happily upgrade you to SQL server without excessive hassle (I've heard some bad stories, but in the simple case an upgrade will be smooth).

      So it's hard for me to criticize Jet too much, because it's part of the overall MS solution. Any complaints and the obvious answer would be "you should have that on SQL Server". Sort of like if you download an application and select the "store this in a flat file" option instead of entering your JDBC connection info.

      That being said, I fortunately have not had to work much with Access, so maybe I dodged a few bullets without knowing it.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
  133. How does EnterpriseDB clone compare with Oracle? by Futurepower(R) · · Score: 1

    EnterpriseDB is a variant of PostgreSQL that is "compatible with most Oracle applications".

    How does it compare with Oracle? Is it really a clone in most features?

    --
    Before, Saddam got Iraq oil profits & paid part to kill Iraqis. Now a few Americans share Iraq oil profits, & U.S. citizens pay to kill Iraqis. Improvement?

  134. Zealots vs. informed decision makers by j.leidner · · Score: 1
    PostgreSQL is the Beta of databases. The superior system but the loser in the race because of reasons beyond it's control.

    There need not be a binary distinction between "winners" and "losers".

    PostgreSQL, MySQL, SQLite and others are just alternative choices, and they compete for different database niches. If I'm a project manager ledaing five developers who are supposed to build a standard Web app, I would be using MySQL since all five are likely to know how to use it already. If my job is to build a spatial store for a research project, my choice may be PostgreSQL (because of PostGIS). If I need to manage 70k of personal addresses, SQLite's simple API, in-process ability and small memory footprint may make it the component of choice.

    What I don't like about /. is that too many people here are religious fundamentalists rather that rational, professional, informed decision-makers.
    I urge you to find out your requirements and match them against available products, pick what suits you, and if the cross-product is empty, report to your manager that you need resources to extend the nearest match with additionally needed capability or even build your own from scratch.

    That's like you build everything else, so that's how you should build software, too.

  135. What about the charges for EnterpriseDB? by Futurepower(R) · · Score: 1

    Also, is it legal to charge for EnterpriseDB in the way they do? They've made the price list a graphic so it cannot be easily quoted.

    Note that they are restricting free use to 1 CPU, 4 GB of data, and 1 GB of memory. I believe there is a free version of Oracle that is similarly restricted.

  136. professional tools by hey! · · Score: 1

    Most users who are unfamiliar with open source projects tend to think DB administrators manage them entirely through a series of cryptic shell commands. quoth the article.

    This is funny. I was talking with a DBA who works for a client the other day. The person who'd been acting as DBA had, through casual but relentless frobbing about, screwed up their systems royally. They replaced that guy with this guy, a professional DBA. I'd just gone through their system and sent them a very long and complex script to fix most of their problems.

    One thing we agreed -- neither of us would ever modify anything significant in a production system using the point and click part parts of a GUI. We always figure out what we want to do, put it in a script, simulate the effect of running the script on the production system to the best of our ability, then after we're satisfied if we use the GUI it's simply to load the script and run it.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  137. Upgrading by Jezral · · Score: 1

    The only thing that nags me about Postgres is the stupid dump+restore upgrading cycle...

    With MySQL all I have to do is service stop, rpm -Uvh, service start, and it all works.

    With Postgres I have to disable all access to ensure what I dump is the latest data, then do a dump, then service stop, then rm -rf the data dir, then rpm -Uvh, then service start, then restore, then enable access again.

    Even so, I use Postgres. Just wish it was easier to upgrade.

  138. Ironically... by Zerbs · · Score: 1

    the funny thing is, PostgreSQL's triggers can be row level triggers or statement level triggers, while MS-SQL's triggers can only be statement level triggers, so in that way PostgreSQL is better!

    --
    "22 astronauts were born in Ohio. What is it about your state that makes people want to flee the Earth?" Stephen Colbert
  139. EnterpriseDB by Zerbs · · Score: 1

    much easier to say than pohst-es-que-el

    --
    "22 astronauts were born in Ohio. What is it about your state that makes people want to flee the Earth?" Stephen Colbert
  140. Toasted Bunny by bill_mcgonigle · · Score: 1

    I think he was referring to the spit-roasting part.

    Naw, a real company would never do that.

    As Slashdot says, "laugh, it's funny".

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  141. pro-postgresql or anti-mysql? by kpharmer · · Score: 0

    > Reason number 6 is the damnned Postgres zealots that feel the need to bash everyone else's
    > database rather than promote their own.

    Hmmm, I don't see that.

    I've extensively used db2, oracle, sybase, informix, sql server and used mysql and postgresql as well. Now, I've got opinions about all:
      - oracle: too expensive, crazy ceo, dirty business practices, but sometimes slick
      - db2: fringe tools are clunky, but very fast & reliable
      - sybase: evil company
      - informix: best database ever developed
      - sql server: too gui-driven, too windows-dependent
      - postgresql: in position to take "best database" away from informix - eventually
      - mysql: tricky licensing, company told people that transactions were *not* important, data integrity problems, least portable sql

    And I get the same feeling from most other people. In other words, I don't see much in the way of pro-postgresql zealotry. But I do see experienced users of *every* other database who are extremely uncomfortable with the short-cuts taken by MySQL AB with their product.

    These people have legitimate criticisms of MySQL. And while MySQL is definitely getting better (well except for the whole oracle monster owning their most critical components), it still has a long way to go. And just like Oracle & Sybase, MySQL AB is a company who's proven that they aren't very trustworthy (see their comments on transactions). So, until they've got a solid track-record with a highly ansi-compliant product few experienced data heads are going to trust them much.

    But that has nothing to do with Postgresql.

    1. Re:pro-postgresql or anti-mysql? by TechnicalThug · · Score: 0

      Having used a fair few db's in anger over the years, I can heartily second the 'Informix: best database ever developed' comment. I can think of a few betting websites that depend on it! MySQL, to my mind is 'Fast, but otherwise shite'. I'll take reliable over shite any day.

  142. LAMP vs LAPP by Anonymous Coward · · Score: 0

    wouldn't you rather have a Lapp dance?

  143. So, by Anonymous Coward · · Score: 0

    now N mediocre programmers have to get it right as opposed to the 5-20 expert programmers working on *SQL. Bad tradeoff.

  144. Re: Those Whacky Database Names! by some+guy+I+know · · Score: 1
    Words in the English language that end with gres are rare
    As opposed to words that end with "acle", which are fairly common, I suppose?
    (Let's see, "debacle", OK, uh, um, "monacle"? (No, that's "monocle".) "Cackle"? No. "Tackle"? No. "Oracle"? Yes! ... Oh.)
    For the people who pronounce SQL as sequel
    People who pronounce "SQL" as "sequel" are pronouncing it incorrectly.
    The word pronounced "sequel" is spelled/spelt "SEQUEL", and is an actual (SQL database) product.
    "SQL" is pronounced "Ess Queue El".
    (Similarly, "URL" is pronouonced "Ewe Argh El", not "Earl"; "GUI" is pronounced "Gee You Eye", not "Gooey"; "UUID" is pronounced "Ewe You Aye Dee", not "Ee-eew Ihd"; and "OK" is pronounced "Oh Kay", not "Oh-Killy Dough-Killy".)
    --
    Those who sacrifice security to condemn liberty deserve to repeat history or something. - Benjamin Santayana
  145. PostgreSQL and shared memory == sigh. by sudog · · Score: 1

    On most OSes, shared memory is a precious resource and requires either static, compile-time tunables, or run-time tunables that are difficult to juggle. Shared memory is hard to port between OSes because nobody supports it quite the same way.

    http://www.postgresql.org/docs/7.4/static/kernel-r esources.html

    So now we have to recompile our kernels just to support Postgres? That is not cool, and means remote configuration of server machines to support Postgres is *very* dangerous.

    Additionally, when Postgres starts eating up all my system's shared memory, the other, play-nice facilities that don't consume masses of the stuff start choking because it's difficult to tell Postgres to throttle itself. So now I have to tell *both* the system *and* Postgres to match their limits. Postgres expects me not only to reconfigure my kernel, but to tell it what I've done.

    After all this, I find out that Postgres, like every other database engine out there, has a bunch of quirks in its command-line, the same way that MySQL and every other DB engine out there does.

    I'm sorry, but it's just not practical to support Postgres without extensive tuning and configuration, that I just can't afford to do on my remote machines. Therefore, MySQL or the newly-freed commercial engines are my only options.

    1. Re:PostgreSQL and shared memory == sigh. by Austin+Milbarge · · Score: 1

      > On most OSes, shared memory is a precious resource and requires either static, compile-time
      > tunables, or run-time tunables that are difficult to juggle. Shared memory is hard to port
      > between OSes because nobody supports it quite the same way.

      You fail to mention that shared memory is by far the fastest form of data sharing between processes, no matter what the OS. With shared memory, (or memory mapped files in the case of Win32), there is no need to make expensive system calls to the OS once the memory is in place. The only expense is in syncronizing between reads and writes using semaphores. But even then, these operations are not really expensive for the CPU. Moreover, shared memory code is not all that difficult to port to other systems because the concept of memory is the same regardless. Pointers are pointers. Although the functions to create the memory are different between Unix and Win32 environments. Still most of the fancy code is done with standard pointers, and if coded with care (ie, using sizeof) then the software should be pretty portable.

      > So now we have to recompile our kernels just to support Postgres? That is not cool,

      No, only if you want to support a huge database (ie. huge table sizes). However, all systems have limits. Maximum number of open files, maximum concurrent processes. This is exactly the reason why software like PostgreSQL was designed to scale to any system's maximum limits. If the OS can support a TB of shared memory, PostgreSQL should use it, and I bet this is one of the reasons why Sun is including it in their Solaris 10 system, because Sun systems support huge amounts of memory.

      > I'm sorry, but it's just not practical to support Postgres without extensive tuning and configuration

      Extensive tuning? Thats news to me. I'm sorry my friend but I have to totally disagree there.

    2. Re:PostgreSQL and shared memory == sigh. by sudog · · Score: 1

      Pay attention, dammit.

      On my systems, it would require extensive tuning because the application I would need it for requires a large-scale installation, but the kernels I'm using do not by default have large volumes of shared memory configured-in.

      If you want to quote out of context from the rest of the note, at least have the decency to have pretended to read the rest of it. I'm talking about my systems, my customers, my databases. I'm not even pretending to extend this to a generalisation; you inferred that because I didn't qualify *every* single one of my f-ing sentences. That's pretty pedantic bud.

      Postgresql would be a real bitch to install and support, and therefore it's not worth the time and effort it would require. People in my situation (with large-scale requirements) would face the same problem.

    3. Re:PostgreSQL and shared memory == sigh. by Austin+Milbarge · · Score: 1

      > On most OSes, shared memory is a precious resource and requires either static,
      > compile-time tunables, or run-time tunables that are difficult to juggle. Shared memory is
      > hard to port between OSes because nobody supports it quite the same way.

      Tell me this is not what you wrote. If it's not then it's time to change your /. password. Shared memory is not all that difficult to port between OS's if you coded correctly to start with. I've done it many times before, so before having a hissy fit know what you are talking about. Finally, I don't think you needed to "qualify" your above sentence anymore than you already did.

      > I'm not even pretending to extend this to a generalisation; you inferred that because I
      > didn't qualify *every* single one of my f-ing sentences. That's pretty pedantic bud.

      Ok, Ok. So next time be more careful when you type, and be nice to people who call you on it. Besides your use of the word "f-ing" needs two more dashes. (f---ing)

      > Postgresql would be a real bitch to install and support, and therefore it's not worth the
      > time and effort it would require. People in my situation (with large-scale requirements)
      > would face the same problem.

      Fair enough, but I happen to know people who use postgresql in large scale situations and don't share your problem. Oh well.

      > Pay attention, dammit.

      Thats the spirit! Now, channel that anger into solving your database troubles. :)

  146. Only if you DB is a POS by HornWumpus · · Score: 1

    Otherwise I expect the DB to throw an error.

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    1. Re:Only if you DB is a POS by Anonymous Coward · · Score: 0

      If you don't perform any data validation in your code before attempting to insert/update the data, all bets are off. Sloppy lazy coding is not the fault of the underlying database.

    2. Re:Only if you DB is a POS by dj-nix · · Score: 1

      I couldn't disagree more. A good database should NEVER allow invalid data to be inserted/updated into a field. Of course application programmers should validate data as well, but the database should ALWAYS give an error and refuse to insert bad data. MySQL has the bad habit of sometimes inserting bad data, sometimes randomly "munging" the data to make it fit the datatype and sometimes giving an error. This makes it really had for application programs to be able to rely on it for anything, as you don't have an expected baseline behavour. If you don't want data type checking go and use sqllite (or a flatfile). If you do, use Postgresql.

  147. Time! by metamatic · · Score: 1

    Yes, date/time handling that actually works and records all the necessary information in a sensible format is the reason I use PostgreSQL.

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  148. show tables by Anonymous Coward · · Score: 0

    If I remember correctly, the syntax to show what tables are in a PostgreSQL db is rather, well, unintuitive. In MySQL, it is just "show tables".

    Also, the first time I used PostgreSQL I had a hard time getting any query to work, until I realised you can't use double quotes, only single.

  149. Why I use PostgreSQL by Sxooter · · Score: 1

    I use it because it's incredibly well supported. When I first started using it (WAY back in the day) I found something that didn't work quite right, (actually it did, I just didn't know right from wrong at the time,) posted a message to the mailing lists, and had workaround within a few hours.

    Here's a post to the advocacy page from someone in wisconson working as a contractor. His praise mirrors mine, and that of hundreds of other users.

    http://archives.postgresql.org/pgsql-advocacy/2006 -03/msg00126.php

    --

    --- It is not the things we do which we regret the most, but the things which we don't do.
  150. It's simple... by Dirtside · · Score: 1

    ...nobody knows how to pronounce it! Post-gress-kill? Post-gress-cue-ell? Post-gree-ess-cue-ell? Post-gray-sequel? It's an unfathomable mystery!

    --
    "Destroy science and religion. Science would re-emerge exactly the same; but not religion." - Penn Jillette, paraphrased
  151. Re: Marketing Matters by engwar · · Score: 1

    This is modded as funny but it's really true. Marketing, including the product's name, can give one product the edge over a competing product. A name change and some sort of marketing campaign would make a world of difference in peoples' perception of PostgreSQL. I'm a programmer but jeez I could have come up with a name that's catchier. How about FreeQL or something?

  152. captain ignorant to the rescue by milimetric · · Score: 1

    So I don't know anything, lets start with that. I'd like to know how people manage their postgresql installations. I mean, I use SQL Server 2000. When I want a table I go in, type in a few things, check some boxes, make some relationships, cascade if I want, rearrange the orders of columns (a nice feature if you work with RAILS) and then drag and drop that into my Visual Studio designer to get some typed datasets that automatically have indexes and constraints and can be used from code as if I was working against the database itself. What's there in the postgresql world that'll let me do that? I know with MySQL I can do most of that (except for rearrange the order of columns which I haven't figured out - not that I spent time trying to do it).

    Thanks for the help

  153. It's not PG, it's the PG users. by Kristoffer+Lunden · · Score: 1

    Note: this post is not necessarily directed at parent.

    Paraphrasing an Apple-related sig as seen on Slashdot: "It's not PostgreSQL I hate, it's the PostgreSQL users".

    First off, any product that turns it's users into the fanboy crowd as seen on Slashdot (or in fact, anywhere) anytime Mysql is mentioned must be dangerous in some way. Secondly, any product that needs that kind of cheering and propaganda must have something to hide. Thirdly, I do not want to identify with that kind of rabid fanboyism, no matter if it is well-founded or not.

    If you guys would just try to tone it down a notch and wipe the foam from your lips, maybe we would be willing to listen. Attacking the competition - especially in the words and tone the PG crowd usually use - is bad marketing and it is only counter-productive.

    Especially when the said Mysql user can't identify themselves with your list of flaws. Oh, I'm sure the list is valid - but I've never been bitten by any of the issues. Maybe because I program in a certain way, maybe because of the libs I use or maybe because they are mostly theoretical flaws - I don't know, but listen now, because I'm gonna repeat myself: I have never been bitten by any of the Mysql issues you PG people like to bring up.

    It's very good to see that the Linux crowd mostly have learnt this - I'm a happy Linux-only user and I feel proud of that, especially as the blatant Windows bashers are so few and mostly kids anyways. Even though I feel those have much more of a case, personally. ;-)

    Focus on the good stuff, promote the strengths, outdo instead of attack the leader, behave civilized. In short, grow up. And I might be happy to apply for a membership one day. :)

  154. Postgres not like Betamax in many ways by daBass · · Score: 1
    PostgreSQL is the Beta of databases. The superior system but the loser in the race because of reasons beyond it's control.

    That is not true at all. Betamax lost because it was too expensive, made even worse by the shorter amount that could be recorded on one tape.

    Not only is Postgres the better product, it is also free, so price is not an issue. In fact, I am really puzzled by the Slashdot mob being such admirerers of MySQL as Postgres is actually more free than MySQL is.

    In the beer sense of "free" there isn't a single situation where you would ever have to pay "Postgres Inc" to do anything you like with it and you get a few free trivial extras thrown in that you'd have to pay a 3rd party for in the MySQL world. Like, ehrm, online backups. (who would want those anyway?)

    And in the speech sense of the word, you can use the code in any damn way you please without having to use the same license; heck, you could turn it into your own commercial product and sell it for thousands if you want to. You can't get any more freedom than that!

  155. I've got one! by CrazedWalrus · · Score: 1

    My vote is with Excel! Do I win a prize?

    1. Re:I've got one! by aled · · Score: 1

      No. Excel isn't a database and Access pretends to be one (and fails).

      --

      "I think this line is mostly filler"
  156. Garbage in, garbage out by WebCowboy · · Score: 2, Interesting

    When i have a programming project, i want my contractors to get the job done. They have specifications and functional requirements and they can be as creative with that as they want to be.

    [...]

    IT professionals are no longer the new surgeons. They're plumbers.

    Wow. Perhaps you are personally a fine person, but I bet as a boss people think you are a bit of a jerk.

    In my experience the result of this sort of work environment is often mediocre and sometimes disastrous, particularly in a "waterfall" project management environment. My comments don't relate excluseively to programmers, they include the people who write the specs and functional requirements--ESPECIALLY the latter, because poor design and planning can doom a project before one line of code is written. And as for programmers, I do not want them to be confrontational, but I fully expect them to be creative and make suggestions to improve upon a specification.

    Although a person can get lost in "creative" pursuits and mired in details that do not contribute to end goals, the opposite can happen too. Engineers and developers can pigeon-hole themselves into doing things a certain way, using certain tools. Sometimes you cannot avoid it because you are working with an existing system, but if you are developing from the ground up you should ALWAYS use some creativity.

    I expect professionalism, and something that will stand the test of time. And i pay them accordingly.

    Professionalism goes both ways you know. If you expect professionalism from your developers, then you should respect them as professionals, not deride them with opinions that they are just "plumbers" and "aren't paid for creativity". Just as is the case with open source coding, "many eyes make bugs shallow" in a specification, and when a programmer asks why it is the way it is and "wouldn't it work better this way" it can be very beneficial.

    1. Re:Garbage in, garbage out by Anonymous Coward · · Score: 0
      IT professionals are no longer the new surgeons. They're plumbers.
      Wow. Perhaps you are personally a fine person, but I bet as a boss people think you are a bit of a jerk.
      Not really, i just got elected by the people in my company as their representative in the board :)
      And there are other indicators as well ;)

      My main point is that we are dealing with professional consultants, and we treat them as such. I did mention that we're talking about contractors, right? And that's why i used the analogy of a plumber. I listen to both of them.

      That means they get paid handsomely, while at the same time they can carry out their job to the best of their abilities. Since they're the professionals we're not gonna micromanage them either and we value their input. But the IT system that they are responsible for and for which they are awarded the contract with after a public tender is too important and requires too high a regularity to allow for them to get fully creative, or try something new for the sake of learning new things.

      I'm all for creativity and stimulating people that work for me :) But stimulating them to learn something new on behalf of external contractors is not really my/our task. I guess training, and learning something new is something that that company has to provide, and can provide with the money they earn from contracts, themselves.

      I might add that i'm not based in the US, but in a nordic [european] country instead, where mediocre and disastrous environments as you call them are not as common.

      I also hope that you read the part where i said they can be creative as they need to be, within the boundaries of the contract they themselves have tendered on. I do not EVER deride the opinions of professionals, but it is not my task to give them projects for them to learn new things on either.

      If my plumber has a good idea, he's fully encouraged to bring it up, i'll listen and mostly based on his judgement and my budget i'll follow his advice. But he's still my plumber ;)

      What i won't spend mony on is if my plumber comes up to me and says he's seen something on tv or on /. that he wants to try on my kitchen, because he wants to learn new things.

      As to professionalism and the test of time: as said above, we require a VERY high regularity on the software they'll be developing for us. Proven solutions are therefore preferred and outlined as such outlined in the tender. I guess the types of software solutions that we require here may leave less room for "learning new things" than at other places.

      I hope that clarified things a bit?
  157. MySQL as a "small" database by WebCowboy · · Score: 0, Flamebait

    But on "small", I think you are unfair.

    I concede that MySQL is very good at querying massively large tables of information, and as you point out its weakness is in referential integrity and data validation. Also, MySQL is not good with databases that are very dynamic--it is best that data be static (inserted once then selected ad-infinitum with few UPDATEs or DELETEs). Very excellent for most data logging or discussion forum websites, with few tables and simple relationships or none at all.

    So to clarify, "small" refers to schema size and complexity, NOT the quantity of data within that schema.

    1. Re:MySQL as a "small" database by Anonymous Coward · · Score: 0

      Why was the parent modded as flamebait? Care to refute the propositions instead? I, for one, have that exact experience and I have been using it for various purposes since way back, commercially since 2000.

      And yes, I very much do prefer PostgreSQL and use that instead for all new projects, for many different reasons.

  158. Programmer performance issues by CrazedWalrus · · Score: 1

    Even assuming the right indexes, my experience has been that people:

    1. inadvertently create Cartesian products, don't know why they're getting 10 copies of each row, and slap distinct on it. The database server now does 10 times as much work because of the product, PLUS it needs to DISTINCT them.

    2. Grouping by a dozen columns because they don't understand how "group by" works, or how to perform grouping in a subselect and join it into the main result set.

    3. Grouping by incorrect column lists and using "having" to narrow down the resultset, making the DB do much more work than it would with an appropriate "where" and "group by" clause.

    It seems to me that most "performance" problems are due to programmer ignorance, rather than actual database slowness.

    Most won't complain about performance on simple selects, deletes, or updates, because there's no joining or grouping going on. Improperly joining or grouping will cause performance hits straight-away, because a simple error, masked by 'distinct' or a convoluted 'group by', will cause the database to do several orders of magnitude more work.

    Of course, the ignorant programmer then proceeds to blame the database.

    I propose this: A "Warning mode" or "Development Mode" for all databases that will detect an unconstrained Cartesian Product in conjunction with a "distinct" directive. This warning should direct the hapless programmer to a web site explaining how to fix the problem appropriately.

    It should also detect and warn on inordinate numbers of columns in a "group by" clause (say, more than 4 or 5), and point to a site containing information on grouping in subselects (derived tables in the FROM clause) and joining the results back into the main query as a table. I'm sure PG understands derived tables -- I don't know about MySQL, though.

    Of course, this is a self-fulfilling complaint, because bad programmers writing bad SQL will *cause* the database to grind to a halt for other concurrent, correctly written queries as well.

  159. can't get no respect by DennisInDallas · · Score: 1

    use postgres, we can even get a post about it going without about half the posts being about how some other rdbms implements date data types.

    They need Rodney Dangerfield to be the spokesperson, load up the bus with boothbabes and beer and head out to do a tour of LAN parties - then we'll get things going on.

  160. Compiere? by Futurepower(R) · · Score: 1

    Compiere uses Oracle. Does it work with EnterpriseDB?

  161. A practical viewpoint by Anonymous Coward · · Score: 0

    I think that the real reason is much simpler. Most people don't want to waste the resources to run two or more database servers. Since the majority of applications seem to use MySQL, most people will follow the path of least resistance and just use that for their DB server unless they just must have features Postgresql offers.

                Personally, I prefer Postgresql but run MySQL for that exact reason... some apps I use require MySQL and I can't waste the ram/cpu to run a second server. I also love SQLite. What I wish is that both projects would add a simple compatibility layer. Let MySQL apps run transparently linked to Postgresql or SQLite and I would happily remove MySQL.

  162. PostgreSQL date handling is far from perfect by lhoriman · · Score: 2, Interesting

    Anyone that lauds date handling in PostgreSQL should take a closer look at the wire protocol. Here's loadCalendar() in the JDBC driver:

    http://gborg.postgresql.org/cgi-bin/cvsweb.cgi/pgj dbc/org/postgresql/jdbc2/TimestampUtils.java?rev=1 .18;cvsroot=pgjdbc

    HORRID. Aside from being complicated and verbose, it changes format pretty dramatically depending, presumably, on how the server was built and what OS it runs on. Some years ago I found myself patching the damn thing because somehow the standard RPM on RedHat6.2 used yet another slightly different format.

    32-bit UNIX-style seconds-since-1970-GMT might be inadequate, but a 64-bit milliseconds-since-epoch is just fine and much, much more reliable. And if you really want to be guaranteed infinite future-proofing, send the number as a string.

    I moved to Firebird for a while, but now I use MySQL predominantly for one reason only - integrated, robust, proven database replication. When and if PGSQL catches up, I'll consider migrating back.

    Jeff Schnitzer

  163. Popularity is hard to nail down by Austin+Milbarge · · Score: 1

    PostgreSQL is a fantastic free database. I've been using it for 5 years solid. I've run it on Linux and FreeBSD and it never once crashed. Plently of other people who have used this database will tell you the same thing. Sun even decided to include Postgres standard in it's Solaris 10 product. So whats the problem? The problem for PostgrSQL is that fact that it's counterpart, MySQL is mentioned in countless books, magazines and articles, surpasing PostgreSQL by a mile.

    Why is this? Perhaps it's because most people who work with databases these days do so within a web server type environment. Most books and tutorials on web development seem to feature MySQL exclusively and since lots of aspiring web developers read these books, it's the database they've come to know by default. There's even the L.A.M.P acronym. Although I personally prefer, F.A.P.P (FreeBSD, Apache, PostgreSQL, PHP). But that doesn't sound so good.

    FreeBSD suffers from the same problem. When people think of Open Source operating systems, they naturally think of Linux, not BSD. BSD has been around a long time and is extremely stable. Some even go so far to say that FreeBSD is more stable than Linux. So why is Linux a household name? Perhaps, it's the story of the underdog from Finland competing with the all mighty evil wizard from Redmond that makes it so a compelling? Who knows.

  164. In keeping with the title... by ardle · · Score: 1

    ...the first thing I did when I saw this topic's heading was scroll away. Now I'm posting without reading any of it just to complete the job...

  165. Why I use it! Re:Why I'd rather not use PostgreSQL by gullevek · · Score: 1

    Sorry sir, but I think you should try it again. When 7.0.0 came out, it was a super huge step forward from 6, and made it way more usable, but it was still not perfect. I use here 7.4 on several production enviroments, and one of it runs since more than 3 years with only one postgres hickup, which I could fix very fast - was some db transactino corruption, which was fixable very easy.
    I have also a lot writes to the db for logging, updates, etc data, and I run vacumm every night and I enver had any issue with it.

    I have not yet tried any 8 version in production, because I am not able to update those production boxes easily. But 7.4 is very solid and I have no issues at all.

    --
    "Freiheit ist immer auch die Freiheit des Andersdenkenden" - Rosa Luxemburg, 1871 - 1919
  166. Pedantic: Sometimes the tool IS the problem by chainsaw1 · · Score: 1

    Well, technically any language that doesn need a CR and/or LF to denote a new instruction/command you can write any program in 4 lines...

    --
    - Sig
  167. From TFA by silverdr · · Score: 0

    Administration and development: There are numerous impressive efforts going on in this area, and three products are particularly promising. pgAdmin III has a particularly long development history and is capable of handling practically any task ranging from simple table creation to managing replication across multiple servers. Navicat PostgreSQL offers features similar to pgAdmin III and is packaged in a very well-designed interface.

    Yes, that's correct. And pgAdmin III continuously crashes whenever one tries to edit data in the tables while Navicat crashed already in the first three minutes of use. I.e. just after the setup's been finished and I tried to connect. Fully reproducible all the time on both... luckily psql console still works ;-)

    --
    Now, mod me down freely. My karma can't get any worse...
  168. Number one reason I don't use PosgreSQL by NateTech · · Score: 1

    Vaccuum.

    --
    +++OK ATH