Slashdot Mirror


MySQL to Get Injection of Google Code

inkslinger77 writes to mention that MySQL has published their software roadmap out through 2009 and it includes an injection of code from Google. Google remains relatively secretive about how their systems work but they are one of the largest users of MySQL. Earlier this year Google signed a Contributor License Agreement which provides a framework for them to contribute code to MySQL. "The search company has done a lot of work customizing MySQL to meet its special needs, which include better database replication, and tools to monitor a high volume of database instances, Axmark said in an interview at MySQL's user conference in Paris. MySQL will include some of those capabilities in future versions of its database, probably in point upgrades to MySQL 6.0, which is scheduled for general availability in late 2008, Axmark said."

195 comments

  1. Injection? by Tetsujin · · Score: 5, Funny

    Somehow when I put "SQL" and "injection" together, I don't like the result...

    Well, except for when it involves Little Bobby Tables...

    --
    Bow-ties are cool.
    1. Re:Injection? by insertwackynamehere · · Score: 1

      please enter your email: lpage@google.com' OR 1=1

    2. Re:Injection? by Phroggy · · Score: 2, Insightful

      Yeah, I was about to post the same thing. Can we use some different terminology when talking about helpfully contributing code to a database project?

      --
      $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
      $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
    3. Re:Injection? by sobolwolf · · Score: 0, Troll

      If I had mod points I would reveal you for the Troll that you are sir.

    4. Re:Injection? by sobolwolf · · Score: 1

      And I will now revel myself for the "tard" that I am by not getting the pun *blush* ... sorry um.. er..

    5. Re:Injection? by necro2607 · · Score: 5, Insightful

      Yeah, who writes these headlines? It's like, let's throw together the most fucking sensationalist possible combination of words to evoke certain responses in peoples' minds when they read this headline. Instead of just writing something constructive like "MySQL adds code from Google", it has to be some sensationalistic crap so as to make people go "OMG SQL injection?!? Sum1 haxed MySQL??" and immediately read the article. What is this, FOX News or something? :P

    6. Re:Injection? by D'Sphitz · · Score: 1

      the title was taken from TFA

    7. Re:Injection? by twistedsymphony · · Score: 1

      at least you aren't squirting anything

    8. Re:Injection? by xouumalperxe · · Score: 1

      It's called a pun.

    9. Re:Injection? by jpfed · · Score: 1

      Wanting clarity in communication is orthogonal to liberalism.

    10. Re:Injection? by fishbowl · · Score: 1

      Liberals? Are you one of those people who blames everything on an ideology because it's popular among your peers?

      --
      -fb Everything not expressly forbidden is now mandatory.
    11. Re:Injection? by BrianPan · · Score: 1

      Some people only know how to laugh when there's a giant foot.

    12. Re:Injection? by Jason+Levine · · Score: 1

      My first reading was worse. I read it as something along the lines of "SQL Injection Gets Google's Code." I thought it might have to deal with some weird Google bug that let some hacker view all of their code via a SQL Injection attack.

      --
      My sci-fi novel, Ghost Thief, is now available from Amazon.com.
    13. Re:Injection? by Ash+Vince · · Score: 1

      Or alternatively, you could learn to read properly and not just glance at a few key words and jump to the wrong conclusion. I read the title and instantly understood what it meant. I have not bothered to RTFA in this instance because I am off to sleep and don't have time.

      The fact is that the title is fairly clear. Your suggested title ("MySQL adds code from Google") would be factually wrong since the code is due to be given to MySQL, but it has not happened yet. So the articles title is far better than your suggestion since it is in the correct tense. It would also be incorrect since MySQL is not adding anything, Google are. So maybe a better title would be "Google to donate code to MySQL" but since I don't mind the actual title I provide this only as an example.

      If you are going to slag off the title that accompanies a post, please make sure you give a better example. I also think that whoever moderated your post as insightful should use their mod points more carefully.

      --
      I dont read /. to RTFA, I read /. to offend people in ignorance.
    14. Re:Injection? by necro2607 · · Score: 1

      Actually, your argument isn't logically sound - I am not required to give a fully-valid alternative in order to point out the sensationalist and reasonably-misrepresenting implications of the article's existing title. It's pretty easy to spot something "wrong" even if you can't provide a better alternative yourself (or don't feel like it). There's not some philosophical/moral obligation to provide an improved alternative (as much as people might like to think so). Of course, if that were the case, we'd be well on our way to a perfect society, but unfortunately it is not.

      But sure, if you need a better-written suggested alternative: "MySQL to add code from Google".

      BTW, I read very well, but for pretty much all people, when scanning through a long list of recent news headlines (in order to pick out ones of interest as opposed to uninteresting ones), it's easy to mix up words that aren't extremely literal and direct. In this case, I DID understand the title properly, but for a split second thought it might be about some kind of SQL injection attack. From that split-second thought, I expected that a LOT of people were going to read it like that, as opposed to the actual subject of the article.

      When editors start using inaccurate terms, or unneccesary synonyms for creative effect, it's pretty easy to get the wrong idea from such a headline. Frankly, there's no such fucking thing as "injecting" code into a project or application. You write code, edit it, maybe add it. You don't "inject" it, unless you like confusing people for fun. Using such a word has no real purpose other than maybe acting silly or, very possibly, intentionally making people think the news article is related to an SQL injection attack on/by Google, so as to get more people to read the article.

    15. Re:Injection? by ozmanjusri · · Score: 1
      Can we use some different terminology when talking about helpfully contributing code to a database project?

      Squirting?

      --
      "I've got more toys than Teruhisa Kitahara."
    16. Re:Injection? by SnowZero · · Score: 1

      Can we use some different terminology when talking about helpfully contributing code to a database project? MySQL to get ejaculation of code?

      * ducks *
    17. Re:Injection? by Typoboy · · Score: 1

      It is humorous. Commence laughter.

    18. Re:Injection? by Ash+Vince · · Score: 1

      Actually, your argument isn't logically sound - I am not required to give a fully-valid alternative in order to point out the sensationalist and reasonably-misrepresenting implications of the article's existing title. Yup, your right you didn't need to but you tried and made a complete hash of it. My argument was that if you were going to give an example of a better headline you should have made sure it was actually a better headline not a load of old tosh. If you had just whined about the existing title I probably would not have replied at all.
      --
      I dont read /. to RTFA, I read /. to offend people in ignorance.
    19. Re:Injection? by Maximilianop · · Score: 1

      Can we use some different terminology when talking about helpfully contributing code to a database project? MySQL to get ejaculation of code?

      * ducks *
      LOL!! How about infusion?

      Nurse: Doctor, we are loosing it...
      Doctor: Quick infuse some google code on it!
      ... (it helps anything)
      --
      The Universe is shrinking all around my head.
    20. Re:Injection? by adolf · · Score: 1

      What is this, FOX News or something?

      No, I'm afraid that this is something far more sinister: It, my friend, is Slashdot.

    21. Re:Injection? by CarpetShark · · Score: 1

      Yeah, who writes these headlines? It's like, let's throw together the most fucking sensationalist possible combination of words to evoke certain responses


      Luckily none of the commenters around here act that way ;)
    22. Re:Injection? by Anonymous Coward · · Score: 0

      your right you

      "you're right; you".

      to but
      headline you
      headline not
      title I

      ",".

  2. Hells yeah by rsborg · · Score: 5, Insightful

    Eat that, Oracle.
    Seriously the database layer is being commoditized, and MySQL and PostgreSQL are leading the way.

    My only question, was Google required to disclose these changes, or are they just doing the right thing (again)?

    --
    Make sure everyone's vote counts: Verified Voting
    1. Re:Hells yeah by Dan+Berlin · · Score: 4, Informative

      We don't distribute it, so we aren't required to submit the changes back.
      We of course, try to contribute back all the changes we possibly can.

      If you look around, you'll see we just don't publicize all the changes we contribute back (and we in fact, didn't publicize this one ourselves).

    2. Re:Hells yeah by Bodrius · · Score: 1

      Maybe they're doing the selfish for-profit thing, which can very well be 'the right thing' for everyone else.

      By putting their code back into the main branch, they do not have to carry the perpetual maintenance cost of the fork and get to distribute the development cost across the rest of the mysql devs/users.

      --
      Freedom is the freedom to say 2+2=4, everything else follows...
    3. Re:Hells yeah by Tony+Hoyle · · Score: 0, Flamebait

      Insightful? Fine for a web server perhaps.

      Look in the corporate space. Oracle is everywhere. SQLServer is around (not popular in my experience). Mysql is nowhere.

      Mysql has a long way to go to justify its $200 per client cost (the GPL version being pretty useless for deployment - mysql consider releasing an application that is even compatible with their client as 'distribution' of Mysql (check their site.. it's amazing to read their interpretation of the GPL) and unless you're 100% GPL you're liable for the client cost for every single user).

    4. Re:Hells yeah by Anonymous Coward · · Score: 0

      Thanks

    5. Re:Hells yeah by Chapter80 · · Score: 1
      MySQL leading the way? I don't think so. Take a close look at their client licensing.

      The one who led the way toward a free database was HP, with their Image product, and later, their SQL version. Image had been free (as in beer) as early as 1975, which is one of the reasons HP gained so much mini-computer market share: Cheap Value-Added-Resellers and Software shops could package their custom software with a database for a reasonable price.

      Win over the developers with cheap price and good tools (ahem, Facebook, Yahoo, Google). Same strategy is repeated year after year. Standing on stage yelling "Developers! Developers! Developers!" doesn't cut it.

    6. Re:Hells yeah by CodeBuster · · Score: 1

      Seriously the database layer is being commoditized

      It has been commoditized for some time now, the concept of database was simply too valuable and generic to remain a franchise. Oracle especially and Microsoft more recently have realized this and are now offering their basic packages free of charge. The remaining franchises are in high end clustering and other advanced large scale data performance enhancements which only come into play in very large data centers with large and complex databases. The vast majority of everyday database applications are now well served by the free versions.

      My only question, was Google required to disclose these changes, or are they just doing the right thing (again)?

      As per the GPL, one is only required to disclose changes (and provide source) if the program is distributed. If you modify the program and decide that you do not want to distribute, but use it only for your own personal or internal company use then that is allowed. You could even operate a website off of your modified version and generate profits without being forced to release the code to your modifications. However, the modified program can never be sold or even given away to any external party without triggering the requirement to distribute the source code to all modifications along with it to anyone who asks.

    7. Re:Hells yeah by lib3rtarian · · Score: 1

      Maybe I'm missing your point, but $200 is a pittance. The last I checked, which was yesterday, Oracle came with a price of $40,000 just to enter the game!

    8. Re:Hells yeah by Daniel+Dvorkin · · Score: 2, Insightful

      Look in the corporate space. Oracle is everywhere. SQLServer is around (not popular in my experience). Mysql is nowhere.

      Define "coprorate space." Big companies tend to be Oracle or SQL Server shops, true; really big companies tend to be Oracle or DB2. But there are a lot of small and medium-sized businesses using MySQL -- and because there a lot more SMBs than there are megacorporations, and because DBA demand doesn't scale linearly (a 10,000-employee corporation doesn't need a hundred times as many DBAs as a hundred-employee corporation) there's plenty of MySQL work out there. Postgres, unfortunately, not so much.

      --
      The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
    9. Re:Hells yeah by lilomar · · Score: 1

      However, the modified program can never be sold or even given away to any external party without triggering the requirement to distribute the source code to all modifications along with it to the external party. There, fixed that for you. You only have to distribute the code to the people to whom you are supplying the binary.
      --
      The creator of this post (Jacob Smith) hereby releases it, and all of his other posts, into the public domain.
    10. Re:Hells yeah by RobBebop · · Score: 2, Interesting

      We don't distribute it, so we aren't required to submit the changes back. We of course, try to contribute back all the changes we possibly can.

      Ahh, the Google workaround for the GPL. Selling web-services that RUN Free Open Source Software and NOT selling software. You get to keep the really good changes to yourself. =P

      Personally, I'd like to see Google put there code out there as GPL and risk having a meaningful competitor. The benefit of having some really useful software available for high school and college aged kids to learn from would be immeasurable. Also, the transparency and openness of this would be reminiscent of some of the advances made by Bell Labs in the 1970s.

      --
      Support the 30 Hour Work Week!!!
    11. Re:Hells yeah by mmonkey · · Score: 1

      To be fair, that depends on whether you're following section 3a or 3b (let's ignore 3c for the moment) of the GPL (and let's, for the sake of argument, assume version 2 of the GPL to save me from actually having to look at the MySQL website to find out which version they use). If you choose 3a, then you must accompany the binary with the source code at the time of distribution. If you choose 3b, then you must "accompany it [the binary] with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code" (emphasis mine).

      Of course, this is just my interpretation, IANAL, YMMV, ABCDEF, XKCD, WTF.

    12. Re:Hells yeah by SimonBelmont · · Score: 1

      WTF are you even talking about? Google should release its source code because it runs on open source platforms? Google makes a few changes to actual OSS, like this article is talking about, and they do release that code back to the community (they open source some internal projects, like GWT). But that's not the same as what runs on top of it. By your logic, nobody should sell commercial software for Linux - it runs on an open platform, so it should be open! Because development is free and companies should be able to make money off of work done by others! And anyway, what's a "meaningful competitor" who just uses code Google open sourced? Wouldn't they just be another Google running in separate datacenters?

    13. Re:Hells yeah by RobBebop · · Score: 1

      WTF are you even talking about? I was talking about Google being a proprietary software company.

      Google should release its source code because it runs on open source platforms? It would be nice...

      Google makes a few changes to actual OSS, like this article is talking about, and they do release that code back to the community (they open source some internal projects, like GWT). But that's not the same as what runs on top of it. Yes, they fix bugs and minor other issues. Good for them. In addition to the base OSS products they use... there is a ton of proprietary code (which the GPP referenced).

      By your logic, nobody should sell commercial software for Linux - it runs on an open platform, so it should be open! Who sells Open Source Software? Tell me! Most companies make their money selling support... Do you think anybody PAYS for a RHEL or Suse license WITHOUT getting the support contract?!?!?

      Because development is free and companies should be able to make money off of work done by others! It is, and Google is. The initial development that went into MySQL didn't cost Google a penny. They spend a marginal amount now and "give" some of that back (gee, thanks). And yet, the advertising giant is making BILLIONS.

      And anyway, what's a "meaningful competitor" who just uses code Google open sourced? Wouldn't they just be another Google running in separate datacenters? Would it be? Or would they be... better? It seems to me that creating a perfect clone of Google's global network wouldn't be worth it unless some additional improvement was added to the base product (i.e. search). Thus... "meaningful competition" and maybe some innovation in the search/advertising arena. Keep in mind... Google started out as a second fiddle to Yahoo and succeeded because their search algorithms were BETTER. These days, a "meaningful competitor" would need a whole suite of applications to be able to offer a competing product to Google. In the Operating System business, which is currently controlled (poorly) by a company who will remain nameless, the proprietary nature of this has lead to stagnation and backwards progress in recent years. Do you understand now, or were you trolling all along?
      --
      Support the 30 Hour Work Week!!!
    14. Re:Hells yeah by _bluevincent_ · · Score: 1

      I disagree, because Oracle is also interested in MySQL.
      http://developers.slashdot.org/article.pl?sid=07/01/29/168235&from=rss

      I think they are not considering MySQL as competitor yet, but maybe PostgreSQL is.
      By the way, Sun Microsystems has been interested in PostgreSQL.
      http://it.slashdot.org/article.pl?sid=05/11/18/0656204

      I dont imagine how Google and Oracle will cooperate in MySQL development and distribution.

    15. Re:Hells yeah by absoluteflatness · · Score: 1

      Yes, they fix bugs and minor other issues. Good for them. In addition to the base OSS products they use... there is a ton of proprietary code

      Well, unfortunately, this is how the world works. I'm sure it'd be great to get all the other code used by every website that runs Apache, MySQL, Linux, or anything open source, but it's never going to happen. Google's doing more than they have to in turning over these enhancements they needed to make MySQL suitable for them. The other option to using and freely altering MySQL is likely using a commercial database, or making one internally. Then who benefits?

      The initial development that went into MySQL didn't cost Google a penny.

      Nope, and it doesn't cost anyone else who uses it any money, either (although I believe MySQL AB sells support contracts). This is the decision you make when you open source your code/project. You get to benefit the world at large (hopefully), and you get the support of many varied contributors (again, hopefully).

      Who sells Open Source Software? Tell me!

      Well, the parent was talking about companies that sell "closed source" software for Linux, of which there are several (though not as many as one would hope). The whole line of conversation is somewhat off-topic, since Google doesn't really sell software, they offer services. Even when dealing with large commerical entities, they generally just install hardware that does the job instead of handing over a copy of Gmail, etc.

      The real point is that companies can't all realistically just give up their code to be open-sourced. Google's main asset now, arguably, is their brand name, but could they have survived in their early years if they gave up all of their implementation and algorithm details? Even considering pure software companies, you point to the selling of support contracts instead of selling the software outright. This works for several classes of software, database management systems for example, but who would buy a support contract for, say, Microsoft Office? Or just about any GUI desktop software. Adobe's products, CAD programs, video editing software and many other types of software (games, excluding those that charge subscriptions) couldn't really survive commercially except under the proprietary model.

      There's an argument to be made that this software shouldn't and won't survive as is, and that may be, but that day has not yet come.

    16. Re:Hells yeah by Anonymous Coward · · Score: 0

      That isnt a GPL workaround dipshit, that is what the GPL is designed and created to do. All OSS licenses are based around the redistribution. if you are not redistributing it, the license pretty much doesnt apply. It isnt a EULA.
      My company would use ZERO OSS if all changes we made were required to be given back. I have yet to hear of a justification or implication that OSS projects have that strict of a desire.

    17. Re:Hells yeah by RobBebop · · Score: 1

      I wish I could reply to you, but I can't because you are an AC. Oh well.

      --
      Support the 30 Hour Work Week!!!
  3. "Do no evil!" - Sweet by y86 · · Score: 2, Interesting

    It's nice to see them giving back.

    If only Microsoft would give back on all the mods it has made to the Unix tools. Example: http://technet.microsoft.com/en-us/interopmigration/bb380242.aspx

    1. Re:"Do no evil!" - Sweet by Anonymous Coward · · Score: 0

      Would you really want them?

    2. Re:"Do no evil!" - Sweet by Machtyn · · Score: 2, Informative
      Do we really *want* Microsoft to give back the code they've made to *nix tools?
      • Anything Microsoft has tried to give to the FLOSS community has had strings attached.
      • Just take a look at any of their OS's, particularly ME and Vista.
      • Take a look at OOXML.
      • Take a look at their "open" license and note that it isn't very open.
      • Even Solitaire has a EULA!
      Okay, so I made that last one up. I'd provide links, but I'm lazy. I'd also try and look up a eula for solitaire, but I should be doing the work I'm actually paid for, heh.
    3. Re:"Do no evil!" - Sweet by Anonymous Coward · · Score: 0

      I'm no MS fan, but I have to disagree with you on their open licenses. The two licenses submitted to the OSI are pretty analogous to the GPL and BSD licenses.

  4. Re:MySQL? by nuzak · · Score: 3, Informative

    Probably because it's a decently-performing ISAM engine with builtin replication. It's not terribly safe (index file integrity is terribly brittle) or smart (it only recently learned there isn't such a date as Feb 30), but you can still at least write ad hoc queries to your tabular data. I doubt Google is using it for HR or CRM.

    --
    Done with slashdot, done with nerds, getting a life.
  5. Re:MySQL? by LWATCDR · · Score: 5, Informative

    I prefer PostgreSQL but MySQL isn't crappy.

    For years MySQL offered better write a few read a lot databases than PostgreSQL. It may still offer better performance for those types of operations. That is the way most websites used MySQL. It is a good tool for some applications. Slashdot is one of them.
    Yes I think PostgreSQL is better but MySQL isn't crappy.

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
  6. Very Niiiice by bostons1337 · · Score: 1

    Sounds like a win win situation for everyone. I've always like MySQL better than Access, not just because its an M$ product. I don't know about all of you but I can't wait to download this and see these new updates. Hopefully it won't just be in the enterprise edition.

    1. Re:Very Niiiice by ThirdPrize · · Score: 1

      The search company has done a lot of work customizing MySQL to meet its special needs, which include better database replication, and tools to monitor a high volume of database instances

      makes me think it will be.

      --
      I have excellent Karma and I am not afraid to Troll it.
    2. Re:Very Niiiice by Chineseyes · · Score: 4, Insightful

      Why on earth would you compare MySQL with Access? I'm more of a Postgres guy myself but even Mysql deserves better than that.

      --
      I think the invisible hand of the market has its middle finger extended

      --A wise old fart named SC0RN
    3. Re:Very Niiiice by Shados · · Score: 3, Informative

      Access isn't "competing" in the same area as MySQL though, SQL Server Express is. MS Access would be more competing with SQLite i beleive (which I never used, so don't quote me, but I beleive that is a less server-centric open source DB?).

      JET (Access' database engine) is more of a data storage engine with SQL support than an RDBMS, which MySQL is (which could have been debatable until v.5 I guess, hehehe )

    4. Re:Very Niiiice by Abcd1234 · · Score: 1

      To provide a more accurate comparison, JET is probably more akin to SQLite, which, BTW, is frickin' awesome.

    5. Re:Very Niiiice by jack_csk · · Score: 2, Informative

      Access is more than just the database. It is a compact tool with little bit of reporting and application development. As a matter of fact, you can have Access connecting to other database engines via ODBC (though the performance sucks in my experience).

    6. Re:Very Niiiice by LurkerXXX · · Score: 1

      True, but it does make for fast prototyping of forms/reports you might then do in another language.

    7. Re:Very Niiiice by Shados · · Score: 1

      It is, but usually when people are comparing Access to other stuff, they refer to JET, not the MS Access application itself.

    8. Re:Very Niiiice by CastrTroy · · Score: 2, Informative

      I'd say that OpenOffice Base competes with Access. As does Filemaker Pro (do they still sell that?). Most other databases do not because they are just storage engines, and don't really offer much in terms of a user interface for creating data entry forms, or displaying reports.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    9. Re:Very Niiiice by sootman · · Score: 1

      MS Access is a database but it's also a complete program with a nice GUI front-end and lots of other stuff. You can make a whole form-based application with Access. MySQL itself is just a raw DB with nothing but a command-line interface out-of-the-box--in that sense, MySQL is roughly comparable to JET. (Scalability, stability, etc. issues aside.) SQLite is a great little thing but it's really just a step up from a flat text file--it responds to SQL syntax but it's not strict at all. You can put arbitrary length strings into integer columns, floating point numbers in boolean columns, or dates in character columns. Overall, the three are not really directly comparable. For some things, you could use any one of the three and not notice the difference. For anything else, only one might do.

      --
      Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
    10. Re:Very Niiiice by Shados · · Score: 1

      Correct. Thank you for finding much better examples :) Don't know why I didn't think of those.

    11. Re:Very Niiiice by david.given · · Score: 3, Informative

      ...SQLite i beleive (which I never used, so don't quote me, but I beleive that is a less server-centric open source DB?).

      It's a non-server public domain database library. Yes, really public domain. Its databases live in files and there's no server component whatsoever; it's intended for use by a single application (although it supports file locking so that multiple processes can access the same database).

      I use it in one of my apps. It's awesome. It's tiny (about 300kB), it's simple (no messing about with starting servers), it's blazing fast (for some tasks, it's up to an order of magnitude faster than PostgreSQL or MySQL --- for others, it's slower, though: benchmarks). More and more programs are starting to use it simply as a document store. It's great.

      If you find yourself wanting to use SQL in a situation where only a small number of apps at a time are going to want access, or even if you just want to teach yourself SQL (it's got an excellent command line shell), do check it out.

    12. Re:Very Niiiice by Bellum+Aeternus · · Score: 1

      Yes, they still make and sell Filemaker. I was just given a RFP for an app using Filemaker. I turned it down without looking much further than the "db" they wanted to use.

      --
      - I voted for Nintendo and against Bush
    13. Re:Very Niiiice by petermgreen · · Score: 1

      Are there any good alternatives for the access application arround?

      Access is a nice tool for experimenting with and teaching databases IMO. One of thee best things about it is the whole database is contained within one file so it can be handled like any other office suite document. Then as your needs grow you can use it as a client with a database server.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    14. Re:Very Niiiice by Anonymous Coward · · Score: 0

      > Why on earth would you compare MySQL with Access? I'm more of a Postgres guy myself but even Mysql deserves better than that.

      Sure, as a server it's faster. But then again ms access has better forms if you want that kind of thing.

      But they both have extremely non-standard and limited sql. Yes, yes, I know - mysql has really talked up how they've added all the latest stuff from 1985 to mysql. And they have. Unfortunately, these basic additions are still so limited that they're not often usable.

    15. Re:Very Niiiice by adamofgreyskull · · Score: 1

      Mods? Parent +1 funny please for trying to perpetuate the comparison between Access and MySQL.

  7. Re:MySQL? by Frosty+Piss · · Score: 4, Funny

    Why did Google choose such a crappy database?
    Clearly they know something you don't.
    --
    If you want news from today, you have to come back tomorrow.
  8. Waiting... by Anonymous Coward · · Score: 0

    I love MySQL and use it for my site but i'm still waiting for some bugs/request features that has been in the tracker for years, like "limit has to be a constant and can't be parameterized" which is very annoying if you're using a stored procedure to fetch a page of results...

    Will it ever be solved?

  9. Transplant to Postgres? by Doc+Ruby · · Score: 5, Interesting

    I prefer Postgres to MySQL. I wonder whether these MySQL revisions will be generic enough to use to improve Postgres.

    I also wish these two databases interoperated more. I'd like to use a MySQL proxy to my Postgres server, so apps depending on MySQL could still work, but use Postgres to actually process the data (or just serve as a master DB for replication). Porting apps between DBs, and huge projects to join across different apps' tables in different types of DB servers should be ancient history. Mixed DB-type clusters might not be high performance, but they'd get the iterative development started, after which performance could be just an optimization, which is the right way to do it anyway.

    --

    --
    make install -not war

    1. Re:Transplant to Postgres? by Anonymous Coward · · Score: 1, Informative

      you just like to be contrarian. If postgres were successful you'd be a mysql man

    2. Re:Transplant to Postgres? by Abcd1234 · · Score: 2, Informative

      I prefer Postgres to MySQL.

      Good for you. Of course, your applications may very well be of a different class, and so perhaps Postgres is a better solution. But remember, if you're doing mostly reads, and not a ton of writes, mysql will blow the socks off virtually any other solution. And, coincidentally, that pretty well describes most web applications in general, and probably Google in particular.

    3. Re:Transplant to Postgres? by jimicus · · Score: 1

      Postgres is completely different under the hood, so I don't think that's terribly likely.

      Bit of a shame in many ways, because while there are commercial addons to Postgres which give decent clustering support - either for HA or performance - AFAICT the free Postgres server can offer very little in the way of clustering.

    4. Re:Transplant to Postgres? by Doc+Ruby · · Score: 1

      They are different. My apps mostly replace the filesystem with DB records, and do a lot of logging for analysis/reporting.

      Of course, the different scenarios we're discussing mean that MySQL would be best as a datamart frontend to Postgres. I'd love to write everything to a Postgres API, then deploy it with a script that ports the Postgres schema to a MySQL, which MySQL just replicates to the Postgres, and presents the MySQL interface to web apps. While the Postgres retains the master data, and presents an interface to apps which do a lot more writes.

      --

      --
      make install -not war

    5. Re:Transplant to Postgres? by shish · · Score: 2, Informative

      if you're doing mostly reads, and not a ton of writes, mysql will blow the socks off virtually any other solution.

      I have a site with 3GB of database, updated once daily, in bulk; the rest of the day it's doing several reads per second over the whole thing (indexed so that it can jump to the right parts for each query; but each query tends to hit a different 5-10% of the rows, so all the data is "active"). I found switching from mysql to postgres gave quite a noticable performance increase -- the whole server was no longer crying in pain and grinding to a halt under heavy load~

      Note that the DB server only has 512MB RAM -- while the database was smaller than that, mysql was indeed the faster :3

      --
      I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
    6. Re:Transplant to Postgres? by laffer1 · · Score: 1

      Isn't there a licensing issue by transplanting to postgres. I was under the impression it was BSDL and MySQL is GPL. Obviously one could use general ideas and implement them again for postgres.

      I'm hoping that MySQL 6 is faster on other operating systems than previous versions. The current design makes many assumptions based on Linux. MySQL is running on many operating systems now and shouldn't be so OS centric. You can get binaries for Windows, Mac OS, Solaris, and many of the BSDs. Some of the FreeBSD 7 benchmarks show a serious improvement with postgres, but terrible MySQL performance.

      Before anyone is critical of my comments, remember that I use MySQL at work and home.

    7. Re:Transplant to Postgres? by LurkerXXX · · Score: 1

      Only if you are using MyISAM tables, which can't enforce foreign key constraints. (meaning you can have junk data and the database won't tell let you input garbage rather than require valid data).

      Personally I prefer the right answer a tenth of a second slower, rather than a wrong answer fast.

      If you use Innodb tables, you have no speed gain over postgresql, and you can't handle the number of concurrent users you could with postgresql.

    8. Re:Transplant to Postgres? by CastrTroy · · Score: 1

      Applications requiring one database or another should be ancient history. However, whenever you look up a how to access MySQL from PHP, you'll find stuff that recommends using all the mysql_* functions. This is the quick way to creating an app that absolutely depends on MySQL. Really people should be using PDO, instead of mysql_ or pgsql_. Of course the real solution is to use a database abstraction layer, but I've never found a good way to create an n-tier web appliction in PHP.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    9. Re:Transplant to Postgres? by Doc+Ruby · · Score: 1

      Postgres is under the BSD license. I wonder whether a developer could port the MySQL GPL code directly to Postgres, and release the Postgres diff as patch, under the GPL. Does the GPL prohibit using a GPL patch on a BSD app?

      --

      --
      make install -not war

    10. Re:Transplant to Postgres? by Anonymous Coward · · Score: 0

      That's just typical /. behaviour.

    11. Re:Transplant to Postgres? by ShieldW0lf · · Score: 1

      Personally, I don't trust MySQL to anything more significant than forum software. Referential integrity is important, strong typing is important, enforcement of declared constraints is important. MySQL can't be trusted with any of these things.

      For a long time, the MySQL team put forth that good design practices were not important. They never did accomplish the task of designing a good table manager. They hobbled along into enterprise space after InnoDB was written by someone else. Now it belongs to Oracle.

      If you trust this database software with anything where accuracy is important, you're asking for trouble. Great for Google, sure. How the hell are we supposed to confirm that it dropped a few pages that might have been more relevant?

      I'll stick with PostgreSQL for my OSS DB needs, thanks. If it's not fast enough, I'll use technologies like memcached.

      --
      -1 Uncomfortable Truth
    12. Re:Transplant to Postgres? by Doc+Ruby · · Score: 1

      I do a lot of writes. It works better than MySQL, and was especially so when I started some of these apps and referential integrity and fuller SQL semantics were supported better by Postgres than by MySQL.

      Google had to upgrade MySQL quite a lot for its use because MySQL needed a lot of improvement. Postgres was a lot closer to what I need right from the start, without having Google's development resources.

      But then, you're an Anonymous Coward. You just like to criticize what you don't understand. If you had a well-founded criticism, you'd post with a consistent username.

      --

      --
      make install -not war

    13. Re:Transplant to Postgres? by MobyDisk · · Score: 1

      I think that is nearly impossible. If you want an app to work with multiple databases, then it needs to go against a standard like ODBC and be as close to the ANSI SQL standard as possible.

    14. Re:Transplant to Postgres? by Doc+Ruby · · Score: 1

      Me too.

      Do you have a way to make Postgres clustering work as well/easily as MySQL clustering?

      --

      --
      make install -not war

    15. Re:Transplant to Postgres? by mysqlrocks · · Score: 1

      Really people should be using PDO, instead of mysql_ or pgsql_. Of course the real solution is to use a database abstraction layer, but I've never found a good way to create an n-tier web appliction in PHP.

      Well not strictly n-tier, you can get pretty darn close with Zend_Db (which contains adapters to PDO), Zend_View, and Zend_Controller.

    16. Re:Transplant to Postgres? by Seumas · · Score: 1

      I do all of my projects in postgres, because postgres did transactions long before MySQL ever got around to it. It would take a significant bundle of improvements above and beyond anything postgres offers for MySQL to sway me over to their system.

    17. Re:Transplant to Postgres? by D'Sphitz · · Score: 1

      because slashdot usernames aren't anonymous?

    18. Re:Transplant to Postgres? by ShieldW0lf · · Score: 2, Informative

      Here's a simple DB Abstraction layer for Postgres.  Just stored procedures, so there's zero possibility for SQL Injection.

      <?php
      class Biz
      {
      // Internal Database Functions
          static private $cs;

          static function SetConnString($connstring)
          {
              Biz::$cs = $connstring;
          }

          static private function SendQuery($q)
          {
              $db = pg_connect(Biz::$cs);
              $r = pg_send_query($db, $q);
              return;
          }

          static private function SendParamQuery($q, $args)
          {
              $db = pg_connect(Biz::$cs);
              $r = pg_send_query_params($db, $q, $args);
              return;
          }

          static private function QueryForRow($q)
          {
              $db = pg_connect(Biz::$cs);
              $r = pg_query($db, $q);
              $a = pg_fetch_all($r);
              return $a[0];
          }

          static private function ParamQueryForRow($q, $args)
          {
              $db = pg_connect(Biz::$cs);
              $r = pg_query_params($db, $q, $args);
              $a = pg_fetch_all($r);
              return $a[0];
          }

          static private function QueryForRows($q)
          {
              $db = pg_connect(Biz::$cs);
              $r = pg_query($db, $q);
              $a = pg_fetch_all($r);
              return $a;
          }

          static private function ParamQueryForRows($q, $args)
          {
              $db = pg_connect(Biz::$cs);
              $r = pg_query_params($db, $q, $args);
              $a = pg_fetch_all($r);
              return $a;
          }

          // Business Functions
          static function AddJournalEntry($PersonID, $EntryTitle, $EntryDetails, $EntryDate)
          {
              $JournalEntry = Biz::ParamQueryForRow('SELECT * FROM addjournalentry($1, $2, $3, $4);', array($PersonID, $EntryTitle, $EntryDetails, $EntryDate) );
              $JournalEntryID = $JournalEntry['addjournalentry'];
              return $JournalEntryID;
          }

          static function GetJournalEntry($EntryID)
          {
              return Biz::ParamQueryForRow('SELECT * FROM getjournalentry($1);', array($EntryID) );
          }

          static function GetPersonJournalEntries($PersonID, $PageSize = 20, $PageNumber = 1)
          {
              return Biz::ParamQueryForRows('SELECT * FROM getpersonjournalentries($1, $2, $3);', array($PersonID, $PageSize, $PageNumber));
          }

      }
      ?>

      --
      -1 Uncomfortable Truth
    19. Re:Transplant to Postgres? by CodeBuster · · Score: 1

      I also wish these two databases interoperated more.

      This can be a sticky issue in software design (i.e. how much support for external systems to include directly in the system). However, it has been my experience that it is better, from a design perspective, to create a standard interface for communications, or use one that has already been defined (W3C Web Services come to mind, but other types are possible) whereby adapters can be built to mediate and facilitate communications between pairs of systems. The use of the adapter pattern creates services which are decoupled from their clients allowing both to vary independently behind their respective interfaces and isolating any changes in the specific adapter(s). This is desirable from a design standpoint, even if it costs some performance (performance alone is almost never a good reason to violate abstraction), because it increases cohesion between components while at the same time reducing and minimizing coupling.

    20. Re:Transplant to Postgres? by ShieldW0lf · · Score: 1

      Man, are you on glue?

      If it has a browser on one end, a database on the other and a web server in the middle, it's an n-tier application. It doesn't even matter if the database is on the same physical server, it's still an n-tier application because the browser isn't directly connecting to the database.

      What you're describing is an application with an MVC architecture running as an n-tier application.

      Hell, if you'd read the link you posted, you'd know that.

      --
      -1 Uncomfortable Truth
    21. Re:Transplant to Postgres? by ShieldW0lf · · Score: 1

      I couldn't comment about making it work as well as MySQL clustering, but I haven't had any problems with using Slony-I. It can be kind of complicated though. I'm expecting that my latest project is going to need some horizontally partitioned materialized views on the slaves to allow it to scale up effectively.

      --
      -1 Uncomfortable Truth
    22. Re:Transplant to Postgres? by mysqlrocks · · Score: 1

      Is rudeness a badge of honor on slashdot (queue the you must be new here jokes)?

      If it has a browser on one end, a database on the other and a web server in the middle, it's an n-tier application. It doesn't even matter if the database is on the same physical server, it's still an n-tier application because the browser isn't directly connecting to the database.

      You've zoomed the focus out a level - we were talking about the application architecture and database abstraction layers. Yes, of course the web itself is n-tier if you're dealing with anything other than a server with static content. That's not what we were talking about. I think pretty much everyone here has some idea how the web works, we were talking about the details of the application architecture.

      FTA that I linked to:

      Conceptually the three-tier architecture is linear. However, the MVC architecture is triangular: the View sends updates to the Controller, the Controller updates the Model, and the View gets updated directly from the Model.

      MVC is technically not n-tier since there is no middleware tier that data must pass through. With MVC, the View can read data directly from the Model. Personally, I like working with MVC and don't find it lacking anything that a "true" n-tier architecture could provide. But, that's just me.

    23. Re:Transplant to Postgres? by Abcd1234 · · Score: 1

      Personally I prefer the right answer a tenth of a second slower, rather than a wrong answer fast.

      No, you prefer that the DB give you more guarantees about consistency (yes, you can get by without FK constraints), at the expense of performance. And a tenth of a second would be a *significant* performance improvement for extremely large volume sites.

      Again, it very much depends on the application involved. Pick the right tool for the right job. Sometimes, that's mysql.

    24. Re:Transplant to Postgres? by CastrTroy · · Score: 2, Insightful

      See, that model falls apart once you have a database with 50 tables. Because you have to load and parse a lot of script for every page load. I'm not sure how much (if anything) is cached by PHP, and how much recompiling has to be done on each load. Also, if you want to break you stuff up into a lot of different classes, with each class in a different file, then it quickly becomes a large mess of stuff to include in each page. I find that this is one of the major advantages of having a compiled language.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    25. Re:Transplant to Postgres? by Mex · · Score: 1

      What the hell is that last emoticon? ":3"

      Is it the elephant man? Is it two eyes and two testicles right below it? Is it the emoticon for "Teabag"?

      I just can't keep up with the internet these days.

    26. Re:Transplant to Postgres? by flooey · · Score: 1

      Is rudeness a badge of honor on slashdot (queue the you must be new here jokes)?

      I'm not really sure, I'm new here.

    27. Re:Transplant to Postgres? by dfetter · · Score: 2

      Applications requiring one database or another should be ancient history. Why on earth would that be? Modern DBMSs aren't just data buckets. They're full-on application servers that happen to have a really killer storage subsystem. In the Free Software space, there's only one that's really modern in that sense, and it's not MySQL ;)

      However, whenever you look up a how to access MySQL from PHP, you'll find stuff that recommends using all the mysql_* functions. This is the quick way to creating an app that absolutely depends on MySQL. That's only a problem because of MySQL's limitations, not because it maxes out MySQL's capabilities.

      Really people should be using PDO, instead of mysql_ or pgsql_. Of course the real solution is to use a database abstraction layer, but I've never found a good way to create an n-tier web appliction in PHP. I've never seen an automatic database abstraction layer that was worth a plugged nickel over the long haul. Other kinds--the kind where you create a database-interaction library and mandate that all database calls go through it--can scale out quite huge. The aforementioned approach has the added bonus of real OO design, which makes it *much* easier to maintain. :)
      --
      What part of "A well regulated militia" do you not understand?
    28. Re:Transplant to Postgres? by compro01 · · Score: 1

      you finally convinced me to actually look that up.

      wikipedia says it's the "kitten face" emoticon.

      --
      upon the advice of my lawyer, i have no sig at this time
    29. Re:Transplant to Postgres? by dfetter · · Score: 1

      Do you have a way to make Postgres clustering work as well/easily as MySQL clustering? Although "clustering" is big in Buzzwordia these days, it's not clear what that term means. Are you talking about high availability? Failover? Read scaling? Write scaling?

      A single-image Postgres box will beat the pants off a MySQL cluster on write-intensive loads. See http://forums.mysql.com/read.php?25,93181,93181 for an example.
      --
      What part of "A well regulated militia" do you not understand?
    30. Re:Transplant to Postgres? by dfetter · · Score: 1

      You can use DBI-Link for this kind of thing :)</>

      --
      What part of "A well regulated militia" do you not understand?
    31. Re:Transplant to Postgres? by kv9 · · Score: 1

      I'm expecting that my latest project is going to need some horizontally partitioned materialized views on the slaves to allow it to scale up effectively. what, no orthogonal e-enabled sinergies?
    32. Re:Transplant to Postgres? by Just+Some+Guy · · Score: 1

      Also, if you want to break you stuff up into a lot of different classes, with each class in a different file, then it quickly becomes a large mess of stuff to include in each page. I find that this is one of the major advantages of having a compiled language.

      Hey, now, as much as I dislike PHP I don't see that "include_once 'foo';" is that much more complicated than "#include ". Also, the "compiled language" concept is a wholly different animal. Having to run a compiler on a piece of code doesn't automatically make it more manageable. Also, I don't know of many purely interpreted languages commonly used anymore. Python compiles to bytecode upon execution (and caches that bytecode for quick startup the next time), as does PHP if you're using any of the free or commercial accelerators.

      I detest PHP, but not for any of the reasons you mentioned.

      --
      Dewey, what part of this looks like authorities should be involved?
    33. Re:Transplant to Postgres? by haystor · · Score: 1

      "Referential integrity is important, strong typing is important, enforcement of declared constraints is important. MySQL can't be trusted with any of these things."

      I think what you mean to say is that you can't be trusted with these things.

      --
      t
    34. Re:Transplant to Postgres? by Doc+Ruby · · Score: 2, Interesting

      I am in fact using DBI-Link to let Postgres queries connect to data in an LDAP DB. You have good reason to proudly plug the SW :).

      You don't know any developers in NYC who would be good for throwing a MySQL datamart up on top of that, would you?

      --

      --
      make install -not war

    35. Re:Transplant to Postgres? by Doc+Ruby · · Score: 1

      I'm talking about HA, including failover, and write scaling. Also supporting separate apps distributed around a network that depend on a single dataset, requiring DB sync, but the write scaling should take care of that.

      --

      --
      make install -not war

    36. Re:Transplant to Postgres? by Anonymous Coward · · Score: 0

      Teabag is: *=3:-D

    37. Re:Transplant to Postgres? by mysqlrocks · · Score: 1

      Why on earth would that be? Modern DBMSs aren't just data buckets. They're full-on application servers that happen to have a really killer storage subsystem.

      I'd rather have my application live in my application code, not in my database server, and treat the database as a "data bucket". Give me a good database abstraction layer that provides me with the least common denominator so that my application can run on any of the databases supported by the database abstraction layer. For me, the database choice is an implementation detail and I should be programming to a common database interface, not a specific database implementation.

      That's not to say there's anything wrong with developing using database specific features if those features are compelling enough for you to choose to be locked in to that specific database. Perhaps a developer may choose to use features of specific databases if those features are available, degrading the application gracefully if the particular database in use doesn't support that feature.

    38. Re:Transplant to Postgres? by ShieldW0lf · · Score: 2, Interesting

      I've got 86 tables at the moment in my latest project, and 231 stored procedures. It's very easy to manage, very secure, and it's easy to reuse the functionality.

      I don't bother using classes to represent the business objects, I just use database views to control the shape of the data that comes back across the stored procedures and pass the properly formatted arrays to another set of functions that generate the appropriate HTML/XHTML/XML as needed.

      When it comes time to do caching, I'll have the ability to add that caching to the data layer within the Biz class and to the middle layer within the appropriate view functions as the usage data comes back.

      As it scales, I'll have no dirty objects within objects within objects to worry about, just arrays and strings to cache and database replication to set up within Biz.

      The database views and stored procedures are the db admins contract with the script writer, while the shape of the various View functions are the script writers contract with the designer. Each role has a great deal of latitude with clearly defined boundaries.

      I've written similar systems that used a more object oriented approach, and while it can work well, I've found that either you have the pain in the ass of maintaining an objects clean/dirty state and using lazy writes, or you have the objects operate as a thin layer over a bunch of db functions and you end up with more db traffic than you need. This avoids that completely.

      Each their own, but this works well for me.

      --
      -1 Uncomfortable Truth
    39. Re:Transplant to Postgres? by ShieldW0lf · · Score: 1

      Those go in Version 2. I'm also adding some pseudo-morphic transformative marketing algorithms that will blow your socks off. You just wait and see.

      --
      -1 Uncomfortable Truth
    40. Re:Transplant to Postgres? by Anonymous Coward · · Score: 0

      I think what he meant to say is that he can't trust 100.0% of the DML statements his servers execute. You also have this problem, assuming any human has ever been granted and used write privileges to any of your tables.

    41. Re:Transplant to Postgres? by CastrTroy · · Score: 1

      Got any open source code? I'd like to see an example of how this works.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    42. Re:Transplant to Postgres? by ShieldW0lf · · Score: 1

      No, but I'm hoping I'll be ready to slashdot my new service by the end of the year if all goes well. Maybe I'll publish parts of it then.

      --
      -1 Uncomfortable Truth
    43. Re:Transplant to Postgres? by einhverfr · · Score: 1

      Slony, Pg-pool, and a number of other Free addons provide different approaches to this issue.

      --

      LedgerSMB: Open source Accounting/ERP
    44. Re:Transplant to Postgres? by einhverfr · · Score: 1

      I will tell you why we selected PostgreSQL to be the only RDBMS supported by LedgerSMB.

      The basic issue is that RDBMS's are often used as light-weight information stores, but they are designed to be powerful math engines which can simplify application development immensely if properly used. You can do some of this using just ANSI SQL, but often you run into limitations which are best solved by using stored procedures basically as named queries.

      The math engine aspects allow us to look at valid data states as a problem which is checked outside the flow of execution of the program, as is security. We can do this because the data is mathematically defined independent of the application flow.

      With a few exceptions, LedgerSMB is going to a one-language-per-file model where HTML, CSS, Javascript, Perl, and SQL are all separated out into different files. This allows for a simpler, easy to follow model.

      --

      LedgerSMB: Open source Accounting/ERP
    45. Re:Transplant to Postgres? by einhverfr · · Score: 1

      Ok (I used to think the same way), but you are losing a number of things:

      1) The ability to mathematically define valid data in the RDBMS so your code only has to worry about security implications of data validation
      2) The ability to separate out the SQL from your code so it is not generally included inline in every one of your object classes.

      Pretty much every bug in software can be reduced to a data state bug or a data flow bug. Using the RDBMS properly can eliminate most or all of the former.

      --

      LedgerSMB: Open source Accounting/ERP
    46. Re:Transplant to Postgres? by einhverfr · · Score: 1

      Slony-I is probably your best answer. Pg-pool might do as well, especially if you use it along with Slony.

      --

      LedgerSMB: Open source Accounting/ERP
    47. Re:Transplant to Postgres? by einhverfr · · Score: 1

      Given how different the internals of the software are, I am not sure there would be any derivation of the PostgreSQL patches from the original code.

      Furthermore, nothing prevents Google from licensing their code with more permissions than the GPL. Hence the BSDL could be used on the patch as well, though again, I very much doubt that it would be helpful to PostgreSQL.

      --

      LedgerSMB: Open source Accounting/ERP
    48. Re:Transplant to Postgres? by Doug+Neal · · Score: 1

      That script is miniscule compared to some PHP libraries that get included in every page on some sites. Any site of any reasonable size is guaranteed to have many more includes than that. It does have to load, parse, and compile every page each time its loaded but that stage of PHP is actually very quick, and can be eliminated by using a plug-in "compiler cache" (APC works well, or Zend Performance Suite if you're willing to pay for it).

    49. Re:Transplant to Postgres? by Hathor's+Dad · · Score: 0

      With a large PHP app there may be many includes. This is a design factor of PHP apps - do you write massive 'pages' and keep you logic and sql, etc in one page or do you go to object orientated and include many pages?

      Truth is that PHP caches well (and if you are using some repetitive look ups in MsSQL it does too).

      As a rule of thumb don't exceed 15 includes....you should be fine.

    50. Re:Transplant to Postgres? by Anonymous Coward · · Score: 0

      > But remember, if you're doing mostly reads, and not a ton of writes, mysql will blow the socks off virtually any other solution

      That's incorrect for several reasons:
      1. innodb is no faster than most other solutions (postgresql, firebird, etc) for reads,
              and in fact is often slower due to a more primitive optimizer
      2. myisam is fast, but doesn't support foreign keys - so many people won't want to use this
      3. mysql doesn't support a viable partitioning solution (hash and range) - so most reporting
              type queries will run far slower on mysql than on a database like db2 or oracle.
      4. mysql doesn't support query parallelism - so queries will only be able to leverage a single
              cpu.

      So, yeah - mysql will blow the doors off any other solution if you don't need foreign keys, only have a single cpu, and don't know how to partition your data. Not really all that useful.

      ken

    51. Re:Transplant to Postgres? by mysqlrocks · · Score: 1

      1) The ability to mathematically define valid data in the RDBMS so your code only has to worry about security implications of data validation

      This is certainly a nice-to-have feature. Just because you're using a database abstraction layer doesn't mean you can't get data validation at the RDBMS level. This could be an example of "degrading gracefully" - the DDL for databases that support it include data validation, others don't. The application can run on either database because it's using a database abstraction layer. The trick here is that the application can't rely on the validation occurring at the database layer which could certainly be a limitation.

      2) The ability to separate out the SQL from your code so it is not generally included inline in every one of your object classes.

      This is exactly what a database abstraction layer should give you. You programmatically define your SQL and avoid literal SQL strings. Let the database abstraction layer handle quoting identifiers and values and building your parameterized SQL statements. You put all of this code in one place and make sure the rest of your application uses it and doesn't access the database directly.

      Pretty much every bug in software can be reduced to a data state bug or a data flow bug.

      All generalizations are bad ;-)

    52. Re:Transplant to Postgres? by einhverfr · · Score: 1

      When I built HERMES, I took the approach of wrapping various forms of database behavior in abstraction layers. Eventually I dropped MySQL because there were some things I needed subqueries for and MySQL didn't support them at the time. I had by that time emulated role-based security on MySQL 3.x which required a *lot* of code.

      Later I have looked at ORMs and the like. I have concluded that there is no good answer to the ORM problem on a math level (though I am slowly reconsidering that perspective, it is clear that nearly all ORM's suck from a relational perspective).

      Also, if all you want is a data bucket, why use MySQL at all? Why not use BDB?

      --

      LedgerSMB: Open source Accounting/ERP
    53. Re:Transplant to Postgres? by mysqlrocks · · Score: 1

      I prefer to keep my application logic out of the database as much as possible. I guess it's just a difference in approach.

      ORM looks interesting, but I've stayed away from it so far. Doesn't seem to add a lot of value for the added complexity.

      Also, if all you want is a data bucket, why use MySQL at all? Why not use BDB?

      MySQL has worked very well for me and I don't have plans to use anything else. It's available on most hosting platforms and scales well (i.e. replication). It's just that I really try to live by the "program to an interface" design principle. Database abstraction keeps my options open in case I fall out of love with MySQL (see my username) or requirements change and a client wants to use a different database server. Well programming to an interface is important, it doesn't mean there aren't implementation details to be considered from time-to-time. Right now, MySQL meets my implementation needs the best.

    54. Re:Transplant to Postgres? by einhverfr · · Score: 1

      I guess you are missing my point.

      If all you are doing is storing and retriving object data and meta-data, why use a relational system at all? Why not program to the interfaces with BDB, the equivalent from GNU, or the like?

      Of course, if you are (like me) creating an accounting/ERP system, then the relational needs are a lot heavier and hence we need to keep quite a bit closer to the db.

      --

      LedgerSMB: Open source Accounting/ERP
    55. Re:Transplant to Postgres? by CastrTroy · · Score: 1

      Lets say that I have 10 classes that I want to use for a certain page. Now to make my code more organized, I have each class in a separate file. Now I have to have 10 include statements. With compiled code, such as .Net or Java, I don't need any include statements as long as the classes are in the same namespace. If the classes are in a different namespace, then I need 1 include statement for each namespace. I could have a separte include statement for each namespace, but who really does that?

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    56. Re:Transplant to Postgres? by mysqlrocks · · Score: 1

      I guess it depends on what we each meant by using the database as a "data bucket". I meant that there are features that are common enough to all modern RDBMSs such that the specific database can be abstracted away. I wasn't suggesting that I didn't want to use the relational features. You contrasted "data bucket" to "full-on application servers" - I'm simply saying I want my code in my application, not in my database. I use Zend_Db as my abstraction layer - all of the database it supports are relational, that is part of the least common denominator.

    57. Re:Transplant to Postgres? by einhverfr · · Score: 1

      What does going with a relational system as opposed to a simple object persistance mechanism give you in this case?

      In an accounting system, we have to do a lot of aggregates and are dealing generally with complex ways of presetning relational data. Yes, this could be abstracted away but you would lose the ability to do certain types of data enforcement unless you put it in stored procedures (for example, the fact that each transaction must have an equal number of debits and credits).

      --

      LedgerSMB: Open source Accounting/ERP
    58. Re:Transplant to Postgres? by LoztInSpace · · Score: 1

      A tenth of a second isn't that much of a big deal so long as the database can work well in parallel. Nobody is going to notice that. It's all about throughput and servicing requests rather than the speed of the individual queries. A proper database can service many requests at the same time.

  10. 6.0 in 2008? by JumboMessiah · · Score: 3, Insightful

    Mysql 5.1 has been in preproduction since November 2005 and still isn't available as a GA release (aka don't use it in production). Are they sure they can get a 6.0 GA release out by next fall?

    This is really good of Google to contribute this back, I'm just wondering how long it will be before we all can utilize their changes. I hate to see the code stay stuck in the devel cycle for three years when Goggle is using it to their advantage right now at this very moment.

    1. Re:6.0 in 2008? by moderatorrater · · Score: 1

      From what I've heard, the problem is that google's using a MySQL 4.x (pre 4.3 iirc) code base, so they have to rework a lot of code to the current base.

  11. I wonder... by dfdashh · · Score: 1

    They are the changes mentioned here, I think. I guess the changes will be ported to MySQL 6 (if any porting needs to be done at all...who knows at this point).

    --
    df -h /my/head
  12. But... by Anonymous Coward · · Score: 0

    SQL injection is useful! That's how I got my first million.

  13. Their grubby little hands by C_Kode · · Score: 0, Troll

    Damnit, Google is just like Microsoft. They always have to get their grubby little hands on everyone elses good stuff. Forkit, I'm forking it! :)

  14. Re:MySQL? by Anonymous Coward · · Score: 1, Interesting

    The comment in the article that foreign keys won't be supported until 6.1 speaks for itself. It might not be *crappy* to some but to me this alone makes it quite useless and this admission is only the tip of the iceburg. I sincerly hope that one day MySQL will graduate from the realm of being a toy DB.. That said toy DB's are quite useful for a number of applications, just not any I personally care about.

    Wake me up when even a single financial institution uses it for transaction processing.

  15. Re:MySQL? by torchdragon · · Score: 1

    No no no, obviously the parent knows far more than a multi-billion dollar company that only specializes in high impact, ridiculous performance databases.

    Duh.

    Linus > Every Linux User. Ever.
    Jobs > Everyone. Ever. We mean it. Seriously.
    Ballmer > Duck! Incoming chair!
    Bush > All you stupid smart people.

    See? Now we can keep growing the list.

    --
    "Don't feel bad for me child; I'm the monster that hides under your bed."
  16. Google needs to add an SQL function by LiquidCoooled · · Score: 5, Funny

    They need to add a GOOGLE function to allow queries to be searched nicer.

    SELECT * FROM articles WHERE GOOGLE('boobies');

    something similar might be available but it is a PITA to list the fields to search and specify the operators etc

    --
    liqbase :: faster than paper
    1. Re:Google needs to add an SQL function by ChakatSanddancer · · Score: 1

      I know it's not quite what you asked, but would this work?

    2. Re:Google needs to add an SQL function by RoloDMonkey · · Score: 2

      I know your just trying to be funny, but what you are describing already exists in MySQL. It's called FULLTEXT.

      --
      Long live the Speaker Bracelet
      Rolo D. Monkey
    3. Re:Google needs to add an SQL function by LiquidCoooled · · Score: 1

      Actually I wasn't and that FULLTEXT indexing method looks really interesting and just the kind of thing I was thinking about.

      Looking at it, they even give an articles table as an example :)

      mysql> CREATE TABLE articles (
              -> id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
              -> title VARCHAR(200),
              -> body TEXT,
              -> FULLTEXT (title,body)
              -> );

      Thanks for the link.

      --
      liqbase :: faster than paper
    4. Re:Google needs to add an SQL function by j.+andrew+rogers · · Score: 2, Funny

      "They need to add a GOOGLE function to allow queries to be searched nicer.

      SELECT * FROM articles WHERE GOOGLE('boobies');"


      I don't know about MySQL, but you can pretty trivially write extensions to PostgreSQL that do exactly this kind of thing. In fact, I've written a number of such extensions to PostgreSQL that make Google resources seem like local resources in a PostgreSQL database. (This kind of deep and easy customizability is one of the things I find to be a killer feature of PostgreSQL relative to many/most other databases.)

    5. Re:Google needs to add an SQL function by Anonymous Coward · · Score: 0

      I'm not sure I follow that. Could you give a more concrete example involving hot grits and Natalie Portman?

    6. Re:Google needs to add an SQL function by RoloDMonkey · · Score: 1

      Thanks for the link.

      Your welcome. I'm glad I could help. With FULLTEXT I was able to write small custom search engine in just a few days.

      --
      Long live the Speaker Bracelet
      Rolo D. Monkey
    7. Re:Google needs to add an SQL function by nuzak · · Score: 1

      MySQL Fulltext indexing is nothing less than a joke. Aside from its laughably poor configurability, its ridiculous stopword policy (anything in >50% of texts is considered a stopword), it only works on MyISAM. And to use it, you have to use some new mutant SQL keywords -- nothing like stored procedures. Oh yeah, get this, you can't customize the morphology, and it suggests separating all your data with delimiters instead. Hope you don't want to actually use it on Chinese or Japanese.

      Now go compare it to tsearch2.

      --
      Done with slashdot, done with nerds, getting a life.
    8. Re:Google needs to add an SQL function by RoloDMonkey · · Score: 1

      I am not suggesting that MySQL FULLTEXT is the end all, be all of indexes. I just pointed out that it existed.

      Here is the missing link to tsearch2. It looks interesting.

      Just so you know, you can override the > 50% stopwords. From the documentation:

      Users who need to bypass the 50% limitation can use the boolean search mode;

      And MySQL 5.1 has made it more flexible:

      In MySQL 5.1, it is possible to write a plugin that replaces the built-in full-text parser. For details, see Section 28.2, "The MySQL Plugin Interface". For example parser plugin source code, see the plugin/fulltext directory of a MySQL source distribution.
      --
      Long live the Speaker Bracelet
      Rolo D. Monkey
  17. okay great by Anonymous Coward · · Score: 0

    Now when is somebody going to actually improve the DATA management aspects of MySQL, rather than the SERVER management? How about making more views updateable? Or at least allowing triggers on views? So I can refactor my databases? Nah, I guess that would require somebody who actually cracked open a book on database theory once.

  18. Google Injection? by RealGrouchy · · Score: 1

    So, does this, like, inoculate MySQL from Microsoft or something?

    - RG>

    --
    Hey pal, this isn't a pleasantforest, so don't waste my time with pleasantries!
    1. Re:Google Injection? by ed.mps · · Score: 1

      if it was a, say, 3.0 injection, the answer would be yessir.

      --
      !sig
  19. Re:MySQL? by LurkerXXX · · Score: 1

    They know for their particular application, if they only return 47,000 hits, instead of 49,500, it's really no big deal. If they return some pages that aren't really relevant, also not a big deal.

    That's kind of a rare use of a database.

    When most of use use databases we need real exact numbers from it. Foreign key enforcement is a must. 'Strict' is not an option.

    That's why they can use a crappy database, because their answers don't have to be complete or entirely correct. Crappy is 'good enough'

  20. In Soviet Russia... by Anonymous Coward · · Score: 0

    SQL has Google injections?

  21. Re:MySQL? by corifornia2 · · Score: 0

    WTF are you guys talking about MySQL has foreign keys you douche bags.

  22. Re:I keep getting this error: by Orrin+Bloquy · · Score: 1

    You never saw "The Abyss," did you.

    --
    "Made up/misattributed quote that makes me look smart. I am on /. and I must look smart."
  23. Re:MySQL? by LurkerXXX · · Score: 4, Informative

    MySQL cannot enforce foreign keys constraints on MyISAM tables. It 'kinda' can on Innodb tables.

    Having them and enforcing them so they are actually useful are 2 different things.

    And if you'd bother to RTFA, you would see that MySQL is moving to away from Innodb to 'falcon'. "but some InnoDB features, like foreign key support and full-text indexing, won't be supported until MySQL 6.1.".

    So MySQL is moving away from the only table types that can actually 'kinda' enforce the use foreign keys at all.

    I think that would make you the douche.

  24. Re:MySQL? by LWATCDR · · Score: 1

    "That said toy DB's are quite useful for a number of applications, just not any I personally care about."
    Like the one you are using right now?

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
  25. Re:MySQL? by marcansoft · · Score: 3, Insightful

    That's like saying PCs are toys, because banks use mainframes to handle your credit card transactions.

    That a device or program isn't suited for a certain task doesn't mean it's a toy.

  26. Re:MySQL? by Anonymous Coward · · Score: 2, Informative

    It's not terribly safe (index file integrity is terribly brittle) or smart (it only recently learned there isn't such a date as Feb 30)

    http://en.wikipedia.org/wiki/February_30

  27. Umm No... by cmdrbuzz · · Score: 2, Insightful

    You'd be wrong then. Have a look at the Oracle Store and you can get Standard One for $149 per user (5 User minimum @$745.00)
    Or you could get unlimited users for $4995 per CPU....

    Oracle is expensive, its just not that ridiculously expensive.

    1. Re:Umm No... by lib3rtarian · · Score: 1

      Umm, Oracle Standard is a lot different than Oracle Enterprise, something you may or may not realize. I was comparing the associated points for Enterprise Level.

    2. Re:Umm No... by cmdrbuzz · · Score: 2, Informative

      Yep Standard is quite different to Enterprise Edition but you can't seriously be comparing MySQL with Oracle Enterprise Edition!

      I can't think of anything that is in MySQL that Standard Edition doesn't deliver. And if your looking at EE then really for $40k per CPU you'd be running
      something that'd be using the EE features like Label Security or some of the Partitioning / OLAP stuff.

      Admittedly as an OCP I might be biased but I wouldn't go near MySQL when there are things like PostgreSQL around, something about wanting my Data Integrity...
      Postgres compares nicely to Standard Edition (well once you factor in the costs its pretty neat for the smaller / lower end stuff) but really EE is only competing with
      DB2 and even then only DB2 on zOS (which rocks!)

  28. Good stuff coming out of google by shmert · · Score: 4, Interesting
    For the Java coders out there, Google is also releasing google collections, which looks quite nice. There's a new interview here with the authors. It's fun stuff to poke around in, and appears to be extremely well-written code.

    Once this stabilizes, I'll probably be using it. It's nice to see such a direct impact on my work from their contributions. Thanks guys!

    --
    You drank my drink, you drunk!
  29. Re:MySQL? by Anonymous Coward · · Score: 0

    I could be wrong, because I am only posting anonymously, but I doubt they are using mysql to do the actual google search itself. Most likely they use it for the write operations involved with adwords and their other clickstream revenue services.

    Even so, I bet they can make use of not requiring all of ACID through using replication, or just not caring to the last click that every click have to get to disk.

  30. Re:MySQL? by Anonymous Coward · · Score: 0

    Probably some combination of query efficiency and inertia.

  31. Re:MySQL? by corifornia2 · · Score: 1, Insightful

    What do you mean 'kinda' it supports them. You get an error if you dont have a parent, you can't delete something if it has children, you have the ability to cascade your deletes/updates . . .

    As far as MyISAM, if you choose it you are choosing it for the speed of its reads . . . you are opting to not have foreign keys. If you want foreign keys, you use InnoDB . . . So saying "MySQL doesn't support foreign keys" is wrong, because it does via InnoDB.

    You use SQL Server dont you . . .

  32. XKCD by youthoftoday · · Score: 1

    Oblig SQL Injection http://www.xkcd.com/327/

    --
    -1 not first post
  33. Re:MySQL? by LurkerXXX · · Score: 2, Informative

    MySQL has many 'gotchas'. Google around for many sites with lists of them. They are slowly cleaning them up, they have a very bad track record of not keeping data clean. Even their latest 'strict' rules still aren't all that strict. The gotchas have traditionally contained plenty of broken foreign key problems.

    The latest versions of Innodb are much better, (earlier versions didn't do any of what you said very well) but now they are going to be moving away from even that.

    I do use SQL Server, and Oracle, and Postgresql. Firebird looks interesting, but I haven't had time to play with it. I've had the unfortunate experience of having to work with some MySQL databases, but I refuse to work with that anymore. I prefer mature databases with a full set of database features. Broken databases written by folks who say idiotic things like 'You don't need transactions' don't interest me.

  34. Re:MySQL? by kv9 · · Score: 1

    They know for their particular application, if they only return 47,000 hits, instead of 49,500, it's really no big deal. If they return some pages that aren't really relevant, also not a big deal.

    you think they're storing the entire interwebs in a MySQL database? last time I checked it was used for AdWords, where exact numbers are indeed really relevant.

    I have heard a lot of scary stories from the bashers but this is a new one. MySQL has trouble counting rows now?

    ps: murk loar

  35. Re:MySQL? by Anonymous Coward · · Score: 0
    WTF are you guys talking about

    You'll see a lot of this sort of astroturf when successful Open Source projects are discussed.

    Bill Hilf's lab has to pay for itself somehow.

  36. Re:MySQL? by Anonymous Coward · · Score: 0

    So your MySQL experience limits itself to "I read some stuff on the internet" and you have an expert opinion now? The parent was right, you are a fucking douchebag.

  37. Re:MySQL? by Anonymous Coward · · Score: 0

    The main reason why most people do not use mainframes: The initial cost of buying.

    Mainframes and similar systems are better than a PC in more or less every aspect.

  38. Re:MySQL? by LurkerXXX · · Score: 1

    Can't read eh? I said I've worked with MySQL.

  39. Re:MySQL? by LurkerXXX · · Score: 1

    If you are used to MySQL bashing, then you should realize the reason for the wrong number of rows is likely from bad data (random defaults put in if any out-of-bounds data is entered, lack of referential integrity from lack of foreign key constraint enforcement etc). It's not trouble counting rows. It's bad data that often results from a non-strict database.

  40. Re:MySQL? by Anonymous Coward · · Score: 0

    This is rediculous. Even MySQLs own documentation states it doesn't even try and compete with the major players. They are going for good enough for many general purpose uses.

    For my purposes their good enough does not cut it and this is what makes it a "toy" to me. When they stop producing releases missing absoultely vital features such as foreign keys I'll reevaluate my *opinion*. Which I have done for several years now it has gotten better over the years and I see no reason for that trend not to continue.

    I have filed several bug reports for missing features and correction of non-complient behavior and several years later they are still unaddressed.

    I've had quite enough of people quoting high performance of MySQL for trivial tasks and people spouting about all these *big name* companies who use it without having any understanding of the underlying issues or context... which make all the difference in the world.

    I can perform thousands of queries against a 100TB CSV formatted text file per second with about 20 lines of code... so what?

  41. Re:MySQL? by cheater512 · · Score: 0, Troll

    I've found that foreign keys are only really useful for incompetent database designers.

    As you can plainly see, MySQL works fine without them.
    The biggest websites on the internet use it.

  42. Re:MySQL? by cheater512 · · Score: 1

    Ah so a incompetent monkey is playing with the code instead of MySQL being at fault?

  43. Re:MySQL? by LurkerXXX · · Score: 1

    Not familiar with MySQL gotchas eh? MySQL has a long history of not keeping your data intact. In a normal database, if there is a constraint on a column limiting it's values to the numbers 1-20, if you try to insert 21 the database will throw an error. For much of it's life, MySQL would silently change the 21 to a 20.

    You can reinvent the wheel in your code if you want, (folks do it all the time, sometimes with success, sometimes having big holes in their code) trying to check things to make up for the fact that your database can't do the basic functions of a database, or you can use a real database that enforces constraints consistently as it should.

  44. Re:MySQL? by einhverfr · · Score: 1

    I actually at least partially disagree with you.

    PostgreSQL used to be a pain to work with. hard to use, and had somewhat interesting problems with things like restoring backups. It is now extremely robust, solid, powerful, and has great performance.

    MySQL is a good database where all you need is a simple interface to try to store data and where you dont care that much if what you get out isn't exactly what you put in. This means simple CMS needs, and simple storage needs. Google would fit that profile.

    However, as an RDBMS, MySQL sucks badly. Yeah, that is like saying that a PC sucks as a mainframe, but...

    --

    LedgerSMB: Open source Accounting/ERP
  45. The Reason Google Chose a Crappy Database by einhverfr · · Score: 1

    I think we can all say that MySQL is pretty crappy at being an RDBMS, compared to PostgreSQL or even Firebird.

    However at the time Google was evaluating versions, PostgreSQL's performance wasn't so great. It was a pain to use and develop for, and backups had a tendency of being dumped in the wrong order so the data could not properly be restored. (I have been using PostgreSQL primarily since 6.5.)

    Firebird? It wasn't even around yet. Sure there was Interbase, but it was not open source.

    And Google didn't need transactions scalable security management, or anything else where MySQL gets fundamentally failing grades. So what did they do? They chose what was the best database at the time as their needs required.

    Today, PostgreSQL is a far better database (will continue to be even after the infusion of Google code since Google obviously isn't using it for anything where a real RDBMS is required), so I would think that if a startup like Google were starting today, a different choice might have been made. But for the time it was made, it wasn't a bad choice.

    --

    LedgerSMB: Open source Accounting/ERP
  46. What makes you think that JET is relational? by einhverfr · · Score: 1

    Note that JET is used by Access to store relational data, but it is also used by Exchange to store nonrelational data. There is no SQL support in JET. It is not like SQLite so much as like BDB.

    --

    LedgerSMB: Open source Accounting/ERP
    1. Re:What makes you think that JET is relational? by Shados · · Score: 1

      JET (Access' database engine) is more of a data storage engine with SQL support than an RDBMS
      I'll admit I didnt know JET didn't have SQL support, since you can query it quite well with SQL through ODBC (which, if you're right, means the SQL support is at a higher level), so I stand corrected on that, but to your post's header, I was quite clear that I didn't think it was NOT a relational database, and was a data storage.
  47. Unlikely by einhverfr · · Score: 1

    PostgreSQL is BSD licensed, MySQL is GPL licensed.

    But aside from that, it is unlikely that Google's code contributions go beyond general performance benefits, management of large numbers of systems, and maybe full text search.

    PostgreSQL 8.3 already will have a great, mature full text search capability, is far easier to manage in large environments, and can handle more complex loads than MySQL can. So I don;t think that there is likely to be a lot of useful ideas which could be transplanted.

    Finally, the architecture of the programs are entirely different. MySQL uses a single process, multithreading model (which has lead to nteresting cases where a thread can cause the entire service to stop working!) while PostgreSQL uses a forking process model.

    THe two are fundamentally different.

    --

    LedgerSMB: Open source Accounting/ERP
  48. Re:MySQL? by einhverfr · · Score: 3, Insightful

    Actually, there are several cases where you may think that MySQL has foreign keys when it doesn't. So the support of foreign keys is not entirely complete.

    If innodb is not installed, you get a MyISAM table without the foriegn key enforcement and not even a warning is given on table creation (you do get a warning when you insert, but the application is unlikely to be watching).

    CREATE TABLE table2 (
            id int autoincrement primary key,
            foreign_id int references table1(id),
            test text
    ) type=innodb;

    CREATE TABLE table2 (
          id int autoincrement primary key,
          foreign_id int,
          test text,
          FOREIGN KEY foreign_id REFERENCES table1(id)
    ) type=innodb;

    In one of the above examples (won't say which one ;-) ), you don't get foreign key enforcement. No warning. just no enforcement.

    Yes, MySQL has foriegn keys. It doesn't have them 100% but it does have them.

    --

    LedgerSMB: Open source Accounting/ERP
  49. Re:MySQL? by einhverfr · · Score: 1

    So have I. I have even written published papers introducing MySQL. And Lurker is right on pretty much all his points.

    Now, all software has gotchas, but MySQL's ones are unusually severe.

    I would also point out that once you have done serious work with a *real* RDBMS, you will tend to get frustrated when you have to go back to MySQL.

    --

    LedgerSMB: Open source Accounting/ERP
  50. As a PostgreSQL guy by einhverfr · · Score: 1

    I write serious business applications. I have done serious work with MySQL, Firebird, and PostgreSQL. In general, I would say that PostgreSQL is the best of the three.

    Now, contrary to your opinion, PostgreSQL is actually quite successful It is just not as visible because it has not historically been as good at the super-simple website app stuff. However, I would not trust any money-tracking applications (not even a shopping cart) to MySQL.

    --

    LedgerSMB: Open source Accounting/ERP
  51. Take a look at DBI-link by einhverfr · · Score: 1

    It allows you to access MySQL from within PostgreSQL. You can also access anything else you can reach via Perl's DBI interface.

    --

    LedgerSMB: Open source Accounting/ERP
  52. Maybe in return by einhverfr · · Score: 1

    Google will get a MySQL injection....

    --

    LedgerSMB: Open source Accounting/ERP
  53. Exactly by SmallFurryCreature · · Score: 1

    I get this time and time again, websites that are 99% reads, with a few scattered writes, yet people insisting we need a "proper" database for that. ACID? Transactions? Rollback? FOR WHAT!

    Worsed example ever, simple webpage that allowed people to post their phone number to take part in a price draw. ANY kind of database is overkill for that and yet I had to argue against the proper IT guy wanting another oracle license for the server that would host it.

    Geez, the only reason I used a database was to make it easier to search for duplicates, so I could tell the user if they had already entered.

    Note that this post has how big business doesn't use MySql. Apparently google doesn't count.

    Offcourse it makes sense, if you work in an enviroment where you boss wasted money on Oracle, his boss wasted money on Oracle, you are hardly likely to make them look like fools and use a free product. Costs savings? Yeah, the bosses will be into that, the moment they fire you and save your salary for making them look bad.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

  54. What's a "database" any more? by sfranklin · · Score: 1

    It's interesting how a "database" means something much different than it did just a few years ago. Oracle has been selling their DB for years now not based on the relational data storage ability of the product, but on the other things you can do: monitoring, high availability, business intelligence queries, etc. For instance, one of the big selling points of Oracle 11g is the ability to build OLAP cubes within the database engine. That's a big leap from what I've traditionally thought of as "database functionality".

    These additions to MySQL by Google shows that it's going the same way. Makes you wonder what "database" is going to mean 5 years from now.

    --
    Skip Franklin
    It's always darkest just before it goes pitch black. -- despair.com
  55. Re:MySQL? by Anonymous Coward · · Score: 0

    > I've found that foreign keys are only really useful for incompetent database designers.

    Quoting from the official MySQL 3.x documentation are we? Funny how things like that would disappear once mysql got such a feature.

  56. INNODB fix??? by Anonymous Coward · · Score: 0

    What I want to know is when will the INNODB engine get fixed from it's ticking timebomb of perpetual and irreversible expansion? I like the engine, but that's a WICKED flaw. I ran a test once which resulted in 40 gigs, then cleared the table, and the 40 gigs is STILL there. That's GOT to be fixed. At least POSTGRESQL doesn't have that problem.

  57. Re:MySQL? by corifornia2 · · Score: 0

    The lack of your ability to install the InnoDB engine and user correct syntax doesn't mean it doesnt have foreign keys.

  58. Re:MySQL? by einhverfr · · Score: 1

    Yes, but it does mean that as a programmer, you can't count on your user having foreign key enforcement.

    The issues are:

    1) Only *some* MySQL servers have foreign keys
    2) Valid SQL syntax for foreign keys is silently ignored.

    #2 isn't a huge issue but it leads to bugs. #1 is the killer when you are distributing real software.

    --

    LedgerSMB: Open source Accounting/ERP
  59. Why Google is contributing now? by mohanbabu · · Score: 1
    There is an interesting take on why Google, one of the largest MySQL users, is contributing to MySQL now. Cloud Computing! The article also explains why Google and MySQL AB are partnering http://www.pbs.org/cringely/pulpit/2007/pulpit_20071026_003304.html/

    Here is what's significant about Google putting code into MySQL: they haven't done it before. Google has been a MySQL user from almost the very beginning, customizing the database in myriad ways to support Google's widely dispersed architecture with hundreds of thousands of servers. Google has felt no need previously to contribute code to MySQL. So what changed? While Google has long been able to mess with the MySQL code in ITS machines, it hasn't been able to mess with the code in YOUR machine and now it wants to do exactly that. The reason it will take so long to roll out MySQL 6.1 is that Google will only deliver its MySQL extensions for Linux, leaving MySQL AB the job of porting that code to the 15 other operating systems they support. That's what will take until early 2009.
  60. Re:MySQL? by eihab · · Score: 1
    From the article:

    The big change in 6.0 will be the availability of MySQL's storage engine, Falcon. The most popular storage engine for MySQL has historically been InnoDB, but two years ago Oracle acquired InnoDB's developer, Innobase. Oracle continued to license the software to MySQL, but MySQL wanted an alternative.

    Falcon will do crash recovery and roll-back operations faster than InnoDB because they are done from main memory, Schumacher said, but some InnoDB features, like foreign key support and full-text indexing, won't be supported until MySQL 6.1.

    MySQL's default engine (since 5.0?) is innoDB, which supports foreign keys just fine (I have a database full of them). The article was talking about the new engine coming in MySQL 6 called Falcon, which doesn't have foreign keys support yet.

    See, the way MySQL works, you can specify an engine for each table (MyISAM, InnoDB, MEMORY, etc.).

    Different engines have different characteristics, so for example if you have a "connected sessions" or "active users" table, you can use MySQL's Memory Engine so that the entire thing is in memory all the time. I didn't use that specific engine before, but I believe you lose the data when you kill the mysqld process (I could be wrong).

    I like the concept of having different engines since you can choose an engine that was designed to closely suit your needs for a particular table, and will probably help you squeeze more performance out of your database (along with query caching and what not).

    I think Oracle has a similar feature, I'm not sure though since I'm not an Oracle DBA (Or a any DBA for that matter).
    --
    If you can't mod them join them.