Slashdot Mirror


Why To Choose PostgreSQL Over MySQL, MariaDB (dice.com)

Nerval's Lobster writes: PostgreSQL, MySQL, and MariaDB are the three "main" open-source relational databases available today (there are four if you count FireBird, but for brevity we're excluding it). For years, MySQL had a reputation of being faster than PostgreSQL, but much of that was due to the MyISAM database engine, which didn't support transactions. On the flip side of things, PostgreSQL had a reputation for being slower but more reliable. But with the recent versions of both platforms, things have started to change; for example, speed has been less of a problem for PostgreSQL, while MySQL now defaults to the InnoDB engine, which does handle transactions. According to developer David Bolton, here's why PostgreSQL is worth a second look for your database-management needs (Dice link).

171 of 244 comments (clear)

  1. Please... by The-Ixian · · Score: 3, Funny

    Try my product... I guarantee you will be satisfied with it or your money back... here's how to order...

    --
    My eyes reflect the stars and a smile lights up my face.
    1. Re: Please... by IBME · · Score: 1

      Actually it is "Thereâ(TM)s less hassle with licensing, custom data types, table inheritance, a rules systems, and database events." Except for the average guy who just needs a db, ALTER SYSTEM to provide optimizations is way beyond my needs.

  2. Not rocket science by Anonymous Coward · · Score: 2, Insightful

    Postgres is an excavator, while the other two are bobcats. For heavy lifting, the choice is obvious.

    1. Re:Not rocket science by gmack · · Score: 4, Insightful

      Postgres is an excavator, while the other two are bobcats. For heavy lifting, the choice is obvious.

      Well, not so fast. For single server, PostgreSQL is superior (although less user friendly from the shell) But Mysql / MariaDB still beat PostgreSQL when it comes to replication.

    2. Re:Not rocket science by Rei · · Score: 4, Insightful

      Postgres also has a lot of nice features. For example, I love table inheritance and don't understand why it's not more common of a feature - I probably use it in about 80% of the databases I make these days. It's just so logical and useful for real-world data (which often has at least some degree of heirarchial structure), and avoids having to hack together triggers or query logic to emulate it.

      --
      I hate to bring up our imminent arrest during your crazy time, but we gotta move.
    3. Re:Not rocket science by jellomizer · · Score: 4, Interesting

      Table Inheritance is purely awesome.
      A good structure is having a commonality across all tables.
      My personal set that I like are the following
      UID,
      CreateDateTime,
      ModifiedDateTime,
      Enabled,
      Archive,
      ArchiveFromUID

      Without it such feature, it is too easy to get into a habit of adding non-standard naming conventions, and actions. Especially if it was originally suppose to be a quick lookup table which happened over time become the core table for the data entry in the system.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    4. Re:Not rocket science by DougReed · · Score: 3, Interesting

      It is not true that there are no indices. What this statement means is that Indices do not span tables. If you put an index on the parent, that index ONLY applies to the parent. You can put the same index on the child.

      We use inheritance like this:
      components
            \ interfaces - constraint = Interfaces only
            \ ports - constraint = Ports only
            \ memory - constraint = Memory only ...

      I can select from 'components' and find everything, but I can select from interfaces and not see ports. .. Smaller tables, faster access, and yet a report can select from components to find all types of things.

    5. Re:Not rocket science by jdavidb · · Score: 1

      But Mysql / MariaDB still beat PostgreSQL when it comes to replication.

      PostgreSQL's replication must really, really suck, then.

    6. Re:Not rocket science by Penguinisto · · Score: 2

      But Mysql / MariaDB still beat PostgreSQL when it comes to replication.

      ...dafuq?

      Dude, MySQL didn't even get two-way replication until 5.1 (and at the time you had to jimmy with Federation and SQL threads to get even that functionality). I'm sure it may have gotten easier/better since then, but compared to psql, it still ain't all that much to write home about.

      Now master -> slave replication? Sure... MySQL is easier and even more fine-grained in some aspects. But Master-Master replication (you know, like you would set up in making an HA cluster)? IIRC MySQL does it, but it's a separate product that I think you have to purchase.*

      * there could be a community/OSS version out there, but I kinda doubt it.

      --
      Quo usque tandem abutere, Nimbus, patientia nostra?
    7. Re:Not rocket science by Zontar+The+Mindless · · Score: 1

      But Master-Master replication (you know, like you would set up in making an HA cluster)? IIRC MySQL does it, but it's a separate product that I think you have to purchase.*

      * there could be a community/OSS version out there, but I kinda doubt it.

      Doubt no more. Here ya go.

      --
      Il n'y a pas de Planet B.
    8. Re:Not rocket science by Qzukk · · Score: 2, Informative

      As a programmer my favorite features are all nonstandard SQL stuff. For instance: arrays, array operators, and literal array notation.

      No more whiny devs complaining about how they can't prepare foo IN ($1) so fuck prepared statements and security:

      PREPARE getuser AS SELECT * FROM user WHERE level = ANY ($1);
       
      EXECUTE getuser ( '{administrator,manager}' );

      (This works way better from a program than from the psql console - only problem is that if you're doing arbitrary strings, the escaping challenge moves from apostrophes to commas, but messing up a comma doesn't let a malicious user drop a table)

      Second most favorite is DISTINCT ON () which makes an awesome poor man's window function for a very specific case. You want to see every customer's most recent invoice?

      SELECT DISTINCT ON (customerid) * FROM invoice ORDER BY customerid, date DESC;

      Which is about half as much work to write as

      SELECT subq.* FROM (SELECT *, rank() OVER (PARTITION BY customerid ORDER BY date DESC) AS rank FROM invoice) subq WHERE subq.rank = 1;

      It might even be half as much work for the database to process since there's no subquery, but I've never benchmarked it to see.

      --
      If I have been able to see further than others, it is because I bought a pair of binoculars.
    9. Re:Not rocket science by gmack · · Score: 1

      Compared to PostgreSQL that is just getting it now?

      Most PostgreSQL solutions are addons and do the replication poorly and you can tell the PostgreSQL people get that given the number of abandoned and experimental projects. For the last project I used an HA cluster on(6 months ago), I tried several of the PostgreSQL options including the new experimental one (whose documentation was out of date) before giving up and going with MariaDB + Galera which is annoying to use since you have to prime the cluster if you restart all of it starting with the cluster item that has the most recent update (you try each one until it doesn't error). Starting the rest, and then restarting the original without the init command. I *hated* it, but at least it mostly works.

      I'm hoping PostgreSQL has caught up by the time I ever need to do it again. The new idea they have looked promising, but the command interface was still changing too often to make it useful for me.

    10. Re:Not rocket science by gmack · · Score: 2

      Believe me, I absolutely hate clustering on MySQL/MariaDB, it's just that PostgreSQL's is worse.

    11. Re:Not rocket science by guruevi · · Score: 1

      PostgreSQL does (AFAIK) not have any native replication. It requires closed-source, commercial (expensive) plugins to do a decent job at replication, most of the open source attempts have so far (I looked a few years ago) failed or only done partial implements (statement or trigger based only, no multi-master, no failover, no load balancing).

      From what I've read real replication which MariaDB/MSSQL/Oracle has won't work in the foreseeable future due to specific implementation issues within pgSQL and philosophical issues against it within the core development teams.

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    12. Re:Not rocket science by guruevi · · Score: 1

      I've done master-master replication since 5.0 with the free versions (before they were taken over by Oracle) and it has been documented since, not sure about before that period but I'm fairly sure it was possible to do in the late 4 versions as well.

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    13. Re:Not rocket science by jafo · · Score: 1

      I *LOVE* Postgres, and have since the '90s. But I've never set up replication on it except using DRBD. The replication story seems ... experimental? Every time I've looked at it, I couldn't even find which replication project to use (Slony seems to be the longest lasting, in retrospect, but I want to say there were always a half dozen of them around). I've been hoping that the newer Postgres versions with some built in replication that it would get better faster, but it seems like the replication is basically what we had in MySQL a decade ago, which disappoints me.

      I've used MySQL, as I mentioned, and the replication was not bad. There was always one clear choice to do it, and it worked. Sure, master/master felt like a horrible hack (using even/odd autoincrement, for example), and sure sometimes I had to re-replicate the slave because somehow the slave would get wedged up on a record... But setting it up was fairly straightforward, and it has been around *FOREVER* and there is a clear choice. And it was really useful for a lot of cases, we set up a lot of clusters just for backups, so we could do the "mysqldump" on a slave so the locks wouldn't stall the master.

      Recently, I wanted to convert a mail server that was using Postgres for sender address rewriting database, but never managed to get clustered, into something that was active/active replicated. This was our only system that we had no way continue service if the master went down. I ended up trying everything, starting with Postgres clustering, looking at I think Mongo, Cassandra, and eventually stumbled across something new: galera under either Percona or Maria (I forget, probably Percona). I had the cluster set up quickly, it is 3 way master, and seems to work great. Except if all 3 nodes go down, you need to take the stick to get it started, as mentioned above.

      Usually, I will default to Postgres. But, I respect MySQL.

    14. Re:Not rocket science by Basje · · Score: 1
      --
      the pun is mightier than the sword
    15. Re: Not rocket science by MrSome · · Score: 1

      Is it still in BETA? If so, then I don't consider it ready for my production environment.

    16. Re: Not rocket science by gmack · · Score: 1

      You clearly don't know what you are talking about, PostgreSQL replication supports multi-master topology clusters using BDR (BI-directional replication).

      I really wanted BDR to work for the last project I needed a cluster for. The problem was that the the documentation for BDR hadn't been updated to the new changes they made and since the whole project was still in beta, there was no guarantee the some change they made would not break my setup.

    17. Re: Not rocket science by JoshuaPK · · Score: 1

      It's not in BETA. It is a product that is fully supported (but still BSD licensed).

    18. Re:Not rocket science by JoshuaPK · · Score: 1

      It has native "hot standby" replication- you can have one "write" database sever and many "read" servers, as the writes will replicate from the master to the slaves. As of version 9.5, a lot of the stuff will be baked in to the official Postgres to allow for multi-master replication. I reckon 9.6 will have it all the way there. For now, you can download Postgres BDR, which is a supported version of Postgres with multi-master replication.

    19. Re:Not rocket science by MagicMerlin · · Score: 1

      Postgres HS/SR *is* the master slave replication feature. It's better than anything mysql offers as long as that you are ok with the main caveat: it replicates the entire database cluster and the slaves must be the same version. The only separate tooling you'd need would be to do things like manage failover if the built in tools to manage that aren't working for you. Logical replication handles all other cases. BDR (http://bdr-project.org/docs/stable/index.html) lays on top of that to provide clustering. It's not quite there yet; most but not all of the necessary foundation have been moved to the core product which can make installation and setup a bear. But the underlying infrastructure is really well designed and will ultimately compete with commercial solutions both in terms of power and ease of use.

  3. PL/pgSQL by nerdyalien · · Score: 5, Informative

    At least for me, the killer feature of PostgreSQL is its procedure language PL/pgSQL. By a fortunate accident, I had the opportunity to write some complicated features (read "calculation heavy") for a web app using PL/pgSQL. Once coupled with triggers, you can just leave everything to the DB to the point, controller has to do nothing except query and return JSON objects to the front. It is so expressive, powerful, efficient and reliable.

    I have worked with MySQL, Oracle, MSSQL and as of late MongoDB.
    Given a choice, I will always settle for PostgreSQL... it is just so natural to work with.

    1. Re:PL/pgSQL by flacco · · Score: 1

      Yep, MySQL (and variants) feels clunky and contrived compared to PostgreSQL, to me.

      --
      pr0n - keeping monitor glass spotless since 1981.
    2. Re:PL/pgSQL by QuietLagoon · · Score: 1, Troll

      PL/pgSQL

      Oh great! Another mouthful of random letters....

    3. Re:PL/pgSQL by crackspackle · · Score: 3, Informative

      At least for me, the killer feature of PostgreSQL is its procedure language PL/pgSQL..

      And please add if that's not enough for you, you can also write your triggers and functions in Python, Perl and Tcl Too.

    4. Re:PL/pgSQL by Anonymous Coward · · Score: 1

      Correct me if I'm wrong, but it seems you're just moving logic into a less accessible place and to a language less developers have extensive experience with. Also one with less tooling, language features (like modularity and abstraction) and utility features (logging, monitoring, debugging, profiling).

      And I was under the impression that using triggers is a great way to kill your app's performance, since they run per row and don't allow any batching. The fact that they run inside the original transaction is advantageous when you really need it, but will make for unnecessarily fat transactions when you don't (NOTIFY is a nice alternative then).

    5. Re:PL/pgSQL by Anonymous Coward · · Score: 1

      But it's pronounced "Throatwobbler Mangrove."

    6. Re:PL/pgSQL by Tom · · Score: 1

      This is the part I haven't yet dug into, I still do many of my calculations in PHP or in SQL statements. Do you have a good quickstart tutorial somewhere? I know a couple things I would love to compute on the database in my current main project.

      --
      Assorted stuff I do sometimes: Lemuria.org
    7. Re:PL/pgSQL by Pseudonym · · Score: 1

      For what I do, the combination of PL/pgSQL and PostGIS is like nothing else. I can run complex geographic calculations on the database server, which saves a huge amount of network traffic.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    8. Re:PL/pgSQL by turbidostato · · Score: 1

      "Correct me if I'm wrong, but it seems you're just moving logic into a less accessible place and to a language less developers have extensive experience with."

      I'll correct you:
      1) It's only processing at the proper level: you process data relationships at the Relationship DataBase Manager
      2) Something most application developers seem to forget is that they do NOT own the data, neither does it their applications. Data is a company asset which belongs to the company to access in any means it needs. That implies that in order to insure data quality you need to control it -again, at the RDBM level, not the application's, since the same data can and should be accessed by other means.

      Do you have business rules? Then sure, go build them on the application level (and make them reacheable by API means). But set data management rules at the data manager level where it makes most sense.

    9. Re:PL/pgSQL by guruevi · · Score: 1

      The recent trend is away from doing stuff on the database side. Just give the client the raw data and let them calculate against it. a) Your systems are less loaded b) Data presentation client side is WAY more flexible.

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    10. Re:PL/pgSQL by Aighearach · · Score: 1

      PL/pgSQL

      Oh great! Another mouthful of random letters....

      If you don't know, you don't need to know. Easy.

      My favorite is PL/Ruby, and in the .com boom years I was using PL/Perl a lot.

      PL/pgSQL is mostly compatible with the pSQL variants in the commercial databases. As a longtime postgres user I have no trouble writing basic procedures in Oracle or MS Sql Server. From a programmers perspective, postgres is the only open source database that supports traditional "database programming," and it does it using many more languages than the commercial ones. Combine functions/procedures with views, triggers, and rules, and you can do all of the old-school "big data" stuff, and with much of your business logic in a modern high level language of your choice.

      There is even PL/R, for building statistical analysis right into the database.

      People blather about scaling because postgres users tend to use different scaling strategies than MySQL or Sql Server users. Therefore, they worry that postgres doesn't do the thing they're used to doing. If instead they simply look into the scaling strategies in use, knowing that PosgreSQL is indeed used in large serious applications, then they'll be fine.

      Twitter went through some legendary growing pains that they initially blamed on RubyOnRails that turned out in the end to have been caused by their lack of research into database scaling using postgres. So it is true that if you get to the point of having a really huge, large-scale database you will need at least one person on your technical team to spend at least a week learning about database scaling using whatever database you chose. If that sounds hard, you need to hire your first sysadmin, or admit your database is tiny and you don't need to scale it.

    11. Re:PL/pgSQL by Aighearach · · Score: 1

      Just do less, and it is easier. What a perfect answer!

      I have no problem with this. However, expect that many of us will continue to include features, including calculating values on the server side.

    12. Re:PL/pgSQL by hummassa · · Score: 1

      And Ruby and R...

      --
      It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
    13. Re:PL/pgSQL by hummassa · · Score: 1

      How many "Thick server/ thin client" <--> "Thin server/ thick client" cycles in the last 30 years of computing? Four, five, maybe six? It would be interesting to determine the frequency, so we can always be prepared for the next wave... Anyway you can absolutely trust that in less then seven years you will be on the "thick server again", so you can polish your PL/pgSQL+PL/R when you see it coming.

      Remembering: thick servers are much more efficient in terms of energy, heat and per-dollar-computing, but thick clients are much more interactive. Thick servers tend to centralize the data, which leads to sloppy crypto and security, which leads to "I want to keep all my data on my cabinet/table/person/skin? at all times", which leads to "where is the last backup", which leads to "oh, I'll just trust the cloud with this, because surely Google and Amazon replicate the data and keep timely backups" etc etc etc.

      --
      It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
    14. Re:PL/pgSQL by CyDharttha · · Score: 1

      I prefer to leave the business logic in the business layer. Separation of concerns, easier to scale, etc.

  4. Re:I won't use a DBMS I cannot pronounce. by Anonymous Coward · · Score: 1

    As silly as this sounds, this really does hold PostgreSQL back! I can't even ask someone if they've used it without trying to pronounce it 3 ways to see which way they might recognize it. Most people who decide on MySQL do so having never heard of PostgreSQL.

  5. Re:I won't use a DBMS I cannot pronounce. by flacco · · Score: 3, Insightful

    post-gres-cue-ell.

    Now give it a try! :-)

    I use it for everything except the stuff where sqlite is more appropriate.

    --
    pr0n - keeping monitor glass spotless since 1981.
  6. SQLite by short · · Score: 1

    'nuff said

    1. Re:SQLite by Anonymous Coward · · Score: 1

      Inside your Android, yes. But multi-user? Not a chance!

    2. Re:SQLite by fyngyrz · · Score: 3, Interesting

      SQLite is fine for multiuser-read / singleuser-write. Also for built-in per-instance DBs in applications. Which covers a heck of a lot of use cases, online and not. Something else that's pretty awesome is it is trivial to compile SQLite right into an application. This serves both to make the application less complicated to install, and to ensure that the DB format, behavior and performance won't change when other parts of the host system change. Less opportunity for Apple / Linus / Microsoft / etc. to Break Your Shit(TM)

      Within the Python2 environment, where I do a lot of my work, I use a convenient wrapper for SQLite (and another for PostgreSQL.)

      Both DBs are very useful to me. I looked at MySQL and wasn't convinced there was any benefit to adding it to my toolbox, so... none of that. :)

      --
      I've fallen off your lawn, and I can't get up.
  7. Why choose mysql? JetProfiler by mveloso · · Score: 2

    MySQL has JetProfiler, Postgresql does not.

    1. Re:Why choose mysql? JetProfiler by rla3rd · · Score: 3, Informative

      and PostgreSQL has pgFouine http://pgfoundry.org/projects/...

    2. Re:Why choose mysql? JetProfiler by mveloso · · Score: 4, Informative

      Not the same. JetProfiler shows you, in realtime and with pretty pictures, what fucked up stuff you're doing to your database. pgFouine is:

      "pgFouine is a PostgreSQL log analyzer written in PHP. It is based on PQA, the Practical Query Analyzer written in Ruby. pgFouine aims to be able to parse huge logs and to have a nice and useful HTML output."

      Yeah, welcome to 1995.

    3. Re:Why choose mysql? JetProfiler by Galactic+Dominator · · Score: 1

      WTF cares about jetprofiler? I'll answer that. The people who care about jetprofiler are the exact same people who should be running mysql in the first place. Hell, systemd probably wants jetprofiler too.

      For those who have graduated from the kiddie table:

      EXPLAIN

      I saw a pen in the front office if you need a picture.

      --
      brandelf -t FreeBSD /brain
    4. Re:Why choose mysql? JetProfiler by kriston · · Score: 1

      If you're serious about profiling your database, you should be using the EXPLAIN command and analyzing what the query planner is up to.

      I have worked virtual miracles on boggy PostgreSQL databases using EXPLAIN and careful index creation (with my choice of algorithm with three- and four-way column indices). MySQL just can't compete.

      --

      Kriston

  8. Transactional DDL by Anonymous Coward · · Score: 2, Informative

    PostgreSQL has it. Makes development faster by an order of magnitude with a big database schema.

    1. Re:Transactional DDL by phantomfive · · Score: 1

      PostgreSQL supports transaction DDL statements (e.g. ALTER TABLE, CREATE TABLE). MySQL doesn't.

      Even SQLite3 supports transactional DDL statements. That MySQL doesn't is a cloud of shame hanging over them.

      --
      "First they came for the slanderers and i said nothing."
    2. Re:Transactional DDL by dskoll · · Score: 1

      This. Transactional DDL has saved our skins many times. We've had the *ahem* occasional buggy upgrade and knowing that we always have a valid schema is priceless. We either have the old schema or the new one, never some half-assed in-between version that requires a ton of manual fixups.

  9. Comparing to MySQL, you will always lose by PhrostyMcByte · · Score: 3, Interesting

    And not because MySQL is a better product, but because everyone thinks of MySQL as the database that isn't a very good choice for large projects. You should be comparing Postgres to SQL Server, Oracle, etc. -- the big guys.

    1. Re:Comparing to MySQL, you will always lose by Anonymous Coward · · Score: 4, Insightful

      but because everyone thinks of MySQL as the database that isn't a very good choice for large projects.

      That's not true! Some of us think of MySQL as the database that isn't a very good choice for any projects.

    2. Re:Comparing to MySQL, you will always lose by phorm · · Score: 2

      Or often, MySQL is
      "the database which likely isn't the best choice, but it is the one available on most VPS hosting providers" ...

    3. Re:Comparing to MySQL, you will always lose by Anonymous Coward · · Score: 1

      It doesn't have to be available on "most" providers, just the one that you use - which you will of course select based on the features it provides.

    4. Re:Comparing to MySQL, you will always lose by Gavagai80 · · Score: 1

      Unless you're developing something others will use, in which case using a database that customers are much more likely to already have set up is a big advantage.

      --
      This space intentionally left blank
    5. Re:Comparing to MySQL, you will always lose by Big+Hairy+Ian · · Score: 1

      I thought it died when Oracle took them over. Surprised to see it's still breathing

      --

      Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.

  10. Since when was speed a problem for PostgreSQL? by Balial · · Score: 1

    Was speed ever an actual problem with PostgreSQL? Or was it just that clueless folks wanted a better throughput number without caring about the implications?

    1. Re:Since when was speed a problem for PostgreSQL? by Unordained · · Score: 3, Informative

      I would expect the issue to be MVCC, not FKs. Both Postgres and Firebird do MVCC, which incurs overhead when writing data (never overwrite, always add delta records, then fix pointers so readers can follow the chain, and also cleanup deltas no longer needed by any active transactions) and when reading data (follow pointer chains, verify a given record should be visible to the current transaction despite it being listed in the slightly-larger index), etc.
      The switch from myISAM to InnoDB brings MVCC with it (in addition to, as you point out, actual constraints) so the cause/effect may be unclear.

    2. Re:Since when was speed a problem for PostgreSQL? by Unordained · · Score: 1

      Early on mysql was limited in the kinds of joins it could do...
      Can it do a FULL OUTER JOIN yet?

    3. Re:Since when was speed a problem for PostgreSQL? by kbrannen · · Score: 1

      Early on mysql was limited in the kinds of joins it could do... Can it do a FULL OUTER JOIN yet?

      No, not yet.

      While it can do UNION, it can't do INTERSECTION or DIFFERENCE. There's a number of useful things that are left out, but those 3 are at the top of the list for me.

    4. Re:Since when was speed a problem for PostgreSQL? by Cramer · · Score: 1

      In mysql, count() was 99% a lie. It never referenced the actual rows. It used indexes and "reference statistics" to answer the queries quickly, vs. correctly. I always found that infuriating. (it was one of a very long list of dumbass things mysql did -- and mostly still does)

    5. Re:Since when was speed a problem for PostgreSQL? by dskoll · · Score: 1

      Pg ancient (like version 6 or so) was pretty nasty; a VACUUM more or less locked up the system. But that hasn't been true for ages now.

    6. Re:Since when was speed a problem for PostgreSQL? by gerald.edward.butler · · Score: 1

      What? Union and full outer join are not even close to the same thing.

  11. This is going to be a nice discussion by trybywrench · · Score: 5, Insightful

    DBA's are known for being rational and objective when discussing competing RDBMSs, I'm looking forward to this discussion. Maybe next we could discuss which is better Islam, Christianity, or atheism.

    --
    I came to the datacenter drunk with a fake ID, don't you want to be just like me?
    1. Re:This is going to be a nice discussion by quantaman · · Score: 5, Funny

      DBA's are known for being rational and objective when discussing competing RDBMSs, I'm looking forward to this discussion. Maybe next we could discuss which is better Islam, Christianity, or atheism.

      The answer is obvious:

      Emacs

      --
      I stole this Sig
    2. Re:This is going to be a nice discussion by jedidiah · · Score: 4, Funny

      MySQL is so bad, it's the kind of database that could make Donald Trump convert to Islam.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    3. Re:This is going to be a nice discussion by Voyager529 · · Score: 1

      DBA's are known for being rational and objective when discussing competing RDBMSs, I'm looking forward to this discussion. Maybe next we could discuss which is better Islam, Christianity, or atheism.

      The answer is obvious:

      Emacs

      You misspelled "systemd". "Relational Database" is slated to become one of its new features for next year's release.

    4. Re:This is going to be a nice discussion by Anonymous Coward · · Score: 1

      MySQL is so bad, it's the kind of database that could make Donald Trump convert to Islam.

      Bah.

      MySQL is so bad, Larry Ellison gives it away for free.

    5. Re:This is going to be a nice discussion by phantomfive · · Score: 2

      When I use postgresql, every once in a while I learn about some feature that is kind of nice, and might make my life easier (though sometimes at the cost of compatibility).
      When I use MySQL, every once in a while, I learn about a feature (*bug*) that is kind of annoying, and definitely makes things more complicated (and sometimes at the cost of compatibility).
      There is no question in my mind which to use. If a hosting platform only supports MySQL, I won't use that hosting platform.

      --
      "First they came for the slanderers and i said nothing."
    6. Re:This is going to be a nice discussion by Pseudonym · · Score: 1

      Nope, the answer is Perl.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    7. Re:This is going to be a nice discussion by rastos1 · · Score: 1

      Perl, isn't the answer. Perl is the problem.

  12. Re:I won't use a DBMS I cannot pronounce. by freeze128 · · Score: 1

    I always read it as "post gree see quell", which is the problem. Everyone knows what post is or means, but what the fuck is a gree?

  13. Re:Speed an issue by tibit · · Score: 1

    I used to run PostgreSQL on a 486/66 linux-based server back in the day. Even then, when running with a PHP application the 256kbit/s link wasn't fast enough to expose any slowness in the database, the web server, or the application platform.

    --
    A successful API design takes a mixture of software design and pedagogy.
  14. SQL Server, thanks by DogDude · · Score: 1

    SQL Server is free up to 10 GB. After that, I'll probably still pay for SQL Server. MySQL and MariaDB are toys, and there's nothing that PostGre offers that SQL Server doesn't.

    --
    I don't respond to AC's.
    1. Re:SQL Server, thanks by t33jster · · Score: 2

      Operating system independence? I get that it may not be important TO YOU, but you're going to have a hard time downloading those SQL Server binaries for any Linux distro.

      Oracle is free up to 10GB as well. You just don't get any of the patches or support, but who needs em? Relational data isn't all that valuable anyhow.

      --
      Take off every 'sig' for great justice.
    2. Re:SQL Server, thanks by jedidiah · · Score: 1

      Even Oracle is free if you only need 10G and no support.

      It's hard to appreciate how truly trivial that limit is until you actually try to use one of these "free" commercial databases.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    3. Re:SQL Server, thanks by i_ate_god · · Score: 1

      Cross platform and free are two things postgresql offers that sql server doesn't

      --
      I'm god, but it's a bit of a drag really...
    4. Re:SQL Server, thanks by labnet · · Score: 1

      Except the 10k licensing fees....

      --
      46137
    5. Re:SQL Server, thanks by johannesg · · Score: 1

      Storage beyond 10GB, maybe? Or would that be entirely too obvious?

    6. Re:SQL Server, thanks by DogDude · · Score: 1

      If you're changing server OS's in the middle of an implementation, then you've got much bigger problems than what kind of database you're using.

      --
      I don't respond to AC's.
    7. Re:SQL Server, thanks by Hognoxious · · Score: 2

      Right. Because it's totally impossible that you might be building something that you're intending to sell to more than one customer.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    8. Re:SQL Server, thanks by DrStrangluv · · Score: 3, Interesting

      I'm a Sql Server guy myself (I spent a brief period as #1 user by rep within the sql-server tag on Stack Overflow back in 2009), but Postgresql does offer some nice language features missing in Sql Server. It also has table inheritance and for larger servers can save you a LOT of licensing costs. It performs pretty well these days, too. I agree that MySql is toy, though. Still no windowing functions after 10+ years as part of the ansi standard, awful handling of NULLs, and no FULL JOINs are just three of the many reasons that MySql is and has been for some time only the 2nd best open source DB in most categories. The only reason it's popular today is because of the self-perpetuating nature of popularity. People like it because it's what they've known, and it's what's been available.

    9. Re:SQL Server, thanks by PRMan · · Score: 1

      Plus, EVERYTHING else is terribly slow after using SQL Server.

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    10. Re:SQL Server, thanks by kimhanse · · Score: 1

      Ease of install.

      Sane handling of trailing spaces in varchar.

      A better shell with a great help function build in.

    11. Re:SQL Server, thanks by Tablizer · · Score: 1

      The "Express" SQL-Server version is limited by more than just capacity. Last I checked, it's limited to processing on one core and lacks the automatic backup scheduling feature. Regular file backups are not sufficient for such database files unless you switch off all updates temporarily during backup file copy (to avoid orphaned data pointers). You can script the process-shutdown/copy-files/startup steps, but if something goes wrong, you have a downed database to manually restart.

    12. Re:SQL Server, thanks by coder111 · · Score: 1

      Last time I had to deal with MSSQL, I found PostgreSQL to be faster on same queries/datasets. Sometimes significantly so.

      YMMV

      --Coder

    13. Re:SQL Server, thanks by Pseudonym · · Score: 1

      Hang on a sec, lemme check...

      [root@machine-name-redacted postgres]# du -h base | tail -1
      32G base

      Sorry, you were saying?

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    14. Re:SQL Server, thanks by Dog-Cow · · Score: 1

      You just provided evidence to backup the GPs point. Did you think you were providing a counter-example?

    15. Re:SQL Server, thanks by hawk · · Score: 1

      If you're using an OS that supports SQL Server for a commercially important project, you've got much bigger problems than which DB you're using, and should be firing a CTO who is ignorant of the last 25 years of OS security issues . . .

      hawk

    16. Re:SQL Server, thanks by Pseudonym · · Score: 1

      I think I misunderstood the point that the GP was trying to make. The phrase "how truly trivial that limit is" could be taken several ways.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    17. Re:SQL Server, thanks by KingMotley · · Score: 1

      Express is limited to 4 cores, and you are correct that there is no automatic backup scheduling feature, but most backup software (not a straight file copy) does a shadow copy and should work just fine.

    18. Re:SQL Server, thanks by JoshuaPK · · Score: 1

      I'll leave this here. It's an interesting series of videos that explain features of Postgres that SQL Server doesn't have. It also explains why many developers are moving from SQL Server to Postgres.

      Pluralsight Tekpub Postgres videos

    19. Re:SQL Server, thanks by Tablizer · · Score: 1

      Shadow copy does not work right on those database files.

  15. Re:Speed an issue by Anonymous Coward · · Score: 2, Insightful

    It's all warm and fuzzy until you run into the many MySQL data integrity "quirks" that would cause any other DB to return an error, but MySQL just handily stores the wrong data instead.

  16. update-ability by vulcanrob · · Score: 1

    I started with postgres years ago but I had some bad updates (on Debian) that broke some installations so I dumped it for mysql and haven't had a problem since. Perhaps an unfair, n=1 criticism, but there it is.

  17. Dice spam by grimmjeeper · · Score: 3, Insightful

    Like I'm going to trust a Dice "insights" page to tell me what DBMS to use...

  18. Re:Speed an issue by Anonymous Coward · · Score: 3, Interesting

    MySQL is easy until you want to do something interesting with it (which you usually do, at some point). Then it becomes a huge pain in the ass and you wish you'd done things right in the first place (i.e. you wish you'd gone with PostgreSQL).

  19. Real Database by Anonymous Coward · · Score: 1

    As a DBA; I would choose Postgres. Simply put Postgres has always strived to be a true RDBMS database where as MySQL was create aa a simple tool to solve a single problem. I don't consider MySQL a true RDBMS. Is MySQL ACID compliance? sure, now it is -- that is if configured correctly but the lack of it was historically promoted as a feature. Poor execution engine; given a complex queries MySQL falls apart where as Postgres handle the complex queries with ease. SQL compliance? MySQL is a disaster when it comes to compliance were as Postgres is more SQL complaint then even commercial databases like Oracle, SQL Server, etc.

    I would compare Postgres to Oracle, MySQL, etc. The only reason to go with Oracle over Postgres is for Oracle features (or large company support) that are not currently available in Postgres yet. i.e OracleRAC, Exadata, Parrell Query (a planned feature for Postgres 9.6), etc.

    1. Re:Real Database by Damouze · · Score: 1

      Open Source:

      * Postgres over MySQL and its relatives, although the Percona fork is actually pretty good. Firebird sounds interesting.

      Closed-source:

      * Sybase over SQL Server over Oracle.

      --
      And on the Eighth Day, Man created God.
    2. Re:Real Database by coder111 · · Score: 1

      Eh? Sybase? I work with it now, and it's the biggest piece of slow unfinished half-assed buggy shit database I've ever had to deal with.

      And we have like 3 expert DBAs maintaining it (who wrote books about Sybase), so it's not just me being useless at databases.

      --Coder

  20. Re:Speed an issue by crackspackle · · Score: 1

    MySQL is simply easier to use and administer. Postgres has a sharper learning curve. This made MySQL the go-to for shared web hosting (back before you could have a VPS for pocket change) and so it's what everyone ended up using for anything web related.

    That's true but it was also at the time much faster because it lacked support for most of the features expected in a modern relational database.like foreign keys, triggers, procedural languages, and complex data types..It was more or less the programmer's job to manage consistency but it ran like greased lightning.. Many new to the web and programming for that fact embraced the simplicity you point out and the perceived advantage in speed because they didn't understand the need for the relative advance features Postgres provided, which today are even more numerous.

  21. Re:FireBird... enough said by Unordained · · Score: 4, Interesting

    I happen to use and love FB, it's been rock-solid for me for over a decade now, but I've never pushed it for *performance* reasons. It's always been about the features: MVCC that always works (unlike Oracle's, and on-by-default unlike SQLServer's), transactional triggers (came in really handy), triggers that do what you intend (unlike SQLServer's), better temporary-table mechanisms than SQLServer, better stored procedures (selectable like a table-valued-function, but can read & write like a stored procedure). There's no equivalent to PostGIS, though, and there's no built-in replication method beyond shadow databases. And other stuff that a Wikipedia page would be better at explaining.

    If you're serious about speed, I'd love to see benchmarks to back you up. If you're trolling, I hope readers will consider Firebird anyway, it really is a good DBMS.

  22. ahem by kelemvor4 · · Score: 1

    Memsql.

    That is all.

  23. Re:I won't use a DBMS I cannot pronounce. by MachineShedFred · · Score: 1

    Could easily be post-gres-quell as well.

    And there's the issue.

    --
    Slashdot still doesnâ(TM)t support Unicode after it was added to the HTML standard in 1997.
  24. Re:Speed an issue by Anonymous Coward · · Score: 1

    It's all warm and fuzzy until you run into the many MySQL data integrity "quirks" that would cause any other DB to return an error, but MySQL just handily stores the wrong data instead.

    You mean like MySQL gold standard: "Hey, your disk filled up, I ignored it, and corrupted your entire database?"

  25. Happy PostgreSQL user by johannesg · · Score: 5, Interesting

    My software stores spacecraft testing data. Each test is good for a couple of gigabytes, and we run dozens each year. We use PostgreSQL because:

    - Rock-solid stability. Zero data loss after a decade and a half of operations. Zero problems of _any kind_, over that same period.
    - Great features and excellent standard conformance.
    - Documentation is absolutely excellent, best of any open source project I know of.
    - pgAdmin 3 allows trivial on-the-fly inspection of databases.
    - No licensing issues. No payment "per core", "per connection", or whatever other bullshit they've come up with now. Install where we like, as much as we like.

    We didn't choose MySQL because it lacked ACID compliance (data loss would be problematic), and because it has entirely too many weird gotchas. Sure, you can work around all of those... But why would you if you can also choose PostgreSQL?

    As for Oracle, that's what we used before PostgreSQL. Back in the days, you couldn't store more than 2000 characters in a string, their C interface was the stuff of nightmares, support tools were non-existent, and installing it yourself, or on anything that wasn't the Blessed HPUX Cluster, was impossible. We had two (minor) data loss events in three years, but that might have been a hardware issue. But the killer reason is of course licensing - with Oracle, we had one server on which all work had to take place. Now we have dozens, and setting up an ad-hoc server for some quick testing is trivial - both technically, and in terms of licensing.

    I can take a laptop to a customer site and do a demo or some work, without worrying about licensing. With Oracle you never know whether you are compliant or not, and being found to be non-compliant is extremely, extremely painful.

    1. Re:Happy PostgreSQL user by lgw · · Score: 1

      Does Postgre have reasonable DB replication? Or is losing a server a crisis?

      --
      Socialism: a lie told by totalitarians and believed by fools.
    2. Re:Happy PostgreSQL user by Gramie2 · · Score: 2

      > their C interface was the stuff of nightmares

      I see that you also have traumatic memories of Pro*C

    3. Re:Happy PostgreSQL user by StormReaver · · Score: 3, Interesting

      My software is heavy on financial calculations, and needs to be 100% accurate and reliable. MySQL isn't even a remote consideration, as it will happily, and silently, alter calculation results. PostgreSQL has been 100% reliable and accurate. MySQL is also very slow, whereas PostgreSQL is very snappy. We tried MySQL when we were evaluating databases, and it was laughable.

      My company has abandoned Oracle in favor of PostgreSQL for all new projects (and is rewriting a couple large projects to get off of Oracle), largely due to licensing, but also because Oracle lacks lots of basic functionality that we take for granted in PostgreSQL. We've also found Oracle to be very temperamental and fragile, whereas PostgreSQL is highly reliable and robust.

      It's really not even a fair fight. PostgreSQL is phenomenal.

    4. Re:Happy PostgreSQL user by neoform · · Score: 1

      If MySQL isn't even something you consider, how could you possibly know that it's slow compared to PG?

      --
      MABASPLOOM!
    5. Re:Happy PostgreSQL user by johannesg · · Score: 1

      Back in the day it didn't, so we mostly built our systems around hot failover clusters that work on the OS level. We also have our own replication solution running (this is part of the application level code, using Postgres triggers) which transfers the data on the fly through various security barriers for the purpose of remote viewing. This is not just simple replication though; it wouldn't work with any off-the-shelf solution anyway.

      We haven't really looked at the built-in replication since we already have working solutions that we are happy with, but it seems to be getting more capable with each successive Postgres release.

    6. Re:Happy PostgreSQL user by ebvwfbw · · Score: 1

      Glad it's improved. Maybe it's worth another look now. I remember in the past I upgraded a system and the next version of postgres wouldn't touch the old files. I had to get another machine, load it with the previous stuff, dump it and then move it and load. That took a few days. Fortunately it wasn't important to be online during that time. I'd still like those few days of my life back. Along with the time I've lost due to spammer bullshit. They owe me a few years.

      OTOH, I've never lost anything with mysql. It's been rock solid. Don't need the vacuum bullshit either. Maybe they've done away with that too.

  26. Re:I won't use a DBMS I cannot pronounce. by Anonymous Coward · · Score: 5, Informative

    Everyone I know just calls it "Postgres".

    This was its original name. It was the successor (Get it? "Post"?) to the RDBMS known as Ingres. There was some IP issue associated with the Postgres name when they went to open source it, so they gave it a new name: PostgreSQL. Yes, I agree it was a very poor choice, something only a true nerd would come up with.

  27. Postgres isn't so great by tribeca.kaji · · Score: 1

    I'm currently working on a large CRUD application and we've selected postgres as the db of choice. The organization uses both oracle and mysql for other applications. I really don't like the fact that the only difference between users and roles is a --no-password flag. If you're deploying to aws you have to be very careful to setup your local master user with similar privs as the aws account. While automating builds, we've had some major hiccups scripting the schema creation/cleanup due to the fact that only a table 'owner' has the privs to delete a table unless explicitly granted. Put simply, just pay attention to the privs the aws master user has. Don't over engineer your roles and users. I prefer DBeaver over PGAdmin. Dropping a schema requires all users to be disconnected which means that you'll need to execute a snippet of sql to disconnect everyone. Over time one becomes accustomed to these nuances but they are a pain to deal with at the beginning.

  28. Re:I won't use a DBMS I cannot pronounce. by RavenLrD20k · · Score: 1

    I've even heard it pronounced post-gres-kul.

  29. Re:I won't use a DBMS I cannot pronounce. by bytesex · · Score: 1

    Everything's better than 'gimp' right?

    --
    Religion is what happens when nature strikes and groupthink goes wrong.
  30. Butchered SQL by Sam36 · · Score: 4, Interesting

    The issue I quickly realized with mysql when I tried to replace an aging IBM DB2 data warehouse (with a total of 10 billion rows) was that Mysql only supported a small subset of the SQL standard. This quickly lead to almost all of our normal queries for BI not even being able to be ported. After trying to make it work anyway I eventually gave up. I had recently started using postgresql in my home server set up since I didn't know when direction Debian was going to take with the whole mysql/maridb debacle. So I convinced my boss to scrap the mysql idea and try again with Postgres. I was amazed at how well the SQL standard was supported by postgres. It also had a far superior query planner that mopped the floor compared to mysql performance for any query with more than a couple of joins. I also like how postgres isn't owned by any one entity like mysql. It is all I use now.

  31. Galera Clustering by darkain · · Score: 1

    Does PostgreSQL have decent geologically diverse multi-master replication yet? This is honestly the #1 reason why my projects all use MariaDB right now with Galera Cluster. Having the database on multiple servers in each region, it has been a dream when something like hardware failure or a power outage has happened. There is no longer a need or worry about master-slave with fail over and new master election, because all nodes act as masters in the cluster, and nodes can join and drop freely at any time without disrupting the rest of the cluster.

    1. Re:Galera Clustering by Unordained · · Score: 2

      Unfortunately, no. Postgres can only replicate to other instances operating on igneous rocks (e.g. obsidian and sovite) but the data gets lost if sent to instances hosted on chalk or gneiss. Might be fixed in 9.6, though.

    2. Re:Galera Clustering by rev0lt · · Score: 1

      If you're using Galera, I'd recommend you to read this - https://aphyr.com/posts/327-ca... . Depending on your application requirements, you may have unwanted behaviour from your cluster.

    3. Re:Galera Clustering by MrSome · · Score: 1

      If you're using Galera, I'd recommend you to read this - https://aphyr.com/posts/327-ca... . Depending on your application requirements, you may have unwanted behaviour from your cluster.

      And then read this, after that, as it is a response from Percona about the first article . https://www.percona.com/blog/2015/09/17/clarification-call-maybe-mariadb-galera-cluster/

    4. Re:Galera Clustering by JoshuaPK · · Score: 1

      Yes. The company 2ndQuadrant created something called Postgres BDR, and it is designed specifically for geographically diverse master-master replication.

      Here are more details.

    5. Re:Galera Clustering by rev0lt · · Score: 1

      Still, the problem exists, and their documentation is wrong. I'm not nitpicking, I do maintain a legacy Galera cluster and this are the kind of issues you can't easily control on a prebuilt application or with eg. ORMs.

  32. Re:I won't use a DBMS I cannot pronounce. by freeze128 · · Score: 1

    Damn, programmers are just way too clever for their own good.

  33. Re:FireBird... enough said by fyngyrz · · Score: 1

    So tell us why. I'm interested. Others will be too.

    --
    I've fallen off your lawn, and I can't get up.
  34. Re:Speed an issue by Hognoxious · · Score: 2, Funny

    If you want speed, go for MongoDB. It doesn't use joins & it's webscale, plus it can even use /dev/nul as storage for ultra-high throughput.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  35. All JavaScript by kanibalv · · Score: 1

    So, you have a Development, and you use Javascript (React, Angular, etc) for FrontEnd, NodeJS as BackEnd and Postgres with functions en PLV8, basically, you have to learn one language mainly .. JAVASCRIPT Easy and powerfull... PD: Complex calculation must be stores on a function on Postgres but not in Javascript.

    1. Re:All JavaScript by tomhath · · Score: 1

      Bullshit. Postgresql can store data in JSON and you can write functions in Javascript (or even better, Python).

    2. Re:All JavaScript by tomhath · · Score: 1

      Slightly misread GP, but limiting yourself to Javascript is foolish. Learn SQL, it's awesome. And Python, it's even more awesome. Javascript is for noobs.

  36. Re:Syntax by Anonymous Coward · · Score: 2, Informative

    That's because the PostgreSQL developers actually try to follow the ANSI SQL standards. MySQL and MSSQL? Not so much.

  37. Re: Speed an issue by Anonymous Coward · · Score: 1

    > Why configure your db to allow errenous data and then complain that it did exactly that?

    I think the question most of us are asking is, "why design your db to allow erroneous data??"

  38. Re:I won't use a DBMS I cannot pronounce. by wardrich86 · · Score: 1

    It's like a Gru, but less hungry.

  39. Different use cases by orlanz · · Score: 4, Insightful

    MariaDB and MySQL are basically the same thing. It comes down to licensing and vendor preference. But Postgresql vs MySQL vs Sqlite is just a question of what your use case is.

    Sqlite is for the prototyping, small projects, and small foot print. Its an amazing piece of software and solution for its niche. It is probably the most widely used DB out there. Extremely easy to setup, program against, and test. And very forgiving.

    MySQL is for the small to large size operations. Easiest to setup and manage for the feature set you obtain. It is fast and reliable and has a lot of 3rd party support. Most devs work in this area and I think this is why it is used so much. It is also many folks first "personal" testing DB and thus has a lot of momentum. You can use it at the enterprise level, but not really where it shines. Its like taking a Camry and putting a HEMI in it. It works, but that's all we can really say about it. Use when migrating an existing solution is too costly.

    Postgresql is large to enterprise level projects. I place it between MSSQL and Oracle. Its a wonderful software minus the "Dedicated Vendor Support" toilet paper that PHBs love. Extremely feature rich. But it needs enterprise level care and maintenance processes just like the others. You can use it on small projects, but its really over kill.

    This is the same discussion we been having since 2005. Each system has improved a lot, and their use cases overlap more, but the general logic on which is best to use is still the same.

    1. Re:Different use cases by MrSome · · Score: 2

      MariaDB and MySQL are basically the same thing.

      All RDBMS's are BASICALLY the same thing... but we're here to split hairs and talk about features that 5% of the population will find useful. :-)

    2. Re:Different use cases by Anonymous Coward · · Score: 1

      > But [Postgres] needs enterprise level care and maintenance processes just like the others. You can use it on small projects, but its really over kill.

      I *happily* use Postgres on my small project.

      The distro-provided config file was 100% acceptable for my needs. I haven't had to think about my DB in three years: it has Just Worked(TM), quietly in the background for all that time.

      If you're starting a greenfield project, or have a lot of latitude on an existing one, run -don't walk- away from MySQL towards Postgres. It doesn't silently corrupt your data through "helpful" type coercion. It supports UTF-8 out of the box. (Did you know that MySQL's "utf8" encoding is *not* UTF8? You want the "utf8mb4" encoding.) It doesn't let clients override server settings that are essential to correct interpretation of input data and inadvertently corrupt the data they're inserting. What's more, it's user documentation is *great*. Postgres is just *better*.

    3. Re:Different use cases by Dog-Cow · · Score: 1

      I don't think you understand the GP's point.

    4. Re:Different use cases by MrSome · · Score: 1

      Oh...I understand his point.

      He was trying to bring sanity to an endless discussion over a click bait article by expressing his opinion on how the different options stack up.

      I humorously referenced the original article's intent, which states that we should all switch to PostGres because:

      1. A few specific types of indexing.
      2. Table Inheritance
      3. JSONb

      If that's all the author could come up with... then we are splitting hairs and speaking to the minority of the population.

      I now feel dirty by having spent so much time discussing a horrible article that dice created solely to cause a stir.

  40. Re:Speed an issue by Major+Blud · · Score: 1

    Another reason I always felt that MySQL had a bigger footprint in the open source RDBMS market was because it was one of the first to have a native Windows version (1998). Postgres didn't get that until about 10 years ago. Of course that's not as big of a deal nowadays....

    --
    If you post as Anonymous Coward, don't expect a reply.
  41. Re:I won't use a DBMS I cannot pronounce. by PRMan · · Score: 1

    I've always heard it as "Post gress see quill"

    --
    Peter predicted that you would "deliberately forget" creation 2000 years ago...
  42. Re:I won't use a DBMS I cannot pronounce. by Tablizer · · Score: 2

    Funny names give OSS street-cred. The more it sounds like a bodily function, disease, and/or something from Mork's planet, the better in OSS circles. "Ogg Vorbis" is one of my favorites in that regard.

  43. Re:I won't use a DBMS I cannot pronounce. by CrashNBrn · · Score: 1

    They should of made querying the DB with regex a first-class citizen, and called it PostGrep.

  44. Re:I won't use a DBMS I cannot pronounce. by fredrated · · Score: 1

    I treat the g as silent: post-res-sequel. The web site used to have a button 'click to hear it pronounced' but that is gone and I never used it.

  45. Re:Speed an issue by binarstu · · Score: 2

    If you want speed, go for MongoDB. It doesn't use joins & it's webscale, plus it can even use /dev/nul as storage for ultra-high throughput.

    For those who haven't seen it, the parent is (I think) referring to this very amusing video.

  46. Exactly which replication? by coder111 · · Score: 4, Informative

    Depends on what kind of replication you need.

    It does pretty decent asynchronous master->slave replication.

    You can also have a mirror with synchronous writes.

    Multi-master replication- there are some 3rd party tools to do that, still pretty young and immature AFAIK.

    Clustering- there are some 3rd party projects to do that, some commercial.

    More info here: https://wiki.postgresql.org/wi...

    --Coder

    1. Re:Exactly which replication? by Billly+Gates · · Score: 1

      I have not seen sloan or any other replication based technology ever work reliably with Postgresql. As a result we no longer use it at work

    2. Re:Exactly which replication? by JoshuaPK · · Score: 1

      Did you ever try the Postgres built-in streaming replication? Kevin Grittner used to oversee the legal case databases for Wisconsin state courts. He has indicated several times that they've had better luck with Posgres replication than with SQL-Server replication.

  47. Transactional DDL by Captain+Damnit · · Score: 2

    PostgreSQL supports transaction DDL statements (e.g. ALTER TABLE, CREATE TABLE). MySQL doesn't. If you run a poorly-written upgrade script against a MySQL database and something goes sideways, your only recourse is to restore from backups. This means that any sane MySQL upgrade plan involves testing the upgrade on a replica of the database first. For large or mission-critical deployments that usually isn't an option.

    If all you're looking for is a cheap DB to serve a Wordpress blog about your hamster, MySQL away. Otherwise, use PostgreSQL. You'll sleep better.

  48. SQLite and PostgreSQL by Art3x · · Score: 3, Informative

    I recommend either PostgreSQL or SQLite. PostgreSQL is so easy to install and set up, though, that I would recommend SQLite only if you don't control the server.

    It's pronounced Postgres Q L, if you want to say it all the way. But it's okay if you just want to say Postgres. Even the database's default superuser is still called postgres.

  49. Re:I won't use a DBMS I cannot pronounce. by erapert · · Score: 1

    Throwing my hat into the ring:
    Postgresql: post-grey-ess-queue-ell
    MySQL: my-ess-queue-ell

    It's not a movie or a book and thus it's not "sequel". And I do not have a server which serves sequels therefore it's not "my-sequel-server" either.
    There's no 'R' in the acronym and so it's not "squirrel".
    Therefore, without any vowels to help guide pronunciation it must be pronounced letter-by-letter just as other such acronyms are: enn-ess-ay, see-eye-ay, yoo-ess-ay.
    But really I think both names suck. I honestly would prefer if they named them both after a kind of rock or precious stone. It would kind of match the theme of certain gemstone-named programming languages.

    MySQL => Marble || Musgravite
    Postgresql => Pumice || Painite
    SQL Server => Scoria || Serendibite

  50. Re:There's more to databases than SQL by tomhath · · Score: 2

    Postgres does JSON and NoSQL too. Really well in fact.

  51. Re:I won't use a DBMS I cannot pronounce. by Anomalyst · · Score: 1

    WTF is a gree?

    something that might eat you in the dark room of a twisty maze?

    --
    There is no right to feel safe thru security vaudeville at the expense of everyone's freedom, privacy and tax money.
  52. Re:Speed an issue by Anomalyst · · Score: 1

    But does it shard?

    Anne McCaffery is that you?

    --
    There is no right to feel safe thru security vaudeville at the expense of everyone's freedom, privacy and tax money.
  53. Love the GIS Extensions for PostGRES by shocking · · Score: 1

    A former employer uses PostGIS extensively. It's more sophisticated than the support offered in MySQL (which only uses planar geometry) and is pretty much the standard in the GIS world. I'm writing an app which logs ADS-B position reports from planes, and it makes it trivial to detect when aircraft are landing or taking off from an airport - you can query if a point's within a polygon, and depending on speed, rate of ascent/descent and altitude, can come to some conclusions.

  54. Re:Speed an issue by Pseudonym · · Score: 2

    MySQL is simply easier to use and administer.

    Having graduated from MySQL to PostgreSQL many years ago, that's easily the one thing that MySQL has over PostgreSQL.

    I don't do a huge amount of database administration, but it's fair to say that every time I need to (say) modify the access of a role in PostgreSQL, I still have to manually verify that every ALTER command did what I think it did, because at least one of them didn't. Oh, and some of it is done with the data dictionary tables and some is done with pg_hba.conf.

    That's not to say PostgreSQL is worse, of course; PostgreSQL lets you make fine distinctions which MySQL does not. But for every case that's likely to come up in practice, managing users and roles in MySQL is about ten times faster and simpler than in PostgreSQL.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  55. Re:FireBird... enough said by Pseudonym · · Score: 1

    Does it do OpenGIS?

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  56. Re:I won't use a DBMS I cannot pronounce. by Trogre · · Score: 1

    Sounds rather similar to OpenOffice vs OpenOffice.org

    --
    "Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
  57. What do you mean second look by Anonymous Coward · · Score: 1

    PostgreSQL is the first choice.

    When I see MySQL i immediately figure it's a sloppy, crap design by someone who don't know shit about databases and didn't bother to research.

    i have yet to be wrong.

  58. Re: Speed an issue by turbidostato · · Score: 1

    "So don't disable strict mode then! Why configure your db to allow errenous data and then complain that it did exactly that?"

    Because that's exactly why MySQL was chosen to start with: because it allows an easier head start for people that don't exactly know what they are doing.

  59. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  60. Re:Speed an issue by huge · · Score: 1

    Hey, don't be mean! MySQL supports it as well

    --
    -- Reality checks don't bounce.
  61. Re:PostgreSQL: optimized for SunOS4 by Galactic+Dominator · · Score: 1

    My RDBMS balls clang/llvm when I walk, boy.

    If it's taking you weeks to figure out how to profile Postgres, that's a you problem. Works for everyone else.

    --
    brandelf -t FreeBSD /brain
  62. Re:FireBird... enough said by Unordained · · Score: 1
  63. Availability/ease-of-configuration by phorm · · Score: 1

    Using MySQL as your DB is like using your smartphone as your camera. It's not that it's the best - in fact sometimes it might suck - but it's fairly easy to setup and use, is common, and it's there when you need in (available in most distributions and in VPS solutions etc).

  64. Re:Speed an issue by 16Chapel · · Score: 1

    I've had MySQL servers run out of disk space many times (oops) and never had any data integrity problems....

  65. Re:Speed an issue by JoshuaPK · · Score: 1

    Correction: MySQL used to be easier to use and administer.

    Can you describe what makes MySQL easier to use and administer in present time (versus a few years ago)? I think nowadays they are on-par with each other for ease of use, especially if you're using Windows.

  66. Re:Speed an issue by JoshuaPK · · Score: 1

    I know you were joking around, but in some (many?) cases, the document store mode of Postgres is faster than a comparable MongoDB installation.

    Here is one such study.

  67. Re:VMS is better than Unix - Banks use it by ebvwfbw · · Score: 1

    Wow a VMS troll. How quaint.

  68. Re:I won't use a DBMS I cannot pronounce. by OffTheWallSoccer · · Score: 1

    MySQL: my-ess-queue-ell

    It's not a movie or a book and thus it's not "sequel". And I do not have a server which serves sequels therefore it's not "my-sequel-server" either.

    I suppose you would be inclined to refer to MS-DOS as emm-ess-dee-oh-ess. And you certainly wouldn't have called it a "Das Box", because it wasn't a "box of das".

    Get real, dude. A lot of us say "sequel" because we don't want to spell it out (verbally) as ess-queue-ell all day long.

  69. Re:Speed an issue by OffTheWallSoccer · · Score: 1

    thank you for the link - I haven't laughed that hard in ages!

  70. Re:Speed an issue by Pseudonym · · Score: 1

    That's a problem with "what you think it did", not with the ALTER command.

    It could be both. In case it wasn't clear, I was saying that PostgreSQL's permission system is more powerful, so of course it's going to be harder to use and easier to get wrong. PostgreSQL lets you do more things, and consequently lets you do more things wrong.

    Multiple users (either an admin team, or advanced users who are trusted with (limited) SQL access), who all need to have the same permissions.

    Good point. That's not a case I've ever had to do, since every database I've ever co-admininstered was not only ever accessed by maintainers and middleware.

    However, I will note, for the record, that you didn't defend splitting access permissions between the data dictionary and pg_hba.conf. Implementing IP-based restrictions in PostgreSQL is even more painful than it is in MySQL.

    To claim that PostgreSQL is objectively better than MySQL (and it is!) is not to claim that every single thing in PostgreSQL is easier than it is in MySQL. I moved from MySQL to PostgreSQL probably ten years ago, and this is the only thing I find is less elegant. Thankfully, changing user permissions isn't a common occurrence in the majority of setups.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  71. Re:I won't use a DBMS I cannot pronounce. by erapert · · Score: 1

    There is no English word pronounced "doss".
    There is an English word pronounced "sequel" which means something entirely different from a database.
    Therefore I would say "em-ess-doss".