Slashdot Mirror


Ask Slashdot: Which OSS Database Project To Help?

DoofusOfDeath writes "I've done a good bit of SQL development / tuning in the past. After being away from the database world for a while to finish grad school, I'm about ready to get back in the game. I want to start contributing to some OSS database project, both for fun and perhaps to help my employment prospects in western Europe. My problem is choosing which OSS DB to help with. MySQL is the most popular, so getting involved with it would be most helpful to my employment prospects. But its list of fundamental design flaws (video) seems so severe that I can't respect it as a database. I'm attracted to the robust correctness requirements of PostgreSQL, but there don't seem to be many prospective employers using it. So while I'd enjoy working on it, I don't think it would be very helpful to my employment prospects. Any suggestions?"

287 comments

  1. Find better prospects? by anchovy_chekov · · Score: 5, Interesting

    I've used Postgres commercially for years, with a number of employers. It's a great DB and having dealt with MySQL, SQL Server, Oracle, et al I'd never go back - though the softies tell me that SQL Server is much better these days.

    I'd be surprised if you can't find plenty of work using Postgres. Maybe it's one of those things people don't feel comfortable talking about - like Delphi in the 90s. Plenty of people used it, but few would own up to what made up their "secret sauce".

    1. Re:Find better prospects? by Anonymous Coward · · Score: 5, Informative

      +1

      You don't see lots of people saying they use PostgreSQL online, because, no one has to bitch about it. It works, it works great, and its documentation is astounding.

      Everyone uses it, you just don't realize it, again, because no one bitches about it.

      I'll never touch MySQL after having used it for a product, what a POS

    2. Re:Find better prospects? by sexconker · · Score: 1

      I've used MySQL and (MS) SQL Server.
      MySQL is trash, trash, trash.
      I've never had a problem with SQL Server (though I've only touched versions up to about a decade old).

    3. Re:Find better prospects? by A+bsd+fool · · Score: 2

      Agree. If you are going to help (or, damn, even use) an OSS DB, make it PG. MySQL is garbage. MSSQL is not bad though. It's still fast as hell and has great ACID compliance, just expensive.

    4. Re:Find better prospects? by Anonymous Coward · · Score: 0

      As far as OSS, yes, Postgre. My company has used it quite a bit, and a lot of our clients use it (SQL Server is also very common in our client base).

      Of course, my company uses Sqlite more than anything else these days, but that's a combination of it being the best option for increasing amounts of our weird niche products these days, and then no central location that makes a good server-based database realistic enough beyond a few applications for the company-wide stuff (or rather, they don't think it's as realistic to give the other applications access at the database servers compared to just having a sqlite file on our file server... but that's a whole 'nother issue). Sqlite is nice, though. Not going to go as far as the likes of Postgre, but it has some nice applications.

    5. Re:Find better prospects? by Anonymous Coward · · Score: 0

      I've used Postgres, MySQL & MS SQL. I'd suggest learning Postgres & MySQL. They aren't so different that you're talking night and day. Most OSS languages and platforms support both.

      Dabble in both. Your understanding of databases won't suffer, and you'll set yourself up for being able to work on both. Remember, if you know how to find the correct answer and/or syntax to solve your issue, you can work on either one. Platforms, languages, databases, et al are not mutually exclusive.

      captcha: flexible

    6. Re:Find better prospects? by jellomizer · · Score: 1

      Postgres is my favorite as well. But in terms of employment. You should have strong database skills and less worry on the tool.

      The differences between PostGre MySQL, Microsoft SQL isn't that huge. There are a different set of functions and more advanced features. But those are a google away.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    7. Re:Find better prospects? by Anonymous Coward · · Score: 0

      MS SQL Server is a lot better these days, but if you want consistency PostgreSQL is still a safer choice. For example SQL Server will let you do a SELECT FOR UPDATE where you cannot expect it to have exclusive lock on the selected rows, so it is possible that they can change underneath before the end of your transaction. If you try to execute an outer join where the left-side row joined to nothing on the right-side with PostgreSQL, it will throw an error.

      MySql and Oracle acts similar to MS SQL Server, while DB2 acts more like PostgreSQL.

    8. Re:Find better prospects? by Nostromo21 · · Score: 2

      Ditto. Delphi was the last time I actually loved programming, back in the mid/late 90s. Then I got a job using VB6 & raw C - bleh!
      Progress wasn't a bad 4GL/RDBMS back in the day - wonder if it's still going...

    9. Re:Find better prospects? by Kjella · · Score: 2

      I've used Postgres commercially for years, with a number of employers. It's a great DB and having dealt with MySQL, SQL Server, Oracle, et al I'd never go back - though the softies tell me that SQL Server is much better these days.

      Feature wise I like Postgres better than SQL Server, intervals, arrays and being able to do all sorts of DDL in transactions is excellent. What seems to be the killer in the places I've seen it is Integration Services - being able to create easy workflows to get data into, out of and between databases. If all I wanted was a database to run an application against, I'd have no hesitation with Postgres. SQL Server has mainly been fighting Oracle and that's like Outlook fighting Lotus Notes, you don't have to be good just less awkward. Oracle can do extreme things but it's hard to administrate, hard to develop for and costs a ton of money. SQL Server is the okay database with fairly easy to learn management / integration / reporting / analytics tools. But if you mostly want to get your hands dirty and write SQL code Postgres is great. The only reason why I'd use SQL is if a web hosting provider offered it, as a backend database? No way.

      --
      Live today, because you never know what tomorrow brings
    10. Re:Find better prospects? by Kjella · · Score: 1

      The only reason why I'd use SQL is if a web hosting provider offered it, as a backend database? No way.

      Grr, that last sentence was supposed to say MySQL... redid the sentence, didn't notice.

      --
      Live today, because you never know what tomorrow brings
    11. Re:Find better prospects? by marcosdumay · · Score: 1

      That.

      After reading the title, I opened the thread to recomend either PostgreSQL or SQLite. The two are different enough that after a fast glance on the projects, DoofusOfDeath should know what option he likes most.

      Both are the most important free SGDBs out there (again, different enough that they don't compete), and even if few people are using them now (what I also doubt), they are posed to get most of the usage-share (as the term market-share doesn't really apply here) in the near future.

      Also, about MySQL, who wants to spend his time working with Oracle?

    12. Re:Find better prospects? by marcosdumay · · Score: 1

      Oracle can do extreme things...

      You can't push Oracle as far as you can push Postgres. Ok, there are lot of entities out there managing a huge amount of data on Oracle. But when you look at the extreme cases, the only relational DBMS you'll find is Postgres.

      Of course, if you push hard enough no relational DBMS will handle the load.

    13. Re:Find better prospects? by SplashMyBandit · · Score: 1

      Oracle is indeed king of the heap with regards to power and features. It also costs an insane amount of money. Unless you want to support Larry Ellison's habit of picking up women he wants to shag by offering them Ferraris (or so the stories go), then Postgresql is probably your next best bet.

    14. Re: Find better prospects? by mysqlbytes · · Score: 1, Redundant

      Use MongoDB, it's web scale!

    15. Re:Find better prospects? by aoteoroa · · Score: 1

      You have no idea how excited I was to see this headline on the front page. It seems like only articles about Apple and Android are able to start a good flame war. I miss the days when Slashdot was filled with heated discussions about Java vs C, or Postgres vs MS SQL. The most capable, and underrated database out there IMHO is firebird. Excellent for small to medium sized projects where full ACID compliance was necessary. Fast performance on modest hardware, small memory footprint (for a feature complete database server), can be embedded in an app, business friendly open source licence.

    16. Re:Find better prospects? by aztracker1 · · Score: 1

      Well... you could split the difference... I've used Firebird in the past (embedded for dev, and as a service in deployment), works really well... though not as feature-rich as PostgreSQL.

      --
      Michael J. Ryan - tracker1.info
    17. Re:Find better prospects? by Anonymous Coward · · Score: 0

      It is...a terrible ERP uses it, nested on top of MSSQL (?)

    18. Re:Find better prospects? by flacco · · Score: 1

      +1 for PostgreSQL.

      --
      pr0n - keeping monitor glass spotless since 1981.
    19. Re:Find better prospects? by Anonymous Coward · · Score: 0

      Another PostgreSQL user here. We've used it for years, only adding Oracle support to our product after customers asked for it.

    20. Re:Find better prospects? by Anonymous Coward · · Score: 0

      Also, about MySQL, who wants to spend his time working with Oracle?

      That's why Oracle bought MySQL... so you would soon prefer working with Oracle!

    21. Re:Find better prospects? by Anonymous Coward · · Score: 1

      Not to start a flame war.. but having worked on Oracle and MSSql for 10+ years (and having played around with PG and MySQL but not on Enterprise scale) I'm wondering how many high concurrency high availability massive databases you guys have worked on. There really isn't anything quite like what Oracle gives you (although, yes, you pay up the ass for it). AWR, ASH, RAC...

    22. Re: Find better prospects? by fatp · · Score: 1

      So you meant Oracle can't handle 'select for update' properly. This sounds like a really BIG disccovery to me. Consistence and transaction management have always been considered big strength of oracle. Any reference?

    23. Re:Find better prospects? by Anonymous Coward · · Score: 0

      +1

      Postgres i s so much better than all the others.
      MySQL is the absolute worst, what a horrible peice of software.

    24. Re:Find better prospects? by hazem · · Score: 1

      My only real DB experience is with MS SQL, and I've used it for several years now. I'd love to learn to use PG, but since most of my work is writing stored procedures and such, I really like having an IDE of some kind. Can you recommend a good equivalent to MS SQL's Management Studio? Something that provides a way to browse the structure, and when writing code/queries, provides auto-complete and syntax highlighting, etc?

    25. Re:Find better prospects? by tibit · · Score: 1

      I've been using Postgres continuously since the year 2000 or so. There weren't really any open source alternatives beck then, just as there aren't now, if you need its full feature set. Yes, there are some alternatives, but their feature set is but a subset.

      --
      A successful API design takes a mixture of software design and pedagogy.
    26. Re:Find better prospects? by tibit · · Score: 2

      For truly install-and-forget embedded uses, Firebird fails because it has nowhere near the kind of testing that sqlite gets. Sqlite is tested to ensure data integrity that lets it be used in avionics, for example. It's the only open source project out there that I know of that could even begin to claim that. In the recent years, if there's a problem with sqlite database corruption, I treat it like a failed memtest run: it means the hardware needs to be replaced.

      --
      A successful API design takes a mixture of software design and pedagogy.
    27. Re:Find better prospects? by kgrittn · · Score: 1

      Personally the biggest I've worked on was only a little over 3TB, and we only dealt with a few thousand concurrent users hitting it. We had no outages over the course of years attributable to the database. I know there are quite a few larger ones out there, but many of them consider the use of PostgreSQL to be a secret they don't want their competitors to catch on to. Some of the larger users who have already been mentioned are Skype, Instagram, and MyYearbook.Com. Of course some of the main DNS providers use PostgreSQL, which I imagine is reasonable high volume.

      You might be interested in Postgres-XC and the logical replication work with is going on currently.

    28. Re:Find better prospects? by Nostromo21 · · Score: 1

      I was referring to this RDBMS:

      http://www.progress.com/en/openedge/enterprise-rdbms.html

      Back in the mid 90s it used its own internal d/b, but could be attached to others via ODBC if needed. The 4GL language & RAD environment were more impressive, especially for quick development & deployment on 80x24 terminals in legacy environments. Days long gone...*sigh*

    29. Re:Find better prospects? by A+bsd+fool · · Score: 1

      The closest there is to that, I believe, are DBWrench and PGAdmin. I haven't used either in a long time, but FWIW, I don't use those kinds of tools on my MSSQL databases either. I write all my SQL the same place I write the rest of my code : UltraEdit.

    30. Re:Find better prospects? by jimbbb · · Score: 1

      +1 for Firebird

    31. Re:Find better prospects? by jbo5112 · · Score: 1

      Facebook uses MySQL for their main data. I can pretty well guarantee it's bigger than any Oracle install, handling 2.5 billion shares and 2.7 billion likes per day, and back in 2010, with half the current user base and much fewer mobile users who are constantly on, they were already seeing peaks of 13M queries per second, reading a peak of 450M rows per second and updating a peak of 3.5M rows per second. Early Dec, 2011 reports show 60M queries per second, and the number was dated then. Oracle wouldn't scale to that size if only because of license costs (cpu licenses for how many thousands of cores?), and Oracle has way too many bugs that they're too lazy or incompetent to fix. Just for the tech support, Oracle may have to hire more people than Facebook employs for MySQL. At Facebook scale, bugs show up rather quickly, compounded by Facebook's motto: move fast and break things. If Facebook hits a bug or limitation in MySQL, it gets fixed, not documented. Otherwise, complaints show up in the twitterverse.

      Their messaging system runs on HBase, which stores 6+ billion messages a day, handling a peak 1.6M ops/sec (compression enabled), with 45% write ops that average 16 records across multiple column families (all as of 10/2011). That only looks small when you compare it to their MySQL system. It's still faster than Oracle's SPARK SuperCluster (fastest on tpc.org's tpmC with 30 million), but HBase does it on 3.5", 7200 RPM disks, with probably an order of magnitude (or 2) more storage and potentially lower cost.

      They also archive 500+ TB/day of web logs into a Hadoop cluster, and batch process the data. It's quite a system, which only uses high capacity, 3.5", 7200 RPM drives and treats each computer as redundant, instead of having any redundancy (RAID, power, etc.) in the nodes themselves. Oracle hasn't even attempted to compete with Hadoop, and is instead offering instructions on using Hadoop and Oracle together.

  2. Postgres by Anonymous Coward · · Score: 5, Informative

    It's seeing a constant rise in usage. Also many projects (spacewalk!) have it as the only viable alternative to Oracle.
    Small companies with small to mid sized applications use it (see Jira or Fisheye, at Atlassian) as their main development platform.
    Also you shouldn't use your USA'ish perspective and only do something because it will benefit your job or future employer. OSS is about sharing, fun, knowlege and getting better. Getting better at your job is a welcome side effect.

    1. Re:Postgres by xaxa · · Score: 1

      The server is down at the moment, but here's a Google search for the document -- the UK's Open source software options / recommendations / something document.

      MySQL and Postgresql are both listed, along with some big users.

      Another example (not listed) is Ordnance Survey, the UK's National Mapping Agency (presentation).

  3. postgresql by silas_moeckel · · Score: 5, Insightful

    You will probably be happier in the fewer postresql shops. Think about it do you want to get it done quick and dirty or the right way?

    --
    No sir I dont like it.
    1. Re:postgresql by Anonymous Coward · · Score: 0

      Learn to use punctuation

    2. Re:postgresql by Anonymous Coward · · Score: 0

      He like things quick and dirty.

    3. Re:postgresql by SplashMyBandit · · Score: 4, Informative

      Absolute rubbish. Postgesql handles massive data sets and can scale down to run on modest hardware (with a multitude of choices in *free as in beer* operating systems). So I wonder what evidence you have to support your counter-factual statements?

    4. Re:postgresql by Anonymous Coward · · Score: 1

      he decided to try it once on red hat 5.2, it didn't compile, because configure didn't find the devel libs, and he gave up on it. the mysql binary on the other hand was up and on in no time, running as root and with no password.

    5. Re:postgresql by Anonymous Coward · · Score: 0

      Plus, Postgres is on par with MySql in terms of speed, often times even faster.

    6. Re:postgresql by Anonymous Coward · · Score: 0

      me thinks you should read his comment again, and then yours. appears you agree.

    7. Re:postgresql by tkalfigo · · Score: 1

      I'm not quite that sure that nowadays Postgres has that many fewer job opportunities than Mysql. I'd say that this is more of a belief from the earlier half of the past decade. And by job opportunity I don't mean "oh! we have a project (i.e. website) that uses MySQL as a backend". Job opportunity should translate to "we have someone to run the thing". And given that Mysql behaves as a DBMS for very loose use of the term (i mean so loose, you wouldn't believe it was a DBMS not even on Xmas eve), you are probably closer to getting it done "quick and dirty" with Postgres exactly because it does it "the right way". Now with respect to the OP's question: Pg is an easy pick over Mysql contribution-wise. If you do indeed have a DB theory background, then barely using each one of the two for a couple of weeks should be more than enough for you understand the difference in quality (features and implementation).

  4. If you are an active member by Anonymous Coward · · Score: 5, Interesting

    If you are an active member committing to a major database's code, then it will help your employment prospects no matter what. If you're committing to PostgreSQL regularly, that's strong evidence you are good at what you do.

  5. Video by Anonymous Coward · · Score: 0

    I don't want to WTFV. Does anyone have a transcript, so I can RTFA instead?

    In other words, "what is wrong with MySQL?", and please give your answer in text form.

    1. Re:Video by JonySuede · · Score: 2, Interesting

      Oracle

      --
      Jehovah be praised, Oracle was not selected
    2. Re:Video by frostfreek · · Score: 2

      The video shows a number of ways that MySQL seems to insert questionable data; ignoring NOT NULL, inserting default values when no default is specified, etc...

      There are two databases that I have had to repair... Hypersonic and MySQL. MySQL I have to repair regularly in my MythTV box. Hypersonic states it should not be used in a production system. I have never had to repair Postgres, MSSQL, or Oracle.

    3. Re:Video by vlm · · Score: 1

      MySQL I have to repair regularly in my MythTV box.

      What are you doing, that I'm not? I have a heavily used system for 8 years or something like that and have never had to repair it.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    4. Re:Video by jedidiah · · Score: 1

      Power outages perhaps?

      MySQL is bad about dealing with unreliable hardware or power.

      It has poor defaults in this regard that seem to indicate a culture that values performance over integrity. That kind of thing tends to turn off a lot of RDBMS users.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    5. Re:Video by Anonymous Coward · · Score: 0

      They could always enabled strict_all_tables and things like ignoring NOT NULL and so on will not happen. I will note that Postgres also inserts a default value of NULL (same as MySQL) when no value is given and the column has no default value.

    6. Re:Video by 19thNervousBreakdown · · Score: 2

      I'm curious if those are still actually existent in >=5.0. I know I started avoiding MySQL in the bad old days, but from what I understand it's made a lot of strides in the conformance department.

      I haven't bothered to look at it again since then, since Postgresql meets all of my needs, but I am curious. It can't still be that bad, can it? I can see all the bad old behavior being hidden behind default for legacy users, that's reasonable, but silent data corruption (and whether you're truncating strings or inventing dates when you hit NULL, you're corrupting data) doesn't seem like something people would put up with these days.

      --
      <xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
    7. Re:Video by Anonymous Coward · · Score: 1, Insightful

      I will note that Postgres also inserts a default value of NULL (same as MySQL) when no value is given and the column has no default value.

      So if the default value is NULL then Postgres uses NULL as the default? SHOCK AND FUCKING HORROR. If that's the only "complaint" you can make about Postgres then it's basically perfect.

    8. Re:Video by Anonymous Coward · · Score: 0

      I actually ran into MySQL ignoring my NOT NULL also the other day and was puzzled as to why.

    9. Re:Video by Anonymous Coward · · Score: 0

      Power outages perhaps?

      I was teaching PostgreSQL a couple of years ago. I used to say "sometimes unexpected things would happen in the middle of a transaction..." and pull out the power cord. Then I showed how it recovered itself. That demonstration never went wrong.

    10. Re:Video by Anonymous Coward · · Score: 0

      We had salesmen who liked to do that to get a client - or at least we did until one pulled out the wrong plug, one which powered a server we ran in-house for a client.

    11. Re:Video by PlusFiveTroll · · Score: 1

      I wonder if it's on a MyISAM or InnoDB table type, or if he has cheesy drive that is lying about write barriers, or if he's using a kernel that doesn't treat barriers correctly. You do lose a lot of write performance making mysql act safely.

    12. Re:Video by Eskarel · · Score: 4, Insightful

      The simplest way to say it is that MySQL is really more of a data store than a database. You can store stuff in it, and it'll get the data back reasonably efficiently, but in terms of actually operating as a proper compliant database for critical information it just isn't designed that way. It works great for storing the back end for your web server, but if you wanted to store complex data in it and needed it to be 100% accurate, transactional, and reliable, the product just doesn't fit the bill. For all that it's got a paid "enteprise" edition, it's really more in the space of something like SQLite or SQL CE than it is in the space of Oracle, and again it's not an issue of whether it can scale or whether it's buggy, it just simply isn't designed to be compliant to the required level. That's largely the reason it works so well as a LAMP back end and is so easy to administer, but it just isn't fit for purpose for much more.

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

      I have to repair regularly in my MythTV box.

      Sorry, but I'm calling BS on this one. I've been using MythTV since about 0.18 now, and I've never had to repair, other than running the repair command after a power loss. WTF are you doing to your system?

    14. Re:Video by Fallingcow · · Score: 4, Informative

      Most of what's shitty about it is the MyISAM storage engine, which does approximately dick-all for enforcing integrity. It doesn't even have foreign key constraints. IIRC it can't do transactions either. The trade off is that it's slightly faster for some operations *eyeroll*

      If MyISAM is good enough for your application then you may as well—no exaggeration—just use MongoDB or something.

      InnoDB is much better. It's got some of the same not-confidence-inspiring quirks shown in the video but at least it supports transactions and foreign key constraints.

      Biggest remaining differences off the top of my head are that Postgres supports a shitload more data types and data operations (many through plugins) like stuff related to geographic data and key-value stores (hey, you got NoSQL in my SQL!), and that Postgres has real separate databases, not just separate schema like MySQL, the difference there being strict separation of the data, so you can't, say, do a SELECT across two databases or even tell that there are other databases if you've only got a user account on one of them.

      Lots of other under-the-hood stuff, I'm sure, but those are the main ones I can think of from a user's perspective.

      Postgres is way, way more powerful, MySQL is (slightly) more widely supported and (IMO) the free tools, both command line and GUI, for working with it are easier to learn and generally friendlier.

      MySQL's a completely miserable excuse for a relational database if you use MyISAM; it's only a mostly miserable excuse for a relational database with InnoDB.

    15. Re:Video by aiht · · Score: 1

      They could always enabled strict_all_tables and things like ignoring NOT NULL and so on will not happen. I will note that Postgres also inserts a default value of NULL (same as MySQL) when no value is given and the column has no default value.

      Of course it will, what did you expect? The point is that if you specified NOT NULL and then don't give it a value then it will refuse to let you insert that row BECAUSE IT IS INVALID.
      How is that so hard to understand?

    16. Re:Video by jedwidz · · Score: 1

      The silly thing is that having a default value of NULL and having no default value (effectively defaulting the default value to NULL) commonly aren't the same thing.

      It's just the sort of nasty little corner case that breeds bugs. Like when many years ago Sybase's bulk loader entered random data when inserting NULL into a column with a default of NULL, and ruined our week. With no default, it would've worked fine.

    17. Re:Video by slashmojo · · Score: 1

      Me too.. its many many years since I had any such problems with mysql and back then it was only when using the myisam storage engine and shitty hardware. Using innodb "just works" and it has never failed at recovering itself in the event of a hardware/server crash. I use it with truckloads of data and it does the job just fine as long as it is configured reasonably well.

    18. Re:Video by TheLink · · Score: 1

      Postgresql assuming the default is NULL when you don't explicitly set a default value seems reasonable. I don't want to have to type extra crap.

      If you don't want nulls AND want a value to be explicitly specified then the proper way (which is supported in Postgresql ) is to create the column with "NOT NULL DEFAULT NULL".

      --
    19. Re:Video by tibit · · Score: 1

      Why does making the decision about data storage backends is something that's touted as being good in any shape or form? Ultimately the query optimizer has all the information that's needed to make such a decision. If I want an SQL database, that's what I want, not any particular backend. I shouldn't need to worry about it.

      --
      A successful API design takes a mixture of software design and pedagogy.
    20. Re:Video by frostfreek · · Score: 1

      I have my mythtv box all set up with mythwelcome; it wakes up when it needs to record something, and powers off when it's done, provided I'm not actually watching something at the time.

      Maybe that's the difference?

    21. Re:Video by frostfreek · · Score: 1

      I am using an admittedly older MythDora (umm, 10?) system with MythWelcome set up to use the alarm to wake it up when it needs to record something, and power it off when idle.

      It usually decides to act up when I am away for a week on business or something, and then everyone's mad at me when I get back!
      So I finally added a "mysqlcheck --autorepair" to the bootup sequence.

      As a complete aside, I just ran out of disk space while still having 100GB free... ran out of inodes. Some cron job was periodically sending emails, and I had over 500,000 unsent emails in /var/spool. Took a good while to delete all those emails.

    22. Re:Video by slashmojo · · Score: 1

      It's a matter of using the right tool for the job.. to use a car analogy - you could drive a Fiat Panda in a Formula 1 race and chances are you would still get to the finish line eventually but it's not really the best car for that particular job, however it is fine for getting around town and you'd look a bit silly going to the supermarket with an F1 car! (no room the shopping)

      There are many storage engines available for mysql these days and each have their good and bad points so choose one based on your expected usage.

    23. Re:Video by tibit · · Score: 1

      So, what other major SQL database products offer this choice? Why, or why not? There's your answer I think.

      --
      A successful API design takes a mixture of software design and pedagogy.
    24. Re:Video by Anonymous Coward · · Score: 0

      It's a matter of using the right tool for the job

      No, it's a matter of having to pick from a set of tools that doesn't have anything that matches your requirements exactly, and where the different tools have all sorts of subtle, obscure, poorly-if-at-all-documented differences in functionality, semantics and performance.

    25. Re:Video by MikeBabcock · · Score: 1

      I'd love to see that list of failures running on InnoDB with a modern version of MySQL. Not to be argumentative, but it can't be that long of a list.

      cf http://www.wikivs.com/wiki/MySQL_vs_PostgreSQL#MySQL:InnoDB

      --
      - Michael T. Babcock (Yes, I blog)
  6. If "employment prospects" Are All That Matter ... by l0ungeb0y · · Score: 0

    I recommend setting yourself about fixing some of that long list of fundamental flaws in MySQL. To potential employers it will show that you are a good little worker bee who can set aside personal preferences and feelings to endear himself to corporate drudgery.

    A win/win in your case if you ask me -- I see a shared cube and a long task list of bug fixes in your future.

  7. SQL Fairy by Anonymous Coward · · Score: 0

    http://sqlfairy.sourceforge.net

    Not sure what the status of the project is, but it's a noble cause.

    1. Re:SQL Fairy by Anonymous Coward · · Score: 2

      Their logo is awesome.

    2. Re:SQL Fairy by vlm · · Score: 2

      0.11016 was uploaded six weeks ago, its not dead.

      Its VERY popular internally to auto-generate DB diagrams from midnight cron jobs etc. I'm sure there's other ways to do it. But this was easy, fast, and the diagrams look good enough.

      It can do a lot more than generate diagrams.

      What it needs is a new artist. The dude in a tutu as a logo...

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    3. Re:SQL Fairy by c0lo · · Score: 1

      Their logo is awesome.

      Nope. For awesome, it should wear boots and you gotta believe me, I tell you no lies.

      --
      Questions raise, answers kill. Raise questions to stay alive.
    4. Re:SQL Fairy by mooingyak · · Score: 1

      Their logo is awesome.

      Nope. For awesome, it should wear boots and you gotta believe me, I tell you no lies.

      Son, son, you've gone too far.

      --
      William of Ockham had no beard. The most likely explanation is that it was chewed off by squirrels every morning.
    5. Re:SQL Fairy by Anonymous Coward · · Score: 0

      Their logo is awesome.

      Nope. For awesome, it should wear boots and you gotta believe me, I tell you no lies.

      Son, son, you've gone too far.

      'cause smoking and /. posting is all that I do (can't trip no more)

  8. Hierarchical, er "NoSQL", DBs? by xxxJonBoyxxx · · Score: 1

    >> Any suggestions?

    Hierarchical DBs have been making a comeback recently, often reclothed as "NoSQL" databases specializing in "big data" analysis. There seem to be many opportunities to make these databases more applicable to current problems or just easier for relational DBAs to understand and implement.

    1. Re:Hierarchical, er "NoSQL", DBs? by Trepidity · · Score: 1

      Or even, in some cases, to just work better in the regular bug-fixing kind of way. They're much newer and less well-tested on average, so there's a ton more low-hanging fruit than with Postgres.

    2. Re:Hierarchical, er "NoSQL", DBs? by Anonymous Coward · · Score: 0

      Take a look at Cache or one of the PICK like databases. If you understand those you will always get work simply because everyone else is applying for the relational DB jobs.

    3. Re:Hierarchical, er "NoSQL", DBs? by vlm · · Score: 2, Insightful

      Nosql DBs suffer pretty bad from Inner platform effect, where the users end up implementing their own classic SQL-RDBMS on top of the nosql. "I don't have joins... well I'll write on in ruby". You could probably do the community a huge service by PROPERLY re implementing at least a API compatible mysql system on top of a variety of various nosql services. That way devs could be buzzword compliant, while not actually having to change anything (well, the sysadmins will throw fits at the change for sake of change, but no one cares about them)

      http://en.wikipedia.org/wiki/Inner-platform_effect

      The ones that don't inner-platform aren't really using them as "databases" so much as simple persistent stores. Like dumping data into a CSV file. Maybe persistent stores with advanced parallelization, but just persistent stores.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
  9. Step One: Lose the Ego by Anonymous Coward · · Score: 1

    Maybe I'm reading what you're asking wrong, but I mean really, your base assumption of joining an OSS database project is to lend your self-admitted rusty expertise? No thanks.

    If you want to get up to speed join a site like Stack Overflow and start ploughing through database questions, it'll exercise your brain and probably help some people who need it.

    Then when you are in the groove again join a project.

    1. Re:Step One: Lose the Ego by jchevali · · Score: 1

      It is a question of honesty and of realistic expectations: If you disclose to an employer that the only reason you sought to commit a minor edit to an open source project was for him to score you more highly, not because you really wanted to do it, you'll look like dishonest (of course you may prefer to conceal the real reason but that wouldn't make you less dishonest - perhaps it will only add premeditation).

      As for realistic expectations, if you think that a minor edit to an OS project will score you any points, think again: OS project contributors are really a hierarchy, and only the most committed contributors really get noticed. Listing a contribution on your CV that nobody can find let alone appreciate in context unless you'll point them to the exact URL is like saying you once threw a drop of water in the ocean. As if the ocean would care!

      Don't think of making a big fuss of small things. And if you won't seek to do that, don't do small things unnecessary (and not particularly if it may take you great deal of work to get them done). Become a good user (of any database), find the job you want, and leave committing to the codebase to those who really care.

  10. Welcome to Life by SledgeHammerSeb · · Score: 2

    Only you can answer that question. Good luck!

  11. Re:use mysql by cheater512 · · Score: 1

    Yeah some of the quirks in that video are like Javascript's ones.
    They appear to be major wtf's however real world usage never hits them.

    The quality of a product isn't determined by the number of quirky edge cases it has.

  12. MariaDB by jakimfett · · Score: 4, Informative

    You might want to take a look at MariaDB, it's a continuation of the MySQL project by the original author of MySQL.

    --
    Bits of code, random ramblings: jakimfett.com
    1. Re:MariaDB by bluefoxlucid · · Score: 1

      Maria and Percona fix a lot of MySQL's fundamental flaws, yeah. Came here for this.

  13. Salesforce.com is hiring PostgresSQL guys like mad by echtertyp · · Score: 5, Insightful

    I actually love MySQL, but FWIW, someone noted a while back that Salesforce.com has announced intent to hire about 50 top gun PostgreSQL guys in the coming year. It seems obvious that they are preparing to unhook the money siphon leading to Oracle. Assuming Salesforce follows through, all the herd-following executives in the U.S. will want to do the same. So I predict that demand for PostgreSQL talent will be pretty good for many years.

  14. Thinly veiled stab at MySQL by Anonymous Coward · · Score: 0

    Seriously? This is what passes muster for an Ask Slashdot these days? "Hey guys, I think MySQL sucks and Postgres rocks. Give me a job?"

    1. Re:Thinly veiled stab at MySQL by GingerDog · · Score: 1

      I couldn't help but think the poster/story was just looking to ignite the normal PostgreSQL vs MySQL comments.

      --
      The Ginger Dog
    2. Re:Thinly veiled stab at MySQL by arkane1234 · · Score: 1

      Everyone knows the right answer is Couchdb... right guys? ... right? ... Hello?

      --
      -- This space for lease, low setup fee, inquire within!
    3. Re:Thinly veiled stab at MySQL by DoofusOfDeath · · Score: 5, Informative

      Actually I wasn't. I figured the /. crowd might have some knowledge about the relative acceptance and prevalence of the two databases in European business settings, and where things are moving.

      For example, if the consensus was that PostgreSQL was so rarely used that it was a dead-end, then I'd suck it up and work on MySQL despite my misgivings.

      But as long as PostgreSQL is showing some signs of life in a business setting, I'll perhaps try to pitch in on that.

      I also figured that maybe there was some other up-and-coming database out there that I should take a look at. The /. community is good at bringing alternatives like this to light.

      As far as flames, I should have been clearer about what I meant by "design flaws". I realize that it's somewhat subjective. What I should have said is that MySQL's behavior strikes me as a lot more surprising in some cases than does PostgreSQL's, and I didn't think that was going to chance. (Probably in a similar vein, I like strongly typed programming languages and compile-time correctness checks. I think it's a mindset kind of thing.)

    4. Re:Thinly veiled stab at MySQL by TheSpoom · · Score: 2

      While you're at it, do me a favor and add "ON DUPLICATE KEY UPDATE" to Postgres. (If necessary, also add it to an SQL spec.) Thanks!

      --
      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
    5. Re:Thinly veiled stab at MySQL by jakimfett · · Score: 1

      I also figured that maybe there was some other up-and-coming database out there that I should take a look at. The /. community is good at bringing alternatives like this to light.

      Did you take a look at MariaDB? It's a continuation/rework of MySQL by the guy who created MySQL...

      --
      Bits of code, random ramblings: jakimfett.com
    6. Re:Thinly veiled stab at MySQL by DoofusOfDeath · · Score: 1

      Actually, I started looking at it when people mentioned it in this conversation.

      After skimming their website, I'm still a bit sketchy on why MariaDB exists. It sounds like a fork, except that they seem to periodically re-sync with Oracle's MySQL releases. Is the idea to just keep on developing open-source versions of whichever features Oracle adds to MySQL?

    7. Re:Thinly veiled stab at MySQL by Anonymous Coward · · Score: 0

      Is it web scale?

    8. Re:Thinly veiled stab at MySQL by Zero__Kelvin · · Score: 1

      I might have thought that, until I noticed that an overwhelming majority of the posts here back up the claim that Postgres is much better.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    9. Re:Thinly veiled stab at MySQL by Lordrashmi · · Score: 1

      Having a truly open source (and community developed) fork is one of the main reasons, however we actually have been developing features independent of what oracle does. Pretty much the entire MySQL optimizer team left Oracle and moved to the MariaDB project. They took the time to fix subqueries so they were actually usable and improve many other features. Take a look at the comparison:

      https://kb.askmonty.org/en/mariadb-vs-mysql-features/

    10. Re:Thinly veiled stab at MySQL by Anonymous Coward · · Score: 0

      I would stay away too. Why are they still talking about MyISAM? How good is the InnoDB replacement, really? i think the mere existence of MariaDB is reason enough to stay away from the whole MySQL clusterfu*c.I've worked with Postgresql and MySQL, there is no doubt postgresql is used professionally. I don't hate mysql (they both need competition, remember :) but from a developers perspective I've found all the nonstandard quirks and the fact that it takes forever to alter large innodb tables a pain in the butt.

    11. Re:Thinly veiled stab at MySQL by DoofusOfDeath · · Score: 1

      Thanks, I'll have a look. What about those issues raised in the video I linked to - the issues which I'd call correctness issues.

      Has anything / will anything be done about that behaviors, or are they now permanent fixtures in the software?

    12. Re:Thinly veiled stab at MySQL by bluefoxlucid · · Score: 1

      As someone else mentioned, MariaDB and Percona are definite directions to go. You can replace MySQL directly with them--same protocol.

    13. Re:Thinly veiled stab at MySQL by Anonymous Coward · · Score: 0

      Take a look at Firebirdsql

    14. Re:Thinly veiled stab at MySQL by Sigg3.net · · Score: 1

      Not being a DB admin, I get the notion that MySQL has the market share, while Postgre the future. So I'd think it would be easier to get a job within MySQL for statistical reasons.

      I wouldn't plan my future on statistics though. If you do meaningful things, life is more meaningful. Same goes for funny.

  15. Re:use mysql by MrEricSir · · Score: 2

    The quality of a product isn't determined by the number of quirky edge cases it has.

    Sure it is. But product quality has little to do with a product's popularity.

    --
    There's no -1 for "I don't get it."
  16. What not to do by Anonymous Coward · · Score: 0

    Don't go into either/any project as a new contributor with the attitude "you're doing it all wrong!" - MySQL may have some shortcomings, but if you determine that it's popular enough that you decide to contribute to it, it's good to start by making incremental changes and fixing existing bugs rather than trying to tackle what you see as the project/product's shortcomings.

    If you go in with the attitude "I don't respect your project" or "you're doing it all wrong", expect not to be accepted by the community and also that you won't have much fun. OSS projects are a meritocracy (generally), and you have to start at the bottom, no matter how good you think you are. Your own opinions of your skills don't matter - what matters is that you impress those who run the project enough to have your voice merit being heard.

  17. Postgres, Ingres, NoSQL by dgatwood · · Score: 1

    I'm attracted to the robust correctness requirements of PostgreSQL, but there don't seem to be many prospective employers using it.

    Apple is using it (in their Server OS, anyway), so that's one big Postgres-using prospective employer that's worth noting.

    As for other Open Source databases, there's also Ingres and all the various NoSQL databases.

    --

    Check out my sci-fi/humor trilogy at PatriotsBooks.

    1. Re:Postgres, Ingres, NoSQL by dragonquest · · Score: 1

      I agree with the Ingres option. It widely recognized, open source and in need of contributers.

      --
      "Never try to tell everything you know. It may take too short a time."
    2. Re:Postgres, Ingres, NoSQL by Anonymous Coward · · Score: 0

      But we don't use it in any data center or with any production app. It's meant for our user-grade servers.

    3. Re:Postgres, Ingres, NoSQL by dgatwood · · Score: 1

      Although that's probably true for public-facing sites (I have no idea what databases those folks run, but I'd imagine any of their SQL-based databases rhyme with Boracle). But I think you're forgetting about all the internal project teams who are using those user-grade servers, the team that maintains the software for those user-grade servers, etc.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

  18. Big Data by elliot.mackenzie · · Score: 1

    The real money these days is in Big Data, not RDBMS. If you are just starting out now, start with what's still big in five years, not what was big five years ago.

    1. Re:Big Data by sexconker · · Score: 1

      The real money these days is in Big Data, not RDBMS. If you are just starting out now, start with what's still big in five years, not what was big five years ago.

      "Big Data" is horse shit.
      It's code for "stuff it all in a pile and maybe someday we can get some of it out, but not in any order that makes sense, and not in any reliable fashion".

    2. Re:Big Data by jedidiah · · Score: 1

      "Big" projects tend to limit the size and number of companies that are hiring. You may not actually like the sorts of companies that are in that group. "Big" projects can sound glamourous but often aren't all they're cracked up to be.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    3. Re:Big Data by elliot.mackenzie · · Score: 2

      "Big Data" is horse shit. It's code for "stuff it all in a pile and maybe someday we can get some of it out, but not in any order that makes sense, and not in any reliable fashion".

      The problem with arguments like this is that it overlooks the fact that there is a lot of value in data that doesn't need ordering in advance, and where any missing gaps in data are not critical failures. Not all data can or should be stored in such systems, but for that which can, there are much better ways to store it than RDBMS. RDBMS isn't going away, but it's certainly been commoditised. In time, so will Big Data type storage, but until then it's a good thing to make good money on if you are starting out in this field precisely because it is relatively new, and also is not going away.

    4. Re:Big Data by Anonymous Coward · · Score: 0

      Gosh, guess I should stop using Cassandra for time series data, and forget all the performance gains its given me on huge data sets. Maybe if you organize it like a pile, a pile is what you get?

    5. Re:Big Data by sexconker · · Score: 2

      Gosh, guess I should stop using Cassandra for time series data, and forget all the performance gains its given me on huge data sets. Maybe if you organize it like a pile, a pile is what you get?

      All else being equal, if a non-relational database is giving you significant performance gains, it just means you setup your relational database incorrectly.

    6. Re:Big Data by sexconker · · Score: 1

      "Big Data" is horse shit.
      It's code for "stuff it all in a pile and maybe someday we can get some of it out, but not in any order that makes sense, and not in any reliable fashion".

      The problem with arguments like this is that it overlooks the fact that there is a lot of value in data that doesn't need ordering in advance, and where any missing gaps in data are not critical failures. Not all data can or should be stored in such systems, but for that which can, there are much better ways to store it than RDBMS. RDBMS isn't going away, but it's certainly been commoditised. In time, so will Big Data type storage, but until then it's a good thing to make good money on if you are starting out in this field precisely because it is relatively new, and also is not going away.

      The only data you should throw in the big data pile is data you don't care about getting out or making sense of later.
      You may as well flatfile it at that point.

    7. Re:Big Data by lgw · · Score: 1

      "Big Data" is, in essence, just a scalable flatfile with better searching. That turns out to be a very useful thing in the real world, where you have no idea what sorts of queries you might run when you store the data, and need to handle a lot of "only ever going to run once" queries.

      If your "big flatfile", for example, resides entirely in memory on 1000 cheap servers, you can be remarkably fast with unindexed searches and poor structure. Or you might come along years later when you know what you want, and build a RDBMS from the data it turned out you actually cared about from all that crap you saved.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    8. Re:Big Data by aztracker1 · · Score: 1

      There are many places where relational databases aren't as effective... a document store can give you a single hierarchical record that an RDBMS would have to make *many* joins to accomplish, and nesting data/lists in an rdbms response means multiple queries, or odd post-processing. Beyond this, depending on your aggregation needs, this is a big failure in a typical sql based rdbms.

      --
      Michael J. Ryan - tracker1.info
    9. Re:Big Data by Anonymous Coward · · Score: 0

      LOL What!?!? a 'document' ? please don't tell me you're referring to XML

    10. Re:Big Data by bluefoxlucid · · Score: 1

      The whole thing sounds like a nebulous solution looking for a problem. The problem seems to be "we want to know stuff," which is the same as the business problem "We want to make money." Essentially you know there's something (data, consumers) out there and you want a strategy to leverage it. Which means you have nothing and are just being a horse shit moron.

    11. Re:Big Data by ultranova · · Score: 1

      From the Wikipedia page, it seems like a document store could be built on top of a standard relational database with middleware that alters the schema as needed, and it should even be pretty fast. How significant is the advantage of using a dedicated document store, especially given that relational databases have decades of head start in optimization?

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    12. Re:Big Data by lgw · · Score: 1

      No, it was all written in response to very severe problems. Hadoop came from logfile parsing. When your records are an immense set of logfiles, from many different apps on thousands of servers, and not all in the same format, you can do some very impressive analytics on Hadoop, and nothing at all with a RDBMS (except long after the fact).

      NoSQL solves the "object-table impedance mismatch". The simple fact is: hibernate style automatic table generation for persistance of objects creates a very marginal relational database - because it's not relational! It's crap if you need any performant, complex queries of any kind.

      Face it, a relational dabate is only worthwhile if you know ahead of time what you'll be using it for, and design the schema intelligently to work well for those needs. It's crap if:
      * You don't know what to index ahead of time.
      * You don't know enough about your data ahead of time to normalize it (or do any other of the basics of DB hygine).
      * You can't find/hire anyone who can both code with a damn and be a competant DBA.
      * You just need to scale beyond the biggest server you can buy.

      The first three of these are very common real world problems for shops everywhere. The last is a different sort of problem: you can sort-of solve DB scaling by getting ever more clever with sharding, but at somepoint when you've had to split up your RDBMS into enough loosly-coupled clusters just to make anything possible, you realize you've re-invented NoSQL poorly.

      Finally, the commonly know RDBMS products are all really really slow compared to just keeping everything in memory, because they (some of them) do transactions right. If you a bunch of non-transactional queries that just need to be lightning-fast, you'l just can't beat a DB that if really just a big distributed cache.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    13. Re:Big Data by bluefoxlucid · · Score: 1

      Yes but Hadoop and such solve specific problems. "Big Data" is a buzzword that is being explained as, "You have all this data. People use your service and you're not even COLLECTING the data. You could do something with that!" Which is people being horse shit morons. No shit there's data there. We could do lots of analysis. We could analyze the major hot spots where birds shit all over cars the most. For what purpose, and with what methodology?

    14. Re:Big Data by lgw · · Score: 1

      Is this somehow different from any other new product ever? It has some legitimate, important uses it was created for, but is being sold as the one true answer to everything everywhere - unlike what new tech, again?

      --
      Socialism: a lie told by totalitarians and believed by fools.
    15. Re:Big Data by aztracker1 · · Score: 1

      document store, for an example, see MongoDB but there are many others.

      --
      Michael J. Ryan - tracker1.info
    16. Re:Big Data by aztracker1 · · Score: 1

      Well, a document store built on top of a typical relational database won't necessarily allow for good searching/indexing of data within said store without either a lot of added complexity (in your middle-layer) and/or a lot of excessive joins. Compared to say MongoDB which allows for unstructured data + map/reduce or index based queries... the new aggregation methods in MongoDB are extremely useful in terms of reshaping your data structure. The simplicity of requesting a single document/record/object will all the data needed for that is a pretty big bonus given a typical mostly-read scenario.

      On the flip side, I've seen people do stuff in say Redis, that it seems to me would be better served by a typical SQL/ACID RDBMS... so to each their own. I think both have a place.

      --
      Michael J. Ryan - tracker1.info
  19. God told me by Anonymous Coward · · Score: 0

    MySQL is better than Postgres

    1. Re:God told me by Anonymous Coward · · Score: 0

      He also told you Romney was going to win, didn't he?

  20. Re:use mysql by Anonymous Coward · · Score: 1

    With respect, as a Javascript programmer, I can tell you that I hit a lot of WTF moments with Javascript on a regular basis. I'm pretty sure that web forms count as "real world usage"

  21. MariaDB (fork of MySQL) by Lordrashmi · · Score: 5, Informative

    https://kb.askmonty.org/en/community-contributing-to-the-mariadb-project/

    We (yes, I work for the project) are always looking for new contributors. There are lots of exciting things happening right now.

  22. PostgreSQL. by astro · · Score: 1

    I'm happily surprised to see that all the early comments are in support of PGSQL, with brief anecdotes to back it up. I 100% agree - even if your future hopeful employer uses MySQL (which has actually matured a great deal), everything you learn in PGSQL will teach you the underlying theory of WHY good databases are good. You can apply that to any roughly SQL database. Further, PGSQL is even closer to zero-cost than MySQL, in spirit. So, if you have to go up against beancounters advocating for your software, it still looks really good.

    1. Re:PostgreSQL. by Anonymous Coward · · Score: 0

      everything you learn in PGSQL will teach you the underlying theory of WHY good databases are good.

      This. Plus, since PGSQL started out to be a free alternative to Oracle, when you grow out of the OSS phase you'll have some PL/SQL under your belt to start learning the awesomeness of Oracle.

    2. Re:PostgreSQL. by bluefoxlucid · · Score: 1

      Why would you ever get out of the "OSS phase"? Everything I've seen that's big and complex and needs a real database runs on MariaDB or PGS. The only things I've seen on Oracle were tiny shit beancounter apps that you could run on top of Notepad.

  23. Pgsql by Anonymous Coward · · Score: 1

    I work in a company in the growing wave (from single digit employer number to two digit, from two digits paying customers to 1000+) and we have choose PgSQL this summer after internal six months review between Oracle, Pgsql, MySql, two NoSQL. We liked PgSQL robustness, developing model, (enough) wide usage and other things which could start a flame here (like performance) and also for the decent offer of commercial third party support.

    As every day user and admin I personally dislike some clues (like the 'philosophical' view about HINTs) but after some months of production usage (and some years spent with MySQL in past jobs) I would go for PgSQL again. Yes, it lacks mm replica but even for the most optimistic growing rate we are ok with this.

    The developers planned mm replica in the next couple of years: what about giving a look at it ?

    1. Re:Pgsql by DoofusOfDeath · · Score: 1

      Thanks, that's very good to know.

  24. Re:If "employment prospects" Are All That Matter . by vlm · · Score: 4, Informative

    I recommend setting yourself about fixing some of that long list of fundamental flaws in MySQL.

    Traditionally, especially in 2012, this amounts to listing stuff like "doesn't have transactions" which was fixed back in Bush the Second's first term.
    Shoveling thru obsolete FUD to find the truth is a harder job than you'd think, which also shows "good little worker bee" stick-to-it-ive-ness

    --
    "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
  25. Badmouthing MySQL? So brave! by Anonymous Coward · · Score: 0

    -1, flamebait.

    1. Re:Badmouthing MySQL? So brave! by DoofusOfDeath · · Score: 1

      It was unintentional. My apologies. It would have been fairer to write that I find MySQL's behavior surprising, and am attracted to working on databases that have behavior that's more in line with what I'd expect.

      The video I linked to is what convinced me that MySQL behaved in ways I don't like. I prefer system designs that kick and scream when something bad is entered. MySQL seems geared towards letting some operations succeed and just using defaults, in cases where I would prefer a loud error report.

    2. Re:Badmouthing MySQL? So brave! by Anonymous Coward · · Score: 0

      Well, I'd like to inform you that the video is crap. My summery of the video: "I don't know how to configure my software properly, so rather than claim that my knowledge is crap, I'll claim the software is crap instead". Not sure what I'm talking about? Here:

      http://dev.mysql.com/doc/refman/5.1/en/server-sql-mode.html#sqlmode_strict_all_tables

      For what MySQL is used for 99% of the time, I find the default behavior to be more desirable than the strict behavior, and I suspect most people do too, which is why non-strict mode is the default. But if you want it to behave differently, by all means, configure it the way you want.

      Of course, most of the posters here would rather just bash MySQL and remain ignorant rather than inform themselves of how to properly configure it.

    3. Re:Badmouthing MySQL? So brave! by Anonymous Coward · · Score: 0

      Just for clarification, when you talk about "working on databases" you mean working on the dbms code base, right? You are not talking about manipulating the data in the database with SQL, right?

      I'm asking because you mentioned working with SQL in the original question.

    4. Re:Badmouthing MySQL? So brave! by zyzko · · Score: 1

      Are you looking to contribute in the actual development of the database software or just looking at what database to use? I see lots of comments seem to imply the latter and focus on what is wrong with database x from a user viewpoint (a DBA is a user, an application developer is a user) - if you want to make your hands dirty you should really look into the community and how to get involved. MySQL has not been that great on Oracle days on external community so you might be better off looking at some of the numerous forks and how they treat their developers.

      If you are looking for a way to get employed through knowing the insides of a database engine in the Open Source world I would suggest SQLite (it is really used everywhere nowadays) or as a little bit more niche product, Firebird - Firebird is a really nice database which can be used on embedded projects easily + has robust set of features and has a permissive license (I am a bit biased because the company I work for uses it as a core database engine...).

    5. Re:Badmouthing MySQL? So brave! by DoofusOfDeath · · Score: 1

      It's kind of a combination of all those things. My situation is:

      • I've been wanting to contribute on an OSS project for a while, but haven't had the time. That should change once I'm done with grad school this spring.
      • I'm an experienced C++ developer (~ 18 years). I haven't worked on the internals of an OSS database yet, but (non-relational) databases were the focus of my Master's degree work. I also did MS SQL Server database design and optimization for a few years, so I'm not totally clueless.
      • I need to have good job prospects in western Europe in a few years, so however I spend me out-of-work time until then, I need it to help towards that.
      • I'm probably looking at living in a semi-rural area, where the only city within a reasonable daily commute isn't huge. So there's not likely to be a really hopping software scene near where I live. This means that I probably need to focus on databases which are very commonly used. I think this means MySQL of PostgreSQL.

      I guess another alternative is that I work on whichever database project is most interesting without regard to geographically limited job-finding requirements, and hope I can telecommute. But that seems like a risky assumption.

    6. Re:Badmouthing MySQL? So brave! by DoofusOfDeath · · Score: 1

      Knid of both. In the early 2000's I was a pretty intensively developing and tuning databases in MS SQL Server. Then in my master's work I worked on the design and guts of a non-relational database, which eventually became StreamBase.

      Although I haven't yet worked on the guts of a relational database, I think I probably have enough database knowledge and programming skills to become a useful contributor to an OSS database project within a reasonable time frame.

  26. There are lots of postgres employers by h4rr4r · · Score: 1

    I have used it at several employers and know of some hiring right now.

    Most of these jobs end up filled with people who are used to other DBs though, since candidates are so rare.

  27. data errors by Anonymous Coward · · Score: 0

    Mysql tries to operate with existing code written under various assumptions. It as modes to control things like null data. There is a strict mode if you prefer that. This isn't carelessness with your data, but practical tradeoffs on how to be the most useful.

  28. Go to NewSQL by tnn_dk · · Score: 1

    From what I can see in the market, the most interesting would be either VoltDB(H-Store is open) or NuoDB (closed). But after reading the initial paper on Hana (SAP), I could definitely see the purpose of a database with elastic capabilities NuoDB with the database engines from both H-Store (Relational in-memory), C-Store (Column disk) and an object/document storage. Right now everybody is installing three different types databases in their environment, because each are the most performant for their type of application. It's a great technology landscape however, very exciting to follow.

  29. Trolololol by Anonymous Coward · · Score: 0

    This is post is just a troll to promote postgres. Even the video has comments disabled to prevent any real discussion on the topic. Boring.

  30. "respect" is a curious term. by Alex · · Score: 1

    Do you think anyone who works with Oracle respects it ? This doesn't stop them earning a pile of cash though.

    Stop being a prima donna and pick the one with the best employment prospects.

    Alex

    1. Re:"respect" is a curious term. by DoofusOfDeath · · Score: 1

      I see your point, but the reason I asked /. is because I'm hoping it's not an either/or proposition. So I was looking to find out why MySQL is less problematic than I see it as, and/or why PostgreSQL is more used than I realized, or if there's some other DB I should be thinking about.

    2. Re:"respect" is a curious term. by Anonymous Coward · · Score: 0

      MySQL is "less" problematic than you see it as because most users of it don't understand databases - at least early on, then when they have figured it out their project is too established to change.

      MySQL certainly could do with the help ;-) and you'd certainly get gigs using it, but really if you want the respect due to someone who understands relational algebra, functional determinants, ACID, etc then go for PostgreSQL and you'll be happier day to day not bashing your head against the desk dealing with MySQL and its adherants.

      Not looked into the stae of the art of PG replication recently but there's probably stuff that could still be done there.

    3. Re:"respect" is a curious term. by abirdman · · Score: 2

      Oracle, the database and connection software is quite respectable. The problem with Oracle is the organization which sells and services it. They like to "partner" with their customers, and comport themselves like a criminal enterprise. They send auditors to their customers' sites to ensure license compliance (meaning shake-down money for Larry Ellison). Training is expensive, but so are trained Oracle specialists. They're risking ruining Java with slow updates, and MySQL development seems to have slowed-- probably a good thing. Larry Ellison doesn't really get open source.

      There are many Oracle-like features in PosgreSQL, so it's helpful to learn, but here in the US, Oracle work pays very well-- probably the best in the industry. I don't know how many of those jobs are available. I do know there's some foreign competition, both from Europe and Asia. The company I work for has some excellent DBAs from India monitoring our servers.

      --
      Everything I've ever learned the hard way was based on a statistically invalid sample.
    4. Re:"respect" is a curious term. by BeanThere · · Score: 1

      Stop being a prima donna and pick the one with the best employment prospects.

      Or, as a developer with multiple prospects, he could pick the one he ultimately finds more enjoyment working with.

      I'm sure there good "employment prospects" working on things like with the tangled mess of spaghetti and backward compatibility in WinSxS and the Windows source code, but I suspect that would be a PITA job to go to every morning.

      I find working on better-designed systems tends to come with better job satisfaction.

    5. Re:"respect" is a curious term. by Alex · · Score: 1

      Sorry, I wasn't very clear here - I DIDN'T mean Oracle, thought it certainly sounds like I did !

      I meant pick whatever gives you the best job prospects ! (and TBH I think that's probably mysql or member of mysql "group" of databases)

      Alex

    6. Re:"respect" is a curious term. by Anonymous Coward · · Score: 0

      Heh. I've doubled my income in four years by focusing on PostgreSQL exclusively. Before that I had 20 years of Oracle experience. I'll take PostgreSQL over Oracle anyday.

    7. Re:"respect" is a curious term. by Anonymous Coward · · Score: 0

      I meant pick whatever gives you the best job prospects !

      Fucking code-grinder.

  31. Post is troll for a video by Animats · · Score: 5, Informative

    The post is basically a troll for a video. The video is based on an old list of MySQL 4.x gotchas, many of which were fixed in the 5.x series. Most of them involve things like the semantics of NULL in special cases, truncation of indexed strings with trailing spaces, and similar stuff that an application shouldn't be relying on. There's a comparable list of PostGreSQL gotchas from the same source.

    MySQL has political problems, because Oracle owns it and would prefer users buy their commercial products. The future of the free version is uncertain. The problems in the video aren't the ones to worry about.

    1. Re:Post is troll for a video by Anonymous Coward · · Score: 2, Informative

      There's a comparable list of PostGreSQL gotchas from the same source.

      Only if "comparable" is code for "far shorter and less severe, with a greater percentage having been fixed in current versions".

    2. Re:Post is troll for a video by DoofusOfDeath · · Score: 4, Interesting

      I didn't mean it as a troll, but thanks very much for pointing out that some of the video's issues are fixed in MySQL 5.x.

    3. Re:Post is troll for a video by xaxa · · Score: 1

      Those lists are 7 years old. Does anyone have a more up-to-date list?

      The last time I looked, Postgres was indeed slow at select count(*) from x, but even that's now been fixed: http://wiki.postgresql.org/wiki/Slow_Counting

      We've been looking at work, but not for 6 months or so due to another project taking priority. At the moment we use MySQL and a commercial database, and another part of the organisation uses MS SQL Server. That's clearly not optimal. The software using MySQL is the least-complicated stuff, so it's the easiest to switch. We're going to stop using the commercial database (cost, generally unsatisfactory). I think we should move to Postgres, but the rest of my team either aren't bothered, have bigger worries, or are too-scared of change.

      When I get time I need to do a proper comparison between SQL Server and Postgres (and MySQL), but that takes quite some time to do properly (i.e. trying to set appropriate configuration settings for each system), and frankly I don't find it very interesting.

    4. Re:Post is troll for a video by inglorion_on_the_net · · Score: 2

      The problems in the video aren't the ones to worry about.

      Well, I don't know. It is true that MySQL has improved by leaps and bounds over the years. However, every time they get rid of a batch of gotchas, there are new ones. I remember being elated to work on a project with MySQL 5 because I felt it had finally grown up to be a real database, only to find that there were concurrent insert issues that caused a huge chuck of my updates to time out and/or be aborted (I don't remember which).

      The problem isn't so much the specific issues as the philosophy that gives rise to them. MySQL was clearly developed as a quick and dirty vaguely RDBMS-like SQL database. Remember when MySQL didn't support transactions? It wasn't originally developed with data integrity in mind. That's why I and a lot of other people don't like it. It's hard to turn a system like that into something you can trust with your data.

      By contrast, PostgreSQL was already a mature, ACID-compliant system when MySQL started gaining mindshare. It has problems, too, but not being an actual ACID-compliant RDBMS isn't one of them.

      --
      Please correct me if I got my facts wrong.
    5. Re:Post is troll for a video by Anonymous Coward · · Score: 1

      As far as usability and (non-)glitchiness goes, I'd say PostgreSQL and SQL Server are about equal.

      I had my fair share of WTF's developing with PostgreSQL. Most of them were strange gotchas related to sequences. It also was an absolute grammar/syntax nazi, which can be annoying.

      SQL Server, OTOH, has a bug in SCOPE_IDENTITY (that's the fixed-no-really-this-time function for retrieving the most recently inserted identity/sequence value for the current scope) up through 2008R2 (fixed in 2012) that can cause SCOPE_IDENTITY to not properly update, leaving an old value in that variable even after subsequent inserts. Why? Parallelism and the optimizer. INSERT INTO ... SELECT ... can allow SCOPE_IDENTITY to hold an old value instead of the most recent one (or a set, if necessary) if the optimizer decides to split those inserts across multiple processors. The fix for 2008R2 and earlier is to add OPTION (MAXDOP 1) to limit that query to a single processor. Derp.

      The lesson here? Sequences are hard, and not even paid-for software can guarantee that they work correctly in every situation.

      The only way SQL Server beats PostgreSQL is in the installer and tools. The SQL Server installer is way better, IMHO. So is Management Studio (compared to the usual PGSQL management app, whatever it's called... it's been a while). But that's just opinion and we all know how those smell...

    6. Re:Post is troll for a video by Anonymous Coward · · Score: 0

      The open source edition of MySQL won't go away - it's Oracle's foot in the door. I expect it to get migration tools any time now, though one-way of course, from MySQL to Oracle DB, so they can push the free edition of Oracle DB and get another foot in the door.

      - T

  32. Re:use mysql by sexconker · · Score: 0, Troll

    With respect, as a Javascript programmer, I can tell you that I hit a lot of WTF moments with Javascript on a regular basis. I'm pretty sure that web forms count as "real world usage"

    With respect, as an actual programmer, I can tell you that "Javascript programming" is a misnomer for "Javascript scripting". I'm pretty sure that web forms don't count as "real world programming".

  33. Re:If "employment prospects" Are All That Matter . by h4rr4r · · Score: 2

    Does it still silently drop data that does not match the expected input?

    Can you easily delete a table with foreign keys yet?

    I am sorry if I don't keep checking to see if they finally fixed based problems. Way easier to just use postgres.

  34. Re:use mysql by Joce640k · · Score: 1

    Wouldn't the perfect resume be, "I'm the guy who fixed MySQL"?

    --
    No sig today...
  35. PostgreSQL IMO by GodfatherofSoul · · Score: 1

    If you need a database, use one that tries to be ACID compliant first, then efficient second. Not the other way around. When your database model starts getting more complicated as does your skill set, you'll be thankful later.

    --
    I swear to God...I swear to God! That is NOT how you treat your human!
  36. If the criteria... by Lab+Rat+Jason · · Score: 0

    ...for working on a project contains the phrase "must be perfect", then why would the project need you? As has already been stated above: Your employer's code base is likely to suck orders of magnitude more than MySQL does, and they are probably looking for people less "high and mighty."

    --
    Which has more power: the hammer, or the anvil?
  37. Fundamental Design Flaws by skelly33 · · Score: 1

    I beg to differ - it's all a matter of philosophy. Do you want something that's a stubborn mule of a server that fights your every attempt to get something done, or would you prefer something that is more forgiving and let's you later discover your own personal logic flaws with a, "haha! whoops! There, fixed!" moment? The video for me only serves to further reinforce the reason I use MySQL. For one thing, I have never made any of the bone-headed programmer errors that the host illustrated, but I appreciate the way MySQL handles "strange" situations gracefully. My guess is that this has allowed Google to fill itself up with far more useful pages that have content on them than pages with an obscure error code because of yet another strict condition being broken with Postgres.

    1. Re:Fundamental Design Flaws by Anonymous Coward · · Score: 1

      "Strange situations"? "Obscure error codes"? "yet another strict condition being broken with Postgres."?

      Dude. I'm stoned right now and even I don't know WTF you're specifically referring to.

    2. Re:Fundamental Design Flaws by Tablizer · · Score: 1

      It depends on the domain (industry). For banking and medicine applications, an "anal retentive" database may be preferable because a crash is preferable to generating wrong output.

      However, if you are hosting thousands of free or low-fee web services, then showing a half-rendered page may be preferable to a crash if something funny gets into the tables.

      There are similar issues with "scriptish" languages versus type-heavy languages. It's a matter of picking the right tool for the right purpose.

      Even in biology, nature often prefers a limp instead of death if something breaks, but in the situation of a new fetus, nature will often abort (miscarriage) if it detects something wrong early because devoting resources to a potentially defective offspring may not be evolutionary economic.

    3. Re:Fundamental Design Flaws by Anonymous Coward · · Score: 0

      or would you prefer something that is more forgiving and let's you later, after you've already corrupted months worth of production data, discover your own personal logic flaws with a, "haha! whoops! There, fixed!" moment?

      FTFY

    4. Re:Fundamental Design Flaws by skelly33 · · Score: 1

      I find myself at a loss for words regarding you being stoned and bewildered. How about try smoking less dope so that you can think more normal? Allow me to hold your hand through this...specifically...

      Someone entering a date of February 31st is a "strange situation", and is one that should have been caught by at least one level of data validation prior to attempting to store it in the database. That is but one of numerous examples of "strange situations" presented in the video, which I did in fact attentively watch in its entirety. If there is a solid case to be made for a switch to Postgres from MySQL then I want to see it and I was hoping to see it in this video, but alas I did not.

      "Obscure error codes" are when you are searching for something of interest with your favorite search engine and you see a result that looks very promising and click on it only to be greeted with the likes of "Server 500 Error - System administrators have been notified". To the average end user, that is an obscure result and entirely worthless, and may have been the result of some operational condition breaking as a result of unforgivingly strict database server such as PostGres.

      And by the way, it is absolutely necessary for MySQL to accept strings as integers and perform an atol() operation on them because the MySQL syntax allows you to quote all data values in the statement. Thus '0' and 0 are equivalent when directed to a numeric field. A value like 'A' going to the same numeric field would naturally translate to a 0. That's just common sense when you understand how the database works. If you're on board with forcing a user to input a number when a number is expected through input sanitizing/validation, then you should be equally OK with blocking February 31st at the same level.

      Clear as mud, or what?

    5. Re:Fundamental Design Flaws by skelly33 · · Score: 1

      That is a fair point that I would concede to readily. My main issue with the summary/video is that it implies that MySQL is not appropriate for any use due to the OP's perception of flaws. Perhaps MySQL is not appropriate for his use in his highly strict operating environment for banking/science/medicine, etc.... but it's fine for government work! :-)
      ... oh and consumer-facing websites as you mentioned.

    6. Re:Fundamental Design Flaws by Anonymous Coward · · Score: 0

      It depends on the domain (industry). For banking and medicine applications, an "anal retentive" database may be preferable because a crash is preferable to generating wrong output.

      Yes, and in that case if you are using it for something as serious as banking or medicine, hopefully you hired a sysadmin who knows at least something about configuring MySQL properly. Once strict mode is on, every single issue raised in that video is fixed. The sysadmin for your mission critical database should not have received his training from "LAMP for Dummies".

    7. Re:Fundamental Design Flaws by Anonymous Coward · · Score: 0

      YES! I beg to differ - it is all a matter of philosophy, but I don't know what your philosophy is. Only that it is not one of relational database modeling.

      Stubborn as a mule? In what decade did you try to use PostgreSQL? Pre-6.0? And if you think that the database telling you what you have done wrong is a stubborn mule, then I think it is the darn best mule I have heard of.

      MySQL doesn't handle "strange" situations gracefully. It blatantly ignores many of them by quietly doing something else!

      So, do you want something that actually enforces the restrictions and follows the data schemas YOU defined, or would you prefer something that ignores what you made and have a mind of its own? I use a database to store data. If the database engine doesn't store the data the way I intended to store it (according to my specified schema), it is not doing its work properly.

      And I like that you are humble enough to know that you don't make any bone-headed programmer errors. Please tell me where you work so I don't make the mistake of ever become your work colleague.

    8. Re:Fundamental Design Flaws by Anonymous Coward · · Score: 0

      And by the way, it is absolutely necessary for MySQL to accept strings as integers and perform an atol() operation on them because the MySQL syntax allows you to quote all data values in the statement.

      WRONG, it is not "absolutely necessary". Postgres allows you to quote numeric literals as well, but it's perfectly capable of checking that the value is actually a valid number.

    9. Re:Fundamental Design Flaws by Anonymous Coward · · Score: 0

      My guess is that this has allowed Google to fill itself up with far more useful pages that have content on them than pages with an obscure error code because of yet another strict condition being broken with Postgres.

      If there are really that many pages that manage to scrape by despite doing something retarded with MySQL, that says more about the skill level of MySQL users then it does about Postgres.

  38. Re:use mysql by ameoba · · Score: 2

    The problems with MySQL aren't bugs, they're decisions. Decisions that can't be reversed for the sake of backwards compatibility.

    --
    my sig's at the bottom of the page.
  39. Postgres by bradinthehouse · · Score: 2

    http://en.wikipedia.org/wiki/Michael_Stonebraker Have a look at what he's done with Postgres, Vertica, VoltDB, and the other systems he's working on. You may find that contributing to this project aligns you with some great, very intelligent people -- that's opportunity for learning, opportunity for contributing, and opportunity for good networking.

  40. Embedded PostgreSQL by Anonymous Coward · · Score: 1

    PLEASE PLEASE PLEASE -- build a good _embedded_ SQL DB. Specifically, please modify Posgresql so that it can run on a cell phone or other embedded device. Postgresql is the right choice but the developers are entirely focused on big iron. The most common solution is to use SQLite with a custom front end. SQLite is a great library but it is less than ideal in embedded system that need DB access from several running programs.

  41. Re:use mysql by Anonymous Coward · · Score: 1

    Maybe no one's bothered to tell you, but these days JavaScript is actual programming. Look at Node.js, for example.

  42. Re:use mysql by Anonymous Coward · · Score: 1

    With respect, as a Javascript programmer, I can tell you that I hit a lot of WTF moments with Javascript on a regular basis. I'm pretty sure that web forms count as "real world usage"

    With respect, as an actual programmer, I can tell you that "Javascript programming" is a misnomer for "Javascript scripting". I'm pretty sure that web forms don't count as "real world programming".

    With respect, as a real actual programmer who has programmed in more than 20 different languages in my 30+ year carrer, Javascript programming is real programming. Your inability to use it for more than just "scripting" is not a failing of the language.

  43. How about fixing MySQL? by Anonymous Coward · · Score: 1

    It seems to me that if there are so many flaws with MySQL, perhaps that would be a good place to become an important contributor! Imagine walking into a job interview and explaining how you have fixed several major flaws in MySQL...that would look much better to a hiring manager than simply having updated some online help file or other trivial tidbit left over in PGSQL. Just my $0.02.

  44. Invalid Assumptions by rjstanford · · Score: 1

    You write: "I've done a good bit of SQL development / tuning in the past. ... My problem is choosing which OSS DB to help with."

    That's akin to saying, "I've done a good bit of SCCA track racing in the past. My problem is choosing which engine builder to intern with." Or even, "I'm an amazing, although out-of-practice chef. Should I work on enhancing Viking or Maytag gas ranges?"

    Using a database (or any product) very effectively often has little or not translation into working on the guts of the product.

    --
    You're special forces then? That's great! I just love your olympics!
    1. Re:Invalid Assumptions by Emunix · · Score: 1

      Using a database (or any product) very effectively often has little or not translation into working on the guts of the product.

      However, knowing how to use a product effectively is one of the keys to writing useful documentation.

    2. Re:Invalid Assumptions by ultranova · · Score: 1

      Using a database (or any product) very effectively often has little or not translation into working on the guts of the product.

      While using a product obviously does not give you technical expertise about its guts, it does give you insight into what works and what doesn't. In practical terms, this could translate into special-case optimizing some often-used SQL constructs like "ORDER BY random() LIMIT x".

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    3. Re:Invalid Assumptions by rjstanford · · Score: 1

      I completely agree that it might give him some special insight into identifying areas of optimization need (although if he's rusty with the products, probably not so much). However, that's more of a business-analyst role traditionally and still doesn't necessarily translate into any expertiese in working on the system itself. There's no guarantee that an amazingly good SQL designer could even program in the close-to-embedded-level C code typically used in enterprise-class database engines.

      --
      You're special forces then? That's great! I just love your olympics!
  45. How about NoSQL database systems? by twasserman · · Score: 1

    Not to take anything away from PostgreSQL and MySQL (and their forks), but these are mature systems with extensive communities and a very complex code base. If you want to learn the architecture of a new class of open source database systems, as well as to have the opportunity to make a significant contribution to a project, then you should consider joining a NoSQL project, such as Neo4j or MongoDB.

  46. we run a commercial website with Postgres by Anonymous Coward · · Score: 0

    No complaints.

    1. Re:we run a commercial website with Postgres by Anonymous Coward · · Score: 0

      Same here, and they've fixed my only main complaint (external hacks required to replicate data). Hell, it keeps getting even better with the direct replication where I don't have to mess with shipping logs anymore.

  47. PostgreSQL FTW by I+AOk · · Score: 1

    Like others said, PostgreSQL.

    I won't think of using any other DB.

    -ié

    --
    [iconv --from-code=utf-7]
  48. Re:If "employment prospects" Are All That Matter . by Anonymous Coward · · Score: 3, Insightful

    If employment prospects are all that matter, stay away from the major SQL databases. They're mostly feature complete, have large established developer communities that are hard to break into (sometimes requiring employment at the sponsoring company) and often have a lot of legacy baggage that limits what you can accomplish.

    Meanwhile, in the NoSQL world, people are busy re-inventing the wheel. You can take decades-old techniques and apply them to new features of these databases. For example, Redis doesn't have true clustering support. There's a preliminary draft and some exploration, but it's still really nascent. If you've got the DB chops to implement it and do it well, there's a ton of places that would hire you.

    The downside is, of course, that you end up working with NoSQL databases, but your employment prospects to actual work and knowledge ratio is a lot higher.

  49. Postgres is widely used in business by Anonymous Coward · · Score: 0

    While MySQL has all the hype in open source projects and hosting companies my experience is that a great many companies are using Postgres instead - particularly those with a decent development and operations side to the business.

  50. MySQL, PostgreSQL not the only options by Anonymous Coward · · Score: 0

    Kinda missed mention of Firebird (the one that took the name before the browser), for example. There's probably a few more. sqlite is a bit of a developer's darling too.

    Plenty of "NoSQL" options, though those tend to the "we want speed, so we drop ACID" only to find that various parts are so valuable that the users reinvent them in their applications.

    There's also object databases. I can't quite recall its name, but there was one originally used for storing dna sequences of some flatworm or other. Plenty of the support scripts were in csh, and it was all-around academic code, so plenty of room for improvement. If you like that sort of thing, knock yourself out.

    Though I have to say I dislike the "let's go 'contribute' so I can fill up the old resume and get laid^Wa job". You don't contribute to a project because of your job prospects. You contribute because you genuinely think it's fun to do and hopefully you know something about the subject, too. Of course you'll learn stuff, but you have to have something to bring to the project too. This often enough enables making money with your hobby, which can be great. But the way you're approaching it is bound to end in tears. So don't go about it that way.

    1. Re:MySQL, PostgreSQL not the only options by DoofusOfDeath · · Score: 1

      Though I have to say I dislike the "let's go 'contribute' so I can fill up the old resume and get laid^Wa job"

      That's not precisely where I'm coming from. It's more that I only have enough free time to contribute to one OSS project. But I also need to position myself for getting database work in Europe. I'm trying to find some OSS DB project that resides in a happy intersection of those two goals.

    2. Re:MySQL, PostgreSQL not the only options by JThaddeus · · Score: 1

      I'll second the various recommendations for Firebird.

      About 10 years ago our senior engineer asked me to look into open source database systems as a back end for our product. The idea was to target customers who didn't want or couldn't afford Oracle, Sybase, etc. MySQL was out since it can't be use commercially without fee. PostgreSQL (at that time) lacked a robust transaction management system. Firebird was in its infancy, still known as Borland's Interbase, but it was fully open source and had the transaction management chops I needed.

      In just a few weeks I had ported over 13K lines of Oracle embedded SQL to Firebird|Interbase. It worked very well, and was easy to install. It's speed, simplicity, and reliability quickly made it our go-to database for inhouse use. When Macintosh went Intel and db vendors stopped supporting Mac, we began using Firebird commercially. It's a champ.

      --
      "Love is a familiar; Love is a devil: there is no evil angel but Love." --William Shakespeare ('Love's Labors Lost')
    3. Re:MySQL, PostgreSQL not the only options by Anonymous Coward · · Score: 0

      Second that!

  51. MUMPS by paugq · · Score: 1

    Try GT.M for something different. It's a key-value database, dating back to the 60's, but still hitting hard in healthcare, vets and financial. Great performance. The underlying technology is called MUMPS. Other MUMPS databases (such as Intersystems Caché, closed source) use MUMPS internally, then offer SQL, XML, object, etc layers.

  52. Video is FUD? by maitai · · Score: 5, Informative

    Pretty much all the test cases from that video fail on MySQL if the sql-mode is set to traditional. MySQL will throw an error when data would be truncated, throws an error when you try to insert a NULL value in a NOT NULL column, refuses to alter a table if the existing data would be truncated, throws an error on an invalid date, on select only returns a warning for division by 0 but throws an error on an insert of division by 0, throws an error if you try to insert a string into a numeric column and so on.

    I understand of course that the strict modes aren't enabled by default but they're easy enough to enable if you choose to. Via my.cnf, the command line when mysqld is started up or while connected to the mysql server itself (for just that session, or globally for all sessions).

    I didn't run through all their examples, but mostly because I got bored and all their examples that I did try were throwing errors (except the select 1/0 one, which issued a warning) with the sql-mode set to traditional on MySQL (postgresql is also a sql-mode option but I didn't play with that one since I've never used it before).

    1. Re:Video is FUD? by Anonymous Coward · · Score: 0

      You'll find that in MySQL 5.6 STRICT_TRANS_TABLES is enabled in the default my.cnf file for new installations. It's way past time for PG fans to cut out criticising MySQL for still preserving backwards compatibility for those who need the old ways.

  53. Technology Explorer by Vandilzer · · Score: 1

    <Disclaimer> I am the maintainer of this project and the comments here are of my own and no one else's </Disclaimer>

    I run a small project called the Technology Explorer (http://db2mc.sf.net).

    The Technology Explorer (TE) is a light weight web based framework for prototyping interactive database applications. Being a flexible and customization interface (think phpMyAdmin meets Drupal or Lego for database administrators), the TE allows for rapid development of UI driven processes and visualizations of database information in hours, whereas tradition processes might take weeks or month. The TE is primarily used as a teaching tool for IBM DB2 users as well as demonstrating and prototyping new interfaces. It is also used as a management consoled across a multitude of databases and database vendors (DB2, Derby, SolidDB, MYSQL and ORACLE (Were just starting to add PostgreSQL support)).

    Were always looking for help to expand our library of content for different database vendors. It take a lot of understand of a given DBMS to be able to produce useful material. I would be thrilled if someone would be interested in writing tutorial for other vendors as we are currently mainly focused around IBM DB2.

    Well there you have it, my plug. Were a small project, easily accessible, low barrier to entry and contributions and still lots room for growth. If your interested come on over and take a look.

    --
    Kari: There are a lot of things we really don't want you to try at home!
    Tory: Yes, try it at your neighbor's house.

  54. Noseql by Donwulff · · Score: 4, Insightful

    First I should probably burn some karma and say "what a load of garbage". The headline asks what OSS database to HELP with, but the article summary might as well read "Which free SQL-compatible database to learn to use". And on top of that it contains the answer already, along with questionable dirt-showing on MySQL which makes it read like a guerilla-ad for PostgreSQL.

    But in any case, it makes a major, huge difference whether the question is "which database codebase to contribute improvements to" or "which free database to learn for best amployment chances". Sounds like it's the latter, and in that case a follow-up question is what kind of employment. The one correct answer is "whichever database your employee is using" - don't expect to be able to choose a job on the basis of what database engine they happen to be using in one of the departments at the time. Second best answer is go with both; and again it makes a huge difference whether it's for self-employed web-site design or financial analysis for stock brokerage firm.

    And if you actually went with MySQL, next question is which database engine. Huh, you ask? Well you see, MySQL is not a single database engine, in actuality it's a front-end to pluggable database engines. The stock release fetures at lest MyISAM, InnoDB, Heap, BDB, NDB and Archive (and few variations). In general it's a choice between MyISAM or InnoDB which are whole different story. When most people say "MySQL has such and such problem" they're actually talking about MyISAM, but MySQL has defaulted to InnoDB engine for years.

    But the third and best answer is "none of the above". In most cases everybody seeking employment in relevant job will be fluent in SQL and have at least some experience with both MySQL and PosgreSQL, and it'll be rare for the employer to be at all interested in your ability to actually "hack" the database source. NoSQL databases offer ample opportunity to differentiate both on the job-market, and on the business competitiveness arena by improving the source-code (and in most cases as long as the binaries stay in-house, so can the source which makes bosses happy, but consult your OSS license).

  55. "List of flaws"? by Gordonjcp · · Score: 1

    Where's the list? The link was to a "video" with a static image and a whiny voice gabbling on - tl;dw.

  56. Why MySQL Wins by Slicker · · Score: 3, Insightful

    I love PostgreSQL in theory but hate it in practice. It's a pain in the ass to work with... not very productive. For a long time, I felt it was worth it to endure this for the superior design, feature set, and technical correctness.

    But one day I realized that I need to get things done, switched the MySQL. The learning curve was small but the main kicker was that things just worked and easily reworked. There are risks, limitations, and problems. It's very imperfect but I get things done now... and never have or care to think about the purist philosophies with which I used to love to indulge in.

    In the end, you have to give up perfection to go anywhere.. Otherwise, it's like having to get half-way there first, meaning you have to get half-way to half-way first, etc. recursively forever.. With MySQL I take a reasonable number of precautions for things that can go wrong, ensure there are good backups, and deal with the others as they come.

    Now I think MySQL is superior for practical use by a long shot. And I think that's why its adopted so heavily.

    The key ingredients to successful technologies are:

    (1) You can do something obviously cool or useful with it.
    (2) It's quick and easy to learn and use.

    And that's it. This is why so many successful things are made by idiots. Look at HTML. It was made by Tim Burners Lee back when he knew very little. But 12 year olds were picking it up and making cool (at the time) web pages. Now he know so much more and has tons of backing from heavy weight organizations and money but cannot seem to even force the success of the Semantic Web. It's hard to learn and hard to work with even when you learn it. Furthermore, it's not obvious to most what cool or useful things you can do with it. Proponents keep saying it'll mature and will be easier when tools and libraries are available to make it easier... That misses the point. Even the tools mostly suck and are buggy because the basic tech. is a pain in the ass to work with. There are philosophical visionaries galore but no substantial progress beyond what grants and job requirements force people to do... and there won't be.

    Matthew

    1. Re:Why MySQL Wins by ultranova · · Score: 2

      But one day I realized that I need to get things done, switched the MySQL. The learning curve was small but the main kicker was that things just worked and easily reworked. There are risks, limitations, and problems. It's very imperfect but I get things done now... and never have or care to think about the purist philosophies with which I used to love to indulge in.

      So what things can you do easily in MySQL that you had trouble doing in PostgreSQL? Details, please.

      Now he know so much more and has tons of backing from heavy weight organizations and money but cannot seem to even force the success of the Semantic Web. It's hard to learn and hard to work with even when you learn it. Furthermore, it's not obvious to most what cool or useful things you can do with it.

      The reason "Semantic Web" is not catching on is that it is contrary to commercial interests: the most basic function of SW is to filter out irrelevant crap from searches, while the most basic desire of an advertiser is to have his irrelevant crap to show up in every search. SW assumes that the Web is a library where the goal is to match people up with the information they're looking for, while in reality it's a bazaar where every merchant is trying to shout louder than everyone else to peddle their crap to passersby.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    2. Re:Why MySQL Wins by Anonymous Coward · · Score: 0

      For someone that never has had that negative PostgreSQL experience, it would be nice to know what you found to be a pain in the ass to work with.

    3. Re:Why MySQL Wins by Anonymous Coward · · Score: 0

      MySQL seems to win with people who do go for "ease of use" and not know a lot about RDBMS technology. The best horrorstories I encountered in my +12 years as DBA came from MySQL developers who used MySQL because it was "so easy to use" and discarted a good design as "purist philosophies" which doesn't seem to have any relation with reality. I have seen 4 examples of shops where MySQL was used (including high profile ones, like TomTom) where MySQL people screwed up the datamodel to such an extend that datacorruption and scalabilityproblems had a serious business impact. I've seen shops where the MySQL developers didn't use referential integrity in the database, because their perfectly written application would take care of this. Who cares about correct datatypes? Only use characterfields, because you can put anything in there. For thse MySQL developers ,the role of a database was not to provide a data store for creating information for the business, but a bucket to hold the residue of transactions.

      Needless to say these shops realised the role of a DBA when it's was a bit late.

      I agree with Matthew that easy of use is a good argument - look at how Windows gains on Unix. But I trust PostgreSQL shops more ( I have little experience yet, hence the word trust) because they choose PostgreSQL because they understand the role of a good RDBMS.

       

  57. Look harder by sribe · · Score: 1

    I'm attracted to the robust correctness requirements of PostgreSQL, but there don't seem to be many prospective employers using it.

    Look harder; they're plenty of them out there.

  58. Re:use mysql by gmack · · Score: 5, Informative

    If only they were actually edge cases(look carefully they mentioned one was a common Ruby on Rails mistake). MySQL's habit of pretending everything is alright when it's not has burned more than one of my previous employers.

    But they missed the real WTFs like mysqldump creating dumps that need to be hand edited before MySQL will restore them or my all time favorite: mysql user authentication simply does a "SELECT * from mysql.users" and if the fields get reordered by a new MySQL release then logins will simply fail. The best part is that the officially documented way to fix that is a mysqldump followed by a restore which... deletes the table and puts the fields in the wrong order again. The last major MySQL upgrade of my employer's systems involved me starting the new install from an empty DB, restoring everything except the mysql.users table and recreating the accounts using a script.

    Please don't pretend it's not a crap database. Those of us who have to deal with it every day know better.

  59. Re:use mysql by DoofusOfDeath · · Score: 1

    The problems with MySQL aren't bugs, they're decisions. Decisions that can't be reversed for the sake of backwards compatibility.

    Agreed. Or at least, that was my impression. That's what led me to assume that my sensibilities would be seriously mismatched with whichever person(s) decide the design of MySQL.

    According to my design and development sensibilities, a lot of things in that video would have been high-priority bugs. The fact that they're still present in whichever, I assume recent, version of MySQL was shown in that video, suggests to me that the leaders of that project have a different definition of "bug" than I do.

  60. I second that: PostgreSQL by BeanThere · · Score: 1

    A thousand times: PostgreSQL

    When you start dealing with anything other than very basic website apps, MySQL's many significant deficiencies start becoming obvious. And the problems in the development seem to be institutionalized, it was this way even before Oracle took over. MySQL should be consigned to the dustbin of history.

  61. MSSQL and PostreSQL use transactions by Anonymous Coward · · Score: 3, Informative

    With SQL Server, you set your transaction isolation level that you care about and then you begin a transaction - SQL Server will guarentee consistency in that transaction even if you're just doing multiple selects. And, SQL Server will not let you do a 'select for update'.

    For example:

    SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
    BEGIN TRANSACTION;
    SELECT TOP 100 * FROM MyTable

    -- Rows in MyTable are now locked

    Locks are released when the transaction is commited.

    1. Re: MSSQL and PostreSQL use transactions by viperidaenz · · Score: 1

      Stop thwarting a Microsoft hate with facts.

    2. Re: MSSQL and PostreSQL use transactions by SplashMyBandit · · Score: 1

      Interesting comment. MS SQL Server Locking is painful compared to Postgres when you have a huge number of transactions going on (per-page rather than per-row in general). Also, internationalization support in Postgresql is better (in my experience) - which matters if a single server is to provide data for users all over the world. MS SQL Server is fast, but this is for a reason, it cuts corners in some areas. Speed alone is a good enough reason to use SQL Server, but for most uses Postgresql is actually superior (again, in my experience writing global-reach internationalized applications).

    3. Re: MSSQL and PostreSQL use transactions by WaffleMonster · · Score: 1

      With SQL Server, you set your transaction isolation level that you care about and then you begin a transaction - SQL Server will guarentee consistency in that transaction even if you're just doing multiple selects. And, SQL Server will not let you do a 'select for update'.

      For example:

      SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
      BEGIN TRANSACTION;
      SELECT TOP 100 * FROM MyTable

      Come to think of it... this would really make a great interview question.

      Anyone who answers "are you fucking insane?" or "what is isolation level serializable?" is hired.

      Anyone who talks about all the great useful things you can do with these isolation levels gets shown the door.

    4. Re: MSSQL and PostreSQL use transactions by WaffleMonster · · Score: 1

      Interesting comment. MS SQL Server Locking is painful compared to Postgres when you have a huge number of transactions going on (per-page rather than per-row in general).

      What are you talking about? Can you be a little more specific?

      MS SQL Server is fast, but this is for a reason, it cuts corners in some areas.

      What corners?

      but for most uses Postgresql is actually superior

      Why?

      Just saying I think x is better than y without providing a cogent explanation is not helpful.

    5. Re: MSSQL and PostreSQL use transactions by iluvcapra · · Score: 2

      I'm a big Postgres fan and no Softie, but you sir preach ignorance as strength.

      --
      Don't blame me, I voted for Baltar.
    6. Re: MSSQL and PostreSQL use transactions by WaffleMonster · · Score: 2

      I'm a big Postgres fan and no Softie, but you sir preach ignorance as strength

      Managing concurrency is the single biggest impediment to scaling we and most outfits face.

      If you can't figure out how to perform the same function using an optimistic concurrency model I don't want you anywhere near our systems. If you think that makes me ignorant then so be it.

      There is simply is no correct answer which involves laying a read lock. Oracle rightfully does not support ANY of these concepts or isolation modes. This only exists in sql server because certain children with trivial problems did not want to be bothered to expend the time and effort to design scalable systems. We can't afford it.

    7. Re: MSSQL and PostreSQL use transactions by TheLink · · Score: 1

      You can configure MSSQL to use MVCC ( http://msdn.microsoft.com/en-us/library/ms177404(v=sql.105).aspx ) , it performs worse in some scenarios[1], but you don't get lots of deadlock problems which can also reduce performance.

      Apparently MSSQL does it by using the tempdb which seems a bit kludgy... But I guess if you can put the tempdb on fast storage it might perform better.

      MSSQL works better than MySQL but is often more painful to use than postgresql. For example with MS SQL you can't use column aliases in a "GROUP BY",

      I have to say SQL Management Studio is nice (esp the full versions). But psql isn't that bad since Postgresql is not that annoying :).

      I sometimes process data in Postgresql then insert the resulting output to MSSQL when it happens to be faster and easier to do the processing in Postgresql - regex matches, etc.

      [1] http://sqlblog.com/blogs/linchi_shea/archive/2007/10/05/performance-impact-the-potential-cost-of-read-committed-snapshot.aspx

      --
    8. Re: MSSQL and PostreSQL use transactions by shutdown+-p+now · · Score: 1

      MSSQL has had opt-in snapshot semantics in lieu of locks since 2005. Locks are still there because sometimes they're better, and because behavior is different enough that things may break when moving between the two, but personally I much prefer the sanity of snapshots.

    9. Re: MSSQL and PostreSQL use transactions by Anonymous Coward · · Score: 2, Informative

      IF you don't understand what isolation level serialable is then how the hell can you expect them to know why it can have such serious scalability issues. Ignorance is not a blessing, understanding what it does and why you don't want to use it is worth far more.

    10. Re: MSSQL and PostreSQL use transactions by kgrittn · · Score: 1

      Since the release of PostgeSQL version 9.1, PostgreSQL has an optimistic technique for implementing SERIALIZABLE transactions which doesn't require traditional read locks: Serializable Snapshot Isolation. (Full disclosure: this was developed by myself and Dan Ports of M.I.T.) For some performance graphs using several standard benchmarks, see Proceedings of the VLDB Endowment, Volume 5:

      http://vldb.org/pvldb/vol5/p1850_danrkports_vldb2012.pdf

      This lets you set a default transaction isolation level and just do your work without worrying much about interactions with other transactions, as long as you are set up to retry your transaction from the start on a serailization failure. There is no need for SELECT FOR UPDATE, and since there is a guarantee that any group of serializable transactions will behave the same as some serial (one-at-a-time) execution of those transactions, you can be sure that if the transaction does what you want when run by itself, it will do what you want when run in any mix of serializable transactions -- without the blocking described for SQL Server.

      So you can have your transactional consistency without the blocking.

    11. Re: MSSQL and PostreSQL use transactions by iluvcapra · · Score: 1

      That's the answer you give in the interview, not "what is that?"

      --
      Don't blame me, I voted for Baltar.
    12. Re: MSSQL and PostreSQL use transactions by Anonymous Coward · · Score: 0

      If you can't figure out how to perform the same function using an optimistic concurrency model I don't want you anywhere near our systems.

      If you're arrogant enough to think you can make every single one of your n^2 combinations of operations work correctly when run at the same time, I have the same opinion of you.

    13. Re: MSSQL and PostreSQL use transactions by MikeBabcock · · Score: 1

      Sounds like ignorance to me, actually.

      --
      - Michael T. Babcock (Yes, I blog)
  62. With shared hosting by tepples · · Score: 2

    So which entry-level web host do you recommend for running web applications that use PostgreSQL? Most that I've seen either offer only MySQL or charge extra for PostgreSQL.

    1. Re:With shared hosting by Algae_94 · · Score: 5, Insightful

      Get a VPS from Linode. Install postgreSQL.

    2. Re:With shared hosting by aztracker1 · · Score: 1

      There's always Heroku..... pretty much every cloud has a managed PostgreSQL provider.

      --
      Michael J. Ryan - tracker1.info
    3. Re:With shared hosting by A+bsd+fool · · Score: 1

      I do not recommend any "entry-level web hosts." The lowest I'll go is a VPS, which means you can install PG yourself if they do not officially offer it. Entry level sites can get by just fine on SQLite for all it matters.

    4. Re:With shared hosting by flacco · · Score: 2

      This is the way to do it. Linode is quite good.

      --
      pr0n - keeping monitor glass spotless since 1981.
    5. Re:With shared hosting by hedronist · · Score: 1

      Webfaction.com - $9.95 monthly (cheaper with longer commitment).

      Run by serious techies. Nginx as a frontend-server, Apache/whatever you want on the backend. MySQL, Postgres, whatever for a DB. Python (Django is a one-click install), Ruby, whatever. Long-running processes. Cron jobs. Better-than-average admin panel.

      All in all, a great hosting company for smaller sites.

      I'm not a shill, just a happy customer. I have several customers' websites there.

    6. Re:With shared hosting by Anonymous Coward · · Score: 0

      IIRC bluehost has postgresql.

    7. Re:With shared hosting by robot_love · · Score: 1

      All my sites hosted at Webfaction use PostgreSQL at no extra charge. On top of this, their service is fantastic.

      --
      .there is enough of everything for everyone.
    8. Re:With shared hosting by vicm3 · · Score: 1
  63. Re:use mysql by marcosdumay · · Score: 1

    "I'm the guy who fixed MySQL but Oracle didn't accept my patch, so you never heard about me."

    FIFY. Doesn't look that great now, does it?

  64. You are doing it wrong. by alexborges · · Score: 1

    It doesnt matter which, it matters what. If you think MySQL has design flaws, fix them. That looks good on your resume. If you like or are interested on PostgreSQL then go and find what it need and fix it. That kind of low level hack-master job will get you hired in any company that does databases, not just postgres or mysql.

    --
    NO SIG
  65. Re:If "employment prospects" Are All That Matter . by Anonymous Coward · · Score: 0

    Yes.
    No.
    Absolutely.

  66. Re:use mysql by Algae_94 · · Score: 1

    I've done countless mysql dumps and restores and never had to hand edit the dump files. If you're doing web work you can also use phpmyadmin to work with mysql, which is kind of nice.

    I prefer PostgreSQL and would recommend it over MySQL though.

  67. Disabling comments is for cowards & propoganda by Tablizer · · Score: 2

    (Fundamental flaws of MySql) "Comments are disabled for this video."

    Cowards!

  68. Ideas by snadrus · · Score: 1

    Drizzle (Mysql fork) has a lot of low-hanging fruit & its modular nature helps.
    Otherwise if you're really contributing just for notoriety, consider Sqlite. It has plenty of work needed & it's critical for 100s of big companies: Google, Apple, Adobe (Photoshop), many more.

    --
    Science & open-source build trust from peer review. Learn systems you can trust.
  69. None of the above by viperidaenz · · Score: 1

    Choose MongoDB, its web-scale. http://www.mongodb-is-web-scale.com/

    1. Re:None of the above by Anonymous Coward · · Score: 0

      Hadn't seen that mongodb is web scale before.... don't appreciate the profanity, but it is still hilarious, particularly watching the video.... ROTFL...

  70. skill sets just aren't this specific... by doom · · Score: 1

    You think an employer that's using mysql is going to turn up their nose at you because you've been using postgresql?

  71. Re:use mysql by gmack · · Score: 1

    How well mysqldump works depends on the data. It seems to have a problem with escaping some strings correctly. Right now we use both MySQL and PostgreSQL with the dream of moving everything to PostgreSQL.

  72. MySQL is a lot better now with InnoDB Engine by Anonymous Coward · · Score: 0

    MySQL has come a long way. What I think I like the most about it is you can use different DB engines on different tables within your schema/database. InnoDB is replacing Myisam as the default engine with version 5.6. InnoDB is ACID compliant and supports row level locking. It seems to be very stable and does keep a transactional log for sudden outages. I really love the flexibility of MySQL, no other RDBMS has that same flexibility. Granted PostgreSQL is amazing and you really can't go wrong with it. I think you should read up about the latest version of MySQL before deciding their is no future in it. Its good enough for facebook!!!!!!!!!

  73. I went to the trouble of logging in to just to say by Sean · · Score: 0

    Please choose Postgres!

  74. Re:If "employment prospects" Are All That Matter . by aztracker1 · · Score: 1

    For that matter, front end management applications, as well as clients/adapter libraries can always use a *lot* of work... In some cases features in the system are missing altogether, or more advanced features like connection pooling aren't well baked into the clients.

    --
    Michael J. Ryan - tracker1.info
  75. Re:Salesforce.com is hiring PostgresSQL guys like by aztracker1 · · Score: 1

    That said, we're migrating a lot of our data from MS-SQL to MongoDB, and after that, will likely move those areas reliant on an SQL RDBMS to PostgreSQL... though this is one small shop.

    --
    Michael J. Ryan - tracker1.info
  76. Postgres-xc by Anonymous Coward · · Score: 0

    If you really have the coips to dig into a dig project, postgres-xc is a great target.
    This is where business wull be looking next year for scalable, real database solutions.
    I'm sure they have plenty of smaller tasks you could take on to get started

  77. Re:use mysql by Dynedain · · Score: 2

    If you're using phpMyAdmin, then you aren't doing the kind of in-depth database development where you run into the problems the GP is talking about.

    Hell, if you're using phpMyAdmin, you're casual DB user probably just trying to support your small webapp or CMS installation.

    And if you do use phpMyAdmin, you'd be much better off with a platform native database tool with MySQL support, such as SequelPro (OSX) or MySQL Workbench for (Windows,OSX)

    --
    I'm out of my mind right now, but feel free to leave a message.....
  78. Re:If "employment prospects" Are All That Matter . by Anonymous Coward · · Score: 0

    Dude, he said he wrote/tuned SQL. That is like someone saying "I wrote a little html and used css to make it pretty, I'd like to help on a webserver, should I work on apache or will MS hire me straight away?" It sounds to me like he should be looking for an OSS project USING a database and help them improve their performance.

  79. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  80. Black Fscking Sabbath, Biotches! by Zero__Kelvin · · Score: 1

    Hi. I just wanted to introduce myself. I'm the other guy who both reads slashdot and gets that joke ;-)

    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    1. Re:Black Fscking Sabbath, Biotches! by c0lo · · Score: 1

      Hi. I just wanted to introduce myself. I'm the other guy who both reads slashdot and gets that joke ;-)

      Pleased to meet you.

      Just from curiosity... u still remember how to have a distorted view, see through baby blue? ('cause I'm only smokin' nowadays even though, yo mama, I never smoke in pajamas).

      --
      Questions raise, answers kill. Raise questions to stay alive.
    2. Re:Black Fscking Sabbath, Biotches! by Zero__Kelvin · · Score: 1

      Yes, but it's a lot easier with a little help from Sid

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    3. Re:Black Fscking Sabbath, Biotches! by c0lo · · Score: 1

      Frank Z's good to fend the today's everyday distortions (good God, I can sometimes swear the whole world is trippin' and it's only me that's lucid).

      --
      Questions raise, answers kill. Raise questions to stay alive.
    4. Re:Black Fscking Sabbath, Biotches! by Zero__Kelvin · · Score: 1

      "God, I can sometimes swear the whole world is trippin' and it's only me that's lucid"

      I have to admit that I don't know the source of that one, but if I didn't know better I'd think it was me [though I might add you to the list] ;-)

      Cheers!

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  81. MonetDB - http://www.monetdb.org/ by qued · · Score: 1

    I've been looking at columular databases recently and MonetDB seems to be very robust and has two decades of development against it. I would suggest you look at Postgresql if you want a row oriented db to help out on or MonetDB if you are looking for columular. If you are looking at more multidimensional db's then check out some of the OLAP servers on wikipedia at http://en.wikipedia.org/wiki/Comparison_of_OLAP_Servers Regards, John

  82. anecdotal, but... by buddyglass · · Score: 1

    My current employer and the previous two employers all used PostgreSQL in some capacity. None used MySQL.

  83. Most popular?? by linuxwrangler · · Score: 2

    What do you mean by "most popular."

    I'm tired of hearing that "everyone uses..." No, they don't. MySQL is pretty popular with the open-source web-crowd but this is the same crowd that respects the engineering behind PHP. I've encountered plenty of people in that arena who would rather roll their own data-checks and treat the database as barely more than a key-value store than use the capabilities of the database and have to deal with handling exceptions. Bring up transactions, ACID compliance, data-integrity and the like at a PHP users group and you get blank-stares. The get-rich-quick-with-a-cute-kitten-website crowd cares not for such things (as an overgeneralization - there are plenty of high-traffic sites such as Instagram, hi5, Etsy and MyYearbook that run on PostgreSQL).

    So where do you find PostgreSQL? Salesforce, National Weather Service, Nippon Telephone and Telegraph, Federal Aviation Administration, Sony Online Entertainment, TD Ameritrade, State of Wisconsin Courts, Afilias, BASF, Flightaware, Skype (a contributor of many PG utilities), Fujitsu, Launchpad (Ubuntu)...

    And PostGIS is *the* go-to open-source geospatial database.

    I've found the PostgreSQL community to be wonderful with opportunities to contribute at all levels. Answer questions on the mailing-lists, contribute to documentation, help at users-groups, give a talk at a conference. One always welcome contribution is doing testing and submitting results/patches during commitfests - and this gets you more involved with the code.

    As to employment, it sounds like you prefer PostgreSQL. As such, PostgreSQL is by definition the most popular database among places you are interested in working. Do what you love.

    --

    ~~~~~~~
    "You are not remembered for doing what is expected of you." - Atul Chitnis
  84. Re:use mysql by El+Rey · · Score: 1

    At least 3 of them are trying...

  85. Re:If "employment prospects" Are All That Matter . by El+Rey · · Score: 2

    I would believe that if it weren't for the fact that there are at least 3 forks from former MySQL leaders trying to fix all the junk in it that is screwed up. For example, read:

    http://krow.livejournal.com/700783.html

  86. What is your goal with helping? by Stolpskott · · Score: 1

    Taking the OP's post at face value, there are two obvious messages that I can take away from the discussion:
    1. That OP wants to help on an OSS database project, and
    2. The OP wants their help on the OSS database project to be useful with future job prospects.

    PostresSQL is probably an order of magnitude better than MySQL as a database product, which to me would suggest that it is less in need of help than MySQL is. On that basis, point 1 would suggest MySQL.
    As the OP himself points out, the popularity of MySQL is vastly larger than PostgresSQL, so point 2 would also suggest MySQL.
    Looking good for MySQL...

    My philosophy on OSS projects that are not dead (or terminally dying with no hope of rescue) is to find the one I can contribute most to, where my input with both add meaningful value to the project and also avoid fragmenting the community too much. Coding to fix bugs in a crappy codebase with inherent design and structural flaws that are not addressed because the community throws a collective fit if you dare to criticise their beautiful work is like beating your head against a barbed-wire-covered brick wall, and I would definitely not recommend that. My suggestion might count against MySQL, but it seems to fit a lot of the OSS projects I have looked at so the problem there might be with my lack of diplomatic skills too :-)

  87. Re:use mysql by Waccoon · · Score: 3, Interesting

    I was looking for an easy way to automate character conversion from Latin-1 to UTF-8 for the forum software I use. I found out the hard way that the built-in MySQL recoder is completely broken, and will barf in different ways depending on which version number of MySQL you are using. No errors or warnings during the conversion for any version. You'll just find out later that all the field limits are wrong. You can only find out if it worked or not by inserting new rows and finding out if you get errors about data being too large to fit in the field, and whether it fails or not has nothing to do with the actual length of the data, but with whether you send 7-bit or 8-bit characters.

    I gave up trying to get MySQL to do it, and wrote my own conversion tool.

    And that's just for baby stuff for a web forum on a personal web site. I can only imagine what MySQL is like in an enterprise environment.

  88. All of them? by jandersen · · Score: 1

    I see most people recommend that you go with just one or the other database; I don't agree, though - I think it might be better to broaden your scope.

    My background: I'm the system manager for a smallish R&D department, and I have the enviable task of getting databases to run across a number of architectures - on LUW this is DB2, Oracle, Informix, Sybase/MSSQL and MySQL, but also things like Adabas, and on the mainframe, IMS and flat-file.

    In my experience there isn't so much call for the very deep knowledge of each architecture, but knowing how to port applications across is very valuable. Especially if you know your way around MVS, there's a lot of money in that, believe you me.

  89. DB2 by Anonymous Coward · · Score: 1

    None, none are good. Take a look at Postgresql code or read their dev-mailing list, they're a bunch of amateurs trying to sort out the basics. I imagine MySQL is worse.

    I recommend learning DB2, then you should get a set of suits, cut your hair and forget about OSS teenage projects and start focusing on a professional career. Good luck.

  90. Re:If "employment prospects" Are All That Matter . by Anonymous Coward · · Score: 0

    Does it still silently drop data that does not match the expected input?
    Can you easily delete a table with foreign keys yet?

    You can still do joins with aggregate functions without a GROUP BY clause. The result set has a single row and I have no idea how it was obtained, what it means and for what it's supposed to be useful. The manual says "it is equivalent to grouping on all rows". No idea what the hell that's supposed to mean.

  91. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  92. More opportunities to fix things on MySQL. by FritzSolms · · Score: 1

    I also prefer PostgreSQL, but clearly you have a lot more oportunities to fix things on MySQL :)

  93. Any interest in GIS? Pick PostgreSQL for sure by daboochmeister · · Score: 1

    PostGIS is very popular in the neogeo community (GIS extensions on top of PostgreSQL), primarily because it's supported by arguably the most important GIS server stacks (OSGeo's and Esri's). If geography plays any role in your career planning, or if you just want to keep your options open in that area, definitely choose PostgreSQL/PostGIS.

    --
    "Ahh! I see you're in that indeterminate Schrodinger state where - oh, uh ... never mind." Dave Bucci
  94. Planning to be a database designer? by Ravaldy · · Score: 1

    Oracle and MS SQL Server are the 2 main players for corporate and enterprise needs where I reside. Hosting solutions on the other hand use MySQL, Postgres and MS SQL Server

    If you target working on MS, go for MS SQL Server. It's simply the best database available that runs on MS. Oracle's database and it's benefits don't outweight it's lack of management tools and poor MS installers.

    If you target working on Linux, POSTGres is your best friend. I like their nice GUI tools (Much like MS SQL) to manage the DB. If you program like I do, you just want to get shit done and don't care about figuring out what that command was for creating an Index or table (Right click, Create).

    If you are targetting becoming a software developper, you only need to know how to structure your data. Managing the database if a full time job in most large corporation/enterprises.

  95. Really? by Anonymous Coward · · Score: 0

    Seriously, why is this so difficult:

    1. Pick something you know about
    2. Pick something you enjoy
    3. Pick something that matters to you

    There are no other criteria worth considering when it comes to how to spend your time for free.

  96. Recommend a newer project by Anonymous Coward · · Score: 0

    Postgres and MySql are good candidates, but they are quite far along in the development cycle.

    If you want to contribute to an 'open source' database that is still in the development phase, check out DBLX: www.dblxdatabase.com
    I work on this DB and its interesting to implement features as well as bug fixes. Send them a message to ask if you can contribute. We would love some more help.
    There are a lot of major Relational Database features and some SQL grammars in DBLX which still need to be implemented in the project, so we get to work on major components.

  97. Re:use mysql by Anonymous Coward · · Score: 0

    Honestly though, the real answer to that is to stop imposing arbitrary maximum length limits in the database,

  98. Grune's Law by hendrikboom · · Score: 1

    +1

    You don't see lots of people saying they use PostgreSQL online, because, no one has to bitch about it. It works, it works great, and its documentation is astounding.

    Everyone uses it, you just don't realize it, again, because no one bitches about it.

    I'll never touch MySQL after having used it for a product, what a POS

    Dick Grune's law: Producing correct software considered harmful to one's career.

    -- hendrik

  99. tSQLt - Database Unit Testing for SQL Server by Anonymous Coward · · Score: 0

    I've found tSQLt to be tremendously useful in our SQL development. I've even submitted some bug fixes and extensions to the two guys behind it but, unfortunately, haven't seen any of that released yet. I'd still like to see more bug fixes and features in it, though.

  100. Does anybody update the PostgreSQL "gotcha" list? by kgrittn · · Score: 1

    Many of the items on the PostgreSQL "gotcha" list are annotated to say that they only affect older versions; in one case they mention it affects versions 7.4 and earlier. Versions 7.4, 8.0, 8.1, and 8.2 have all hit end-of-life after five or more years of support. Version 8.3 hits end of support in about three months. That would be a very short list if issues from ancient out-of-support versions were culled from it.

    PostgreSQL: Versioning policy

  101. Which OSS DB? by Anonymous Coward · · Score: 0

    There is an interesting new DB, the OrientDB. Checkout http://orientdb.org
    It is a very efficient Database that can be used as a Document Database, an Object Database and you have a flavor of GraphDb too.
    Also it supports SQL for Queries. It is very interesting and is very active. Check it out and see if you want to dig in.

    P.s. I actually wanted to make it usable as a Triple store with Jena APIs but couldn't find the time to bring them together.

  102. go with postgresql!!! by Anonymous Coward · · Score: 0

    You will be surprised how much PostgreSQL is used. Red Hat uses it for most of its backend db needs and products. And a large number of customers are either using or adopting it. Enterprises just do not talk about it much.

  103. Re:If "employment prospects" Are All That Matter . by Anonymous Coward · · Score: 0

    I dunno - why don't you look it up instead of asking someone else to do your work for you? :)

    Why don't you read the whole post and stop asking questions that are already answered?

  104. Re:use mysql by MikeBabcock · · Score: 1

    Sounds like you needed the --complete-insert option.

    You get mysqldump output like this:

    LOCK TABLES `user` WRITE;
    INSERT INTO `user` (`Host`, `User`, `Password`, `Select_priv`, `Insert_priv`, `Update_priv`, `Delete_priv`, `Create_priv`, `Drop_priv`, `Reload_priv`, `Shutdown_priv`, `Process_priv`, `File_priv`, `Grant_priv`, `References_priv`, `Index_priv`, `Alter_priv`, `Show_db_priv`, `Super_priv`, `Create_tmp_table_priv`, `Lock_tables_priv`, `Execute_priv`, `Repl_slave_priv`, `Repl_client_priv`, `Create_view_priv`, `Show_view_priv`, `Create_routine_priv`, `Alter_routine_priv`, `Create_user_priv`, `ssl_type`, `ssl_cipher`, `x509_issuer`, `x509_subject`, `max_questions`, `max_updates`, `max_connections`, `max_user_connections`) VALUES ( ... );
    UNLOCK TABLES;

    Those of us who've used MySQL for years with InnoDB and transactions know better. Yes, MySQL has faults if you don't know what you're doing. Yes, some people see that as a bad thing. Then again, a lot of the people who think MySQL is horrible can't recognize the need for non-RDBMS database systems either.

    --
    - Michael T. Babcock (Yes, I blog)
  105. Re:use mysql by gmack · · Score: 1

    Thanks that would have been helpful at the time and the backup scripts now use that option.

    The point is not that MySQL cannot function as as an enterprise DB. The point is that it requires so much effort to do so. I should not have to hand edit a MySQL dump to get logins working again and even with this option I still would have needed to remove the portions that drop and recreate the table.