Slashdot Mirror


Ask Database Guru Brian Aker

Brian Aker is Director of Architecture for MySQL AB. He has also worked on the code (and database) that runs Slashdot, and is well-known in both Apache and Perl circles. Outside of the arcane world of open source "back-end" programming, though, hardly anyone has heard of him. This is your chance to ask Brian (hopefully after looking at his blog and Wikipedia listing) about anything you like, from Perl to database architecture to open source philosophy to upcoming events in Seattle. We'll send Brian 10 of the highest-moderated questions approximately 24 hours after this post appears. His (verbatim) answers will appear late this week or early next week.

232 comments

  1. You & Google by eldavojohn · · Score: 5, Interesting

    What is your take on Google's enhancements? Do you fear that Google's upcoming code donation is going to make them a large stakeholder in the future of MySQL? What impacts (if any) do you think this will have--especially on your decisions as a director?

    --
    My work here is dung.
  2. Environmental Science? by eldavojohn · · Score: 1, Interesting
    From your Wikipedia article:

    After graduating with triple majors in environmental science, computing and mathematics, from Antioch College... Why environmental science? I don't see anything on your blog related to it. I mean, the computers & math make sense but do you have a love or desire for environmental science? Do you feel this has contributed or influenced in some way your outlook on the world of databases or life in general?
    --
    My work here is dung.
    1. Re:Environmental Science? by smittyoneeach · · Score: 1

      Why on earth did this apparently reasonable question get tanked? Is it insufficiently technical?

      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    2. Re:Environmental Science? by Anonymous Coward · · Score: 0

      Yeah, I think I was either off topic or not technical enough or maybe coming off as an asshole.

      It happened really quickly after I posted it so even if it was reasonable, people's thresholds probably didn't read it at all.

      Either way, that's how the site's supposed to work, I genuinely was interested in his response as environmental science is the last thing I would peg a tech 'guru' to have under his/her belt.

      Oh well.

    3. Re:Environmental Science? by smittyoneeach · · Score: 1

      Possibly some emotional scar tissue involving a brunette hottie, a chicken suit, and a jug of hooch.
      But I speculate.

      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    4. Re:Environmental Science? by Anonymous Coward · · Score: 0

      Maybe he annoyed a sock puppeteer?

  3. Object databases? by Cyberax · · Score: 4, Interesting

    Do you see a future for object databases? They are quite nice for some applications, but there are no real industrial-grade OpenSource implementations.

    1. Re:Object databases? by Anonymous Coward · · Score: 1
      Let me answer that question from my perspective. From my vantage point, (I am the IT specialist at my 851 employee company), there is a bright future indeed. I need a DB that has a programmable GUI.

      Think of Microsoft's Access or Delphi. Though I fell in love with MySQL, I have never been able to grab a [free] programmable GUI for it. What I see are web front ends that in many cases appear incomplete!

      I need to add "business logic" to the DB via the forms. Right now, trying to program the available front ends is more of an exercise in frustration than actual work.

    2. Re:Object databases? by daniel_newton · · Score: 2, Informative

      db4o (http://en.wikipedia.org/wiki/Db4o) is an open source object database. Apparently BMW, Boeing, Intel and others think it is "industrial grade".

      It has a Java and a .NET version.

    3. Re:Object databases? by Cyberax · · Score: 1

      We're using it. It's a nice small database, very good for J2ME and small devices.

      But even the authors of db4o say that it's not suitable for multi-gigabyte enterprise databases. For example, queries and query optimizer in db4o is a joke. Restructuring and versioning are primitive, etc.

    4. Re:Object databases? by Tablizer · · Score: 1

      (reply to reader) I agree that a programmable GUI front-end to DB's is a very useful tool. However, I'm not sure such a tool should hard-wire itself to a particular vendor's DB. It would be nice to see a DB-vendor-neutral front-end. I've even been working on an OSS one myself. (It's geared toward power-users, not end-users.)

    5. Re:Object databases? by os10000 · · Score: 1

      I would claim that PostgreSQL is an object database. This is based on the following taxonomy of 4 variants of what "object" means: 1) relational with object extensions -- this of course being the PostgreSQL people; 2) object stores with declarative query language; 3) knowledge management rule base systems; 4) persistent programming language stores. In fact, when the "2)" camp published the "object database manifesto", the "1)" camp (the empire) struck back with the "third generation database manifesto". My personal criteria for calling something DBMS are: ACID properties, declarative query language, query optimiser, larger than volatile memory dataset handling.

    6. Re:Object databases? by Tablizer · · Score: 1

      (internal reply to reader)

      Do you see a future for object databases?

      What constitutes an OODB is not very consistent. Some feel OO is mostly about behavior, while DB's tend to view things as "naked" attributes. Bertrand Meyer (of OOSC2 book fame) described this problem. Plus, they are "navigational databases" not too dissimilar to the kind tried in the 60's and 70's already. Their alleged chaotic "pointer-hopping" foulness prompted Dr. Codd to formulate relational.

      They are quite nice for some applications

      I'd like a to see a demonstration app. Generally past cases where people claimed that an OODBMS would be better are really cases where existing RDBMS are simply not dynamic enough. In my opinion, the real solution would be dynamic RDBMS, not OODBMS. Unfortunately, they don't really exist yet.

    7. Re:Object databases? by Lennie · · Score: 1

      And I thought you'd mention that a table is a class and can be extended by other tables (read: classes).

      Well, maybe you did, but I didn't understand.

      --
      New things are always on the horizon
    8. Re:Object databases? by EvilRyry · · Score: 1

      Is this a limitation of db4o or a limit of the object database concept?

    9. Re:Object databases? by logicnazi · · Score: 1

      To be a fully OODBMS rather than a ORDBMS I would say that the database had to efficently support navigational access. That is if I want to store a linked list of objects into the database if should allow me to efficiently access them in some maner.

      I'm not sure if any database can do this but what an OODBMS should really do is allow you to execute queries over an arbitrary navigational structure. For instance I should be able to ask questions like, "Can I get to an object O satisfying O.x+O.y=O.z by starting with object A and following A.next and A.prev as many times as needed."

      Though to be fair some of the object inadequacies result from deficiencies of SQL.

      --

      If you liked this thought maybe you would find my blog nice too:

    10. Re:Object databases? by Pseudonym · · Score: 1

      Relational databases support SQL, which is somewhat fragmented with vendor peculiarities, but is nonethless a standard of sorts (as well as being a real standard).

      Object databases have a standard interface, but to a first approximation, nobody implements it.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    11. Re:Object databases? by Anonymous Coward · · Score: 0

      Score:6 Interesting

    12. Re:Object databases? by Cyberax · · Score: 1

      No, it's a limitation of db4o. "Big" object databases like Versant have a pretty good optimizer, but they cost $$$$$$

    13. Re:Object databases? by DragonWriter · · Score: 1

      I'm not sure if any database can do this but what an OODBMS should really do is allow you to execute queries over an arbitrary navigational structure. For instance I should be able to ask questions like, "Can I get to an object O satisfying O.x+O.y=O.z by starting with object A and following A.next and A.prev as many times as needed."


      Oracle can do that for lots of the most common constructs heirarchical queries (with the CONNECT BY construct); DB2 has what I believe is a more general solution with recursive queries (with the WITH construct).
    14. Re:Object databases? by einhverfr · · Score: 1

      In PostgreSQL, see ltree and tablefunc contrib modules for navigational access.

      LedgerSMB 1.3 will be storing the arbitrary depth nested menus in the db and use tablefunc's connect_by() to generate the tree.

      BTW, I think Oracle uses CONNECT BY while DB2 uses WITH RECURSIVE. I could be wrong, however.

      --

      LedgerSMB: Open source Accounting/ERP
  4. Slashdot's Future by eldavojohn · · Score: 4, Interesting
    From your Wikipedia article:

    He then moved to work on Slashdot, where his initial task was to rewrite the database back-end to use Oracle. However, he extended the system to ensure it allowed multiple database back-ends, and became a published author along the way, writing Running Weblogs with Slash. From 2001 to 2007 he posted stories on Slashdot under the Author name of "Krow". What do you think about the current state of Slashdot? Do you have any criticisms or praise for its current state compared to where it was when you worked on it? What do you see in the future of it, if anything at all?

    Also, why do you select the nickname "Krow" for both Slashdot & your blog?
    --
    My work here is dung.
    1. Re:Slashdot's Future by syntaxglitch · · Score: 1

      Also, why do you select the nickname "Krow" for both Slashdot & your blog?

      I'm going to take a blind stab and guess that the reason is because blogging or posting on slashdot is precisely the opposite of "work". Probably wrong, though.

      With the reversed spelling there's got to be a Soviet Russia joke in here somewhere but I can't find it.

    2. Re:Slashdot's Future by Anonymous Coward · · Score: 0

      In Soviet Russia, reversed-spelling joke can't find YOU!

    3. Re:Slashdot's Future by maxwell+demon · · Score: 1

      With the reversed spelling there's got to be a Soviet Russia joke in here somewhere but I can't find it.

      Here it is: .UOY sesrever gnilleps ,aissuR teivoS nI
      --
      The Tao of math: The numbers you can count are not the real numbers.
  5. Archie McPhee's by A+nonymous+Coward · · Score: 2, Interesting

    Do you ever get out to Archie McPhee's?

    I've only been to their store once, but I mail order stuff all the time. Great cubicle toys. The best rubber chickens money can buy outside an art museum :-)

  6. Misconceptions by The+Clockwork+Troll · · Score: 5, Interesting

    From your perspective, what's the biggest public misconception about MySQL and what (if anything) is MySQL AB doing to correct it?

    --

    There are no karma whores, only moderation johns
  7. As a Guru... by eldavojohn · · Score: 5, Interesting

    What do you see as being the biggest inhibiting factor in the world of databases? If you could snap your fingers and have one piece of software/hardware changed or removed or improved today, what would it be?

    --
    My work here is dung.
  8. Replication by neoform · · Score: 5, Interesting

    When can we get replication that isn't brutally difficult to setup and maintain.

    Example, slaves that can be started blank and copy all necessary files without needing to have a copy of the databases already.

    --
    MABASPLOOM!
    1. Re:Replication by Anonymous Coward · · Score: 0

      Eh, this is easily done today.
      Then again, perhaps you don't have the master's binlogs left?
      Perhaps you don't have a staging server?

      You've two options; one is LOAD DATA FROM MASTER, the other is to have binlogs saved and start replicating from the beginning.

      There are replication gotchas - no arguments there, but calling replication brutally difficult to set up and maintain is quite the stretch..

      --r

    2. Re:Replication by neoform · · Score: 1

      Compared to the replication in postgres and oracle, mysql is quite a pain.

      --
      MABASPLOOM!
    3. Re:Replication by einhverfr · · Score: 1

      Because MySQL handles something like:

      Insert into mytable (myvalue) values (random());

      so well.....

      Actually once you start getting into stored procedures, race conditions and the like could play havoc with statement-level replication. I would not use that unless I had no other choice and then only for a few narrowly defined sets of databases.

      --

      LedgerSMB: Open source Accounting/ERP
    4. Re:Replication by Anonymous Coward · · Score: 0

      Postgres has replication??

  9. Largest challenges by KevMar · · Score: 4, Interesting

    What were you largest challenges or features that gave you the most greif when implementing them in MySQL?

    --
    Im a gamer, not a grammer major. This post is full of spelling and grammer mistakes.
    1. Re:Largest challenges by Anonymous Coward · · Score: 0

      Transactions. Or it will be, when he gets round to it. (Yes, I know)

    2. Re:Largest challenges by Just+Some+Guy · · Score: 2, Funny

      This post is full of spelling and grammer mistakes.

      It's spelled "grammar".

      --
      Dewey, what part of this looks like authorities should be involved?
    3. Re:Largest challenges by Hognoxious · · Score: 1

      Fuck me, really? They should think up a name for that. They should think up a name for things that reflect or refer to themselves.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    4. Re:Largest challenges by Just+Some+Guy · · Score: 1

      They should think up a name for things that reflect

      Mirror? I'm on a roll.

      --
      Dewey, what part of this looks like authorities should be involved?
    5. Re:Largest challenges by insertwackynamehere · · Score: 1

      A roll? But I asked for a platter! :O

    6. Re:Largest challenges by Anonymous Coward · · Score: 0

      A roll? But I asked for a platter! :O

      Which makes sense, since a silver platter is also a mirror...

  10. Why MySQL? by eldavojohn · · Score: 5, Interesting

    What is it about MySQL that caused you to create so much for it and to become a director for it? You're obviously very talented, why didn't you pick some other open source database (I don't mean to incite a religious war here)? Was it political? Was it because of friendships or really for technological reasons?

    --
    My work here is dung.
    1. Re:Why MySQL? by einhverfr · · Score: 1

      Just as a (sympathetic) note here from a PostgreSQL guy.

      I stopped working with MySQL when PostgreSQL 7.3 came out. Prior to that, I did most of my prototyping on MySQL and then would move the scripts over to PostgreSQL (which I did since PostgreSQL 6.5). The basic facts are:

      1) Prior to 7.3, PostgreSQL, while superior in many ways, was just a pain to deal with when trying to prototype databases (dropping a column was one of the big issues... you couldn't). MySQL was so much easier to work with.
      2) Firebird, Ingress II, were not available.

      As much as I advocate PostgreSQL for *all* tasks now, there was a time when this was not the case.

      --

      LedgerSMB: Open source Accounting/ERP
  11. Big Ah Ha moments by KevMar · · Score: 3, Interesting

    What was your bigest ah ha moment? Did you ever have a solution to a problem that got you excited? Or had you drive in on your off hours/day off just to see if it would work? Or called someone in the middle of the night about?

    --
    Im a gamer, not a grammer major. This post is full of spelling and grammer mistakes.
  12. The Moneys by eldavojohn · · Score: 4, Insightful

    Are you ever tempted to throw away your open source development position for a possibly much higher paid closed source development position? If so, how do you cope with living in a capitalistic society and not taking advantage of (or even seeking for that matter) higher paying opportunities?

    I mean, come on, you can't tell me you've never been offered more money (although probably a lower position) at another company. What 'keeps' you at MySQL AB?

    --
    My work here is dung.
    1. Re:The Moneys by breem42 · · Score: 1

      According to Wikipedia:

      > MySQL is owned and sponsored by a single for-profit firm, the Swedish company MySQL AB,
      > which holds the copyright to most of the codebase.

      So perhaps this is not such altruistic behavior on Krow's part after all.

      --
      If the answer is war, you are asking the wrong question
  13. Data Truncation by FroMan · · Score: 5, Funny

    Is it valid behavior to silently tru

    --
    Norris/Palin 2012
    Fact: We deserve leaders who can kick your ass and field dress your carcass.
    1. Re:Data Truncation by $RANDOMLUSER · · Score: 1, Offtopic

      I wish I had mod poi

      --
      No folly is more costly than the folly of intolerant idealism. - Winston Churchill
    2. Re:Data Truncation by Anonymous Coward · · Score: 0

      No, which is why you set SQL_MODE to something sane. And it was quick'n'easy, like all bad, popular things, including PHP, Perl, Unix, and C.

    3. Re:Data Truncation by Ed+Avis · · Score: 1

      Why, yes, I _was_ born on February 30th, you insensitive clod!

      --
      -- Ed Avis ed@membled.com
    4. Re:Data Truncation by Just+Some+Guy · · Score: 1

      No, which is why you set SQL_MODE to something sane.

      ...as opposed to the completely freakin' insane default settings. As long as the defaults are totally broken, many people will regard it as a toy database. Whether it is or not, these are the issues that give it that reputation.

      --
      Dewey, what part of this looks like authorities should be involved?
    5. Re:Data Truncation by theskipper · · Score: 2

      Me to

    6. Re:Data Truncation by Anpheus · · Score: 1

      When can the community expect a reasonable, and open discussion about setting sane defaults for MySQL?

      Where the community cannot reach consensus, no default should be specified and the user should be asked.

    7. Re:Data Truncation by einhverfr · · Score: 1

      Let's hack the system to cause it to give you additional mod points every February 30th....

      --

      LedgerSMB: Open source Accounting/ERP
    8. Re:Data Truncation by einhverfr · · Score: 1

      Actually the real problam is more fundamental. As long as the application can say "don't validate my data" then you can;t assume that the data in the db has been validated. Some clients may use strict mode while other clients may allow for data trunati

      --

      LedgerSMB: Open source Accounting/ERP
    9. Re:Data Truncation by einhverfr · · Score: 1

      I don't care about default or administrator-defined values. If the option was available for administrators to *require* Strict mode (no turning it off by arbitrary clients), and if administrators could tell the RDBMS not to start if, say, innodb wasn't found, and if client applications could easily test for innodb support, then I would complain a lot less.

      The problem is a fundamental one relating to an attitude that data integrity checking should be an optional feature available to the client. As long as this is the case, it cannot be relied on.

      --

      LedgerSMB: Open source Accounting/ERP
    10. Re:Data Truncation by jadavis · · Score: 1

      No, which is why you set SQL_MODE to something sane

      It would be interesting to know which of these have more application support:
      (a) MySQL configured sanely
      (b) PostgreSQL

      I just recently encountered a large application with only simple database access, and it worked with MyISAM but not with InnoDB.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    11. Re:Data Truncation by Anonymous Coward · · Score: 0

      The sensible default setting for mysql is to throw it away and install postgres. Or anything else.

  14. Bug Process by Anonymous Coward · · Score: 0

    I'd really like to know your response to the post MySQL Quality of old and new features.

  15. Authentication systems by siezer · · Score: 4, Interesting


    Are there any plans to enhance the authentication capabilities of the server to match what's available with Postgres/Oracle?
    One thing I've always wished for is the ability to authenticate user/service access to databases and tables via other backends (pam_krb5, SASL, ldap, etc). This ability (imho) would result in wider adoption in certain IT shops where compliance officers and checklist junkies would opt to instead shell out for Oracle Advanced Security or something similar.

    -s

    1. Re:Authentication systems by Tablizer · · Score: 1

      Are there any plans to enhance the authentication capabilities of the server to match what's available with Postgres/Oracle?

      Oh please, no!!!! Unless you are the IRS or the FBI, don't make everyone do the Oracle Dance to connect to the #@&!% database. It's easier to put the 1's and 0's in wheelbarrows and wheel them around.

    2. Re:Authentication systems by einhverfr · · Score: 1

      Also I would note that MySQL's authentication system is a real pain to manage for a large user-base, and the fact that usernames are not guaranteed to be unique (since the host is part of the auth credential) strikes me as a foot-gun.

      It would be much nicer to have a nice system like PostgreSQL has, where you can assign various hosts to auth methods, but usernames are unique. Also external auth methods like Kerberos and PAM would be nice (PostgreSQL already has these, though I think that the Kerberos support could be improved).

      --

      LedgerSMB: Open source Accounting/ERP
    3. Re:Authentication systems by ScrewMaster · · Score: 1

      strikes me as a foot-gun.

      Podal pistol?

      --
      The higher the technology, the sharper that two-edged sword.
    4. Re:Authentication systems by Jay+Pipes · · Score: 1

      "It would be much nicer to have a nice system like PostgreSQL has, where you can assign various hosts to auth methods, but usernames are unique."

      So, if you had a single user, but wanted different security depending on where they connect from (local or remote), you need two usernames? In MySQL it's simple and easy to set up that common scenario.

      As for various auth methods, there are plans for authentication plugins to allow it, but as far as changing the core system, I would prefer to keep it as simple and easy as possible, with complexity provided through plugins. See here:

      http://forge.mysql.com/wiki/PluggableAuthenticationSupport
      http://forge.mysql.com/wiki/PluggableAuthorizationSupport

      Cheers,
      j

      --
      Jay Pipes Community Relations Manager, North America MySQL, Inc. -- jay at mysql dot com
    5. Re:Authentication systems by einhverfr · · Score: 1

      Define "different security?"

      The user has different permissions?
      Or you want to limit connections by a specific user to specific computers or want to require some other credentials depending where they log in from?

      I have never seen a situation where different permissions are required so I very much doubt that this is common. In PostgreSQL, you just set it up to specify that cetain user and/or host combinations require a different form of authentication. For example, you could use Kerberos for intranet connections, and PAM with a certificate for connections from home.

      --

      LedgerSMB: Open source Accounting/ERP
    6. Re:Authentication systems by Jay+Pipes · · Score: 1

      Yes, indeed, different privileges. For instance, it's very common for me to have a user with CREATE/INDEX/DROP permissions on localhost, but for security reasons, restrict the privileges to SELECT for the same user connecting via a remote host to do some reporting functions...hope that makes sense. "In PostgreSQL, you just set it up to specify that cetain user and/or host combinations require a different form of authentication." I see. Although, I guess I'm talking less about authentication and more about authorization/privileges... I don't see too much of a need to have separate authentication mechanisms in the work I do, but, as always, different needs for different apps, eh? :) Cheers! -jay

      --
      Jay Pipes Community Relations Manager, North America MySQL, Inc. -- jay at mysql dot com
    7. Re:Authentication systems by einhverfr · · Score: 1

      That still seems like a footgun to me. It is better to use an administrative user for the admin functions. This introduces a lot less complexity and creates fewer problems down the road as components migrate around the network. In short it seems to me that you are making either the administration or the reporting entirely non-portable from a network perspective.

      In PostgreSQL if you really need to do this, I you can use security definer stored procedures which could check for arbitrary other criteria and deny permission on that basis. Sure it is more difficult, and it is better to avoid situations where moving a component around a network can cause privelege escallation.

      --

      LedgerSMB: Open source Accounting/ERP
    8. Re:Authentication systems by Jay+Pipes · · Score: 1

      Not sure what a footgun is, but this approach works and has worked well for MySQL users for years. It's not about "admin functions" or anything else. It's about providing for the ability to provide distinct privileges depending on whether the user connects locally or remotely (without having to use stored procedures or have multiple users).

      "In PostgreSQL if you really need to do this, I you can use security definer stored procedures which could check for arbitrary other criteria and deny permission on that basis."

      You can do the same in MySQL. But, point being, you don't need to get complex to accomplish something as simple as separate privileges for the same user connecting from different hosts.

      --
      Jay Pipes Community Relations Manager, North America MySQL, Inc. -- jay at mysql dot com
    9. Re:Authentication systems by einhverfr · · Score: 1

      A foot-gun is a device which is mostly useful for shooting yourself in the foot.

      BTW, I have been reading a bit about SE-PostgreSQL (Linux-only) which might do all of this on Linux. It brings all the power and flexibility of SELinux to PostgreSQL.

      --

      LedgerSMB: Open source Accounting/ERP
    10. Re:Authentication systems by einhverfr · · Score: 1

      One more option is that you can grant roles to various users and require that they set their role prior to data access.

      This doesn;t restrict it based on where they log in from, but the user's application needs to state that it is running reports instead of doing database administration, while when you log in via psql, you have to tell it you are doing admin stuff rather than reporting.

      This provides the same enforcement without the headache of worrying what happens if consolidate your reporting system onto the local machine.

      --

      LedgerSMB: Open source Accounting/ERP
  16. The placement of the database. by einar.petersen · · Score: 1

    One thing that is puzzling is that an obvious thing like choosing the directory in which to place the database is made so complicated, having to go into configuration files, setting permissions etc. so that one can choose where to put the database seems overly complicated to most people who are perhaps not so technically adept. How would you rate the possibilities of MySQL being put into broader useage, if you made it easier to choose save directories and possibly provided a simple webbased gui as part of the installation package. Thanks for a nice product though!

    --
    MS, ALS, Aphasia ? http://globability.org - Me http://einarpetersen.com
    1. Re:The placement of the database. by Anonymous Coward · · Score: 0

      PG_DATA=/path/to/my/data

      I just don't get why people still think mysql is actually easier.

  17. mySQL vs. PostgreSQL by saterdaies · · Score: 5, Funny

    So, let me get this straight: you (mySQL) use a dolphin to fetch data while PostgreSQL uses an elephant to fetch data. Would that explain why PostgreSQL is better at fetching large datasets? Like, the elephant can haul more, but is slower while the dolphin is faster, but can't carry as well? Have you thought about using a non-animal to fetch your data? Maybe a racecar? Those are fast and could probably haul as much as an elephant. Plus, then I wouldn't need to have fish or peanuts in my server room.

    1. Re:mySQL vs. PostgreSQL by daeg · · Score: 4, Funny

      Reminds me of a few years back. I had just finished presenting a lengthy, well-thought out package on implementing a new software system for a new company to the owner. After the entire charade, he looked me in the eye as he pointed to the cover of the document, which featured the logos of all software systems involved. He was pointing to the MySQL dolphin. "What's this dolphin doing here? you're not some kind of [expletive] [expletive] [expletive] eco nut are you? I'm not a fan of them..."

    2. Re:mySQL vs. PostgreSQL by Dunbal · · Score: 2, Funny

      Plus, then I wouldn't need to have fish or peanuts in my server room.

            but the fish are good for both the dolphin AND the penguin...

      --
      Seven puppies were harmed during the making of this post.
    3. Re:mySQL vs. PostgreSQL by syntaxglitch · · Score: 1

      So, let me get this straight: you (mySQL) use a dolphin to fetch data while PostgreSQL uses an elephant to fetch data. Would that explain why PostgreSQL is better at fetching large datasets? Like, the elephant can haul more, but is slower while the dolphin is faster, but can't carry as well? Have you thought about using a non-animal to fetch your data? Maybe a racecar? Those are fast and could probably haul as much as an elephant. Plus, then I wouldn't need to have fish or peanuts in my server room.

      Of course, they say an elephant never forgets.

      On the other hand dolphins probably get more sex. Hm.

    4. Re:mySQL vs. PostgreSQL by Vihai · · Score: 2, Funny

      Yes, that's why I prefer a DBMS that doesn't like to fsck with my databases :)

    5. Re:mySQL vs. PostgreSQL by Anonymous Coward · · Score: 0

      Which is why I've never been able to understand the Slashdot crowd's loyalty to MySQL. Shouldn't there be like, envy or hatred or something?

      Just sayin'.

    6. Re:mySQL vs. PostgreSQL by Just+Some+Guy · · Score: 1

      "What's this dolphin doing here?"

      "It's fleeing from our Database Harpoon. So how we frighten it? It can't get away! And that's why you should use my plan."

      Sometimes you have to stoop to their level.

      --
      Dewey, what part of this looks like authorities should be involved?
    7. Re:mySQL vs. PostgreSQL by Tablizer · · Score: 1, Funny

      He was pointing to the MySQL dolphin. "What's this dolphin doing here? you're not some kind of [expletive] [expletive] [expletive] eco nut are you? I'm not a fan of them..."

      Ah, the joy of working in a red state :-)

  18. Tabular vs hierarchal arrays by Ark42 · · Score: 1, Interesting

    Why are so many databases still tabular today and not hierarchal? I'm thinking of how Cache (or M / Mumps) is a database which basically lets you store associative arrays of data nested at any level, and access them in the normal programmatic way which you would access any other array.

    SELECT name FROM table WHERE key='xyz'; seems so archaic and limited compared to something PHP-like such as $table['xyz']['name'] where $table is a disk-based global variable accessible from all scripts and automatically synchronized at all times.

    1. Re:Tabular vs hierarchal arrays by Shados · · Score: 2, Insightful

      its not a matter of tabular vs hierarchal, its Relational vs Object based (or some such).

      Basically the short answer is that the relational model has had much more time and more people working on it to mature, and a move to a different system as mainstream would have a totally insane impact on the workflow of enterprise level software development, from functional analysis to all the echosystem of tools to design and maintain applications...

      On top of that, object databases are amazingly fast for quick CRUD and for hierarchal data, but when you want to do datamining, reporting, etc, its a total disaster (relational sucks at it too, thus OLAP systems that plugs in them, but thats a minority of softwares that use em, and at least relational has workarounds, such as star schemas).

      Basically: It will become that way eventually (major RDBMSs like SQL Server and Oracle already have or are working on hybrid engines), but such a core change in software development paradigms takes time. Its like if you tried to mainstream a non-Object-Oriented programming language... it will take a long time. Still, has uses for niches and such.

      Until then, there's ORM tools like Hibernate to bridge the concepts. And of course, there ARE douzans of Object data engines on the market...just pick. Its just not as well supported by the echosystem.

    2. Re:Tabular vs hierarchal arrays by arodland · · Score: 1

      Wait... having the power of arithmetic, boolean logic, and more at your command is "limited" compared to having the ability to index on one set of keys, in one specific order, determined in advance?

    3. Re:Tabular vs hierarchal arrays by DaleGlass · · Score: 2, Informative

      How do you do a SELECT DISTINCT name, or an OUTER JOIN in that model? What if you need to search by a non-key column?

      Key/value systems have their place, but doing very normal RDBMS things in them is a pain.

    4. Re:Tabular vs hierarchal arrays by sco08y · · Score: 1

      Why are so many databases still tabular today and not hierarchal?

      Because we've tried the hierarchical model in all its iterations and it sucks. To specify integrity constraints, you have to use graph theory. And while certain modes of access work, ad hoc queries are painful. Normalizing your data is often impossible. If you can't make sure the data is what it's supposed to be, and you can't make sure you only have one copy of it (normalizing) and you can't run arbitrary queries, your DBMS sucks.

      The only reason people keep going back to hierarchical models (such as XML) is because the tabular SQL structure is the only game in town. It's not: there is such a thing as the relational model, and SQL is even loosely based on it, but SQL DBMSs are only vaguely relational.

      SELECT name FROM table WHERE key='xyz'; seems so archaic and limited compared to something PHP-like such as $table['xyz']['name'] where $table is a disk-based global variable accessible from all scripts and automatically synchronized at all times.

      Shit, even in Access you can say DLookup("name", "table", "key='xyz'"). In PHP, how do you get a value from something *other* than the key? And how do you group by months and sum scores? Get the top 20% of something? If you answered "I iterated through the data set" for any of those, your DBMS sucks. If you can't take that result and use it as a table just like any other, your DBMS sucks.

      Let's look at integrity: even in SQL, a foreign key constraint is as simple as "FOREIGN KEY foo (bar)". Show me the syntax to do that in a hierarchical database. In a relational database, it's *always* a to b. In a hierarchical database, you get to screw around with graph theory. (Note that with cyclic foreign keys, SQL will require carefully ordered inserts, this is a deficiency of SQL because the relational model proper allows for simultaneous inserts.)

    5. Re:Tabular vs hierarchal arrays by einhverfr · · Score: 1

      Actually both sorts of databases exist today. Think of LDAP vs. an RDBMS. Hierarchical and object databases allow for easy storage and retrieval of data objects, while relational databases excel at mathematical manipulations of the data.

      Tabular databases have one edge that hierarchical databases will never be able to match: mathematically powerful manipulations can be described mathematically. For example, aggregates and joins don't make sense in a hierarchical database (you would probably fetch all related objects and do your own data manipulation). Hence where you have a single application or a single agreed-upon data structure, and where mathematical transformations of the data is not necessary (again think of LDAP, which is mostly about looking up specific records), hierarchical organization works pretty well.

      When you need to be able to store and manage complex data in complex ways, however, the relational system really shines. Now you can create synthetic relations by mathematically manipulating other relations, and thus you can do things with the data you can only dream about doing in a hierarchical model.

      Consider the following scenario. You store all financial data in a database. At the end of the year, someone asks you, "How much revenue did we have in March?" Assume you did not store specific summary data for that. In a relational model, we just create a query which gives us the answer. In a hierarchical model, we have to retrieve all invoices and do our own aggragates on them ourselves.

      --

      LedgerSMB: Open source Accounting/ERP
    6. Re:Tabular vs hierarchal arrays by Tablizer · · Score: 1

      Why are so many databases still tabular today and not hierarchal?

      Hierarchical databases were tried in the 60's and 70's. IBM's IMS database is an example. The biggest problem is that you tend to hard-wire in one "access aspect" or "access path" at the expense of others. If you have more than about 3 or 4 orthogonal factors (dimensions), then it becomes difficult to use for queries that don't fit the existing hierarchy. Relational has proven more effective if you don't know how stuff will be queried up-front, or will have a wide variety of queries.

    7. Re:Tabular vs hierarchal arrays by logicnazi · · Score: 1

      It sounds like your just saying you don't know how to do it.

      As far as specifying constraints why not use type theory. We know how to use crazy shit like algebraic and recursive types to say that something is a linked list or other complex data structure. We can do the same thing with an object database if you want.

      However, I think fundamentally this is an unfair comparison because the reason the constraints on object dbs are hard is simply that you are asking the constraint to do much more.

      --

      If you liked this thought maybe you would find my blog nice too:

    8. Re:Tabular vs hierarchal arrays by einhverfr · · Score: 1

      You can solve query issues in modern hierarchical databases. For example:

      "Give me all inetOrgUsers who's state attribute is 'Kentucky' and whose OU is 'Sales'"

      The larger problem is that hierarchical databases have representational issues which prevents the flexibility that you get in a relational model.

      --

      LedgerSMB: Open source Accounting/ERP
    9. Re:Tabular vs hierarchal arrays by einhverfr · · Score: 1

      When looking at the flaws of a hierarchical model, I think that LDAP is the best example of a system which does what it needs to do but not much more.

      The basic issue is that a relational database management system is basically a big math engine which allows you to express any sort of complex operation mathematically, and get a usable result out of it. SQL is basically an imperfect representation of relational algebra (quite frankly, I think that Codd's 12 rules have one subtle issue as well, but that is beside the point). LDAP and similar systems, on the other hand, are designed to do nothing more than object storage and lookup.

      Now, despite the fact that search issues are largely solved in LDAP implementations (i.e one can search on any field), the fact is, it is only programmed to give you data back in a set structure. Synthetic structures (for example, the result of SQL JOINs) are not possible in LDAP, and adding them would result in a number of inherent math issues.

      Hence if you want to do reporting you can do that. You just retrieve all the objects, iterate through them, process the data in your app, and generate the report. Needless to say, this is pretty painful and not portable at all, however, it is clearly doable because I have seen people do this with middleware and SQL.... (SQL-Ledger for example does this in a large number of places.)

      --

      LedgerSMB: Open source Accounting/ERP
    10. Re:Tabular vs hierarchal arrays by Tablizer · · Score: 1

      But that is not a hierarchical query (although we'd have to see the schema to know for sure). Perhaps one can do a sequential search through a tree to answer non-tree questions, but that can be done with flat files also.

    11. Re:Tabular vs hierarchal arrays by einhverfr · · Score: 1

      In LDAP you can do both. In fact, you can even combine them,

      The basic idea is that an object is a set of named attributes (names may be duplicate) attached to a path specification. The dn or distinguished name is actually just the path to the object.

      For hierarchical querying you can do things like:

      "Give me all InetOrgPersons with the zip of 12345"
      "Give me all OU's which are children of dc=example,dc=com whose name begins with s"
      "Give me all child objects of OU=sales,O=Example,dc=example,dc=com"
      "Give me all objects which are in the subtree starting with OU=sales,O=Example,dc=example,dc=com"

      It is actually a little more complicated than this because what is actually happening is you are doing a hierarchical query first, and applying a filter to it. In LDAP, you have basically 3 modes of hierarchical queries: base, children, and subtree. The filters are then applied to the results before they are handed back. Personally I think that LDAP is a horrible monster and needs to be disposed of, but it is hierarchical and is a good example of where you can go with that model.

      What you can;t readily do is "Give me any employees matching the following criteria, and add the name and address of the manager to each." (THis would require pulling the employees, and then pulling the managers separately, then aggregating the data structures).

      --

      LedgerSMB: Open source Accounting/ERP
    12. Re:Tabular vs hierarchal arrays by Anonymous Coward · · Score: 1, Informative

      Why are so many databases still tabular today and not hierarchal?

      Short answer: because people much smarter than the average coder have thought about data management and concluded that generic flexible structures are much better than rigid, application-specific or access-specific structures.

      Longer answer:

      Tabular structures are closer to the relations of the relational model, which store data as facts, and associate those facts via arbitrary boolean expressions. I.e., this row is related to that row when the following boolean function is TRUE. You can't get any more flexible than that. If you did, you would essentially be inventing the next data management model after relational.

      Forty some odd years ago, database were hierarchic, because people would simply create structures that "matched" what they were doing in the code. You've got in Invoice, which contains, Line Items, which contain Inventory Items, blah blah.

      Then people realized, sometimes you need ask questions like this: How much of each item did we sell? Who bought these items? Who didn't buy item X? And so on. Basically, if you wanted general queries, you had to "walk the hierarchy". Two problems here: 1) the data is not optimized for any query.. it's only optimized for a subset of possible queries and 2) "walking the hierarchy" means you have to write procedural, navigational code, which can't be optimized by the database, even if you wanted it to. In other words, you can't just ask the database for the answer, you have to "code it up". Then, the next app that needs that query has to do the work all over again (possibly making mistakes). Ever worked with a 10-year old app that has multiple apps, in multiple programming languages, hitting the same DB? Each making their own assumptions and querying the database in different ways? It's bad enough with SQL, it would be a nightmare with hierarchical databases.

      Then, they came up with Network databases (analogous to today's "Object" databases), which used arbitrary links to connect data. More general than hierarchical, but still, what if you want to do many-to-many connections? What if you want to create associations that weren't implemented by the database designer? For example, what if object1 can be associated with all objects that have field "X" less than or equal to field "Y" of object1? Back to the procedural code.

      Ted Codd, father of the relational model, took these concepts and GENERALIZED them. Arbitrary types (including complex compound types like objects), grouped together to create single facts, constrained with arbitrary boolean functions. Beautiful. And then he connected it to the "real world" using predicate logic.. each set of values represents a single boolean assertion, as complex as you can think of. Extra-super-beautiful. To top it off, there's a closed, simple algebra that can derive any answer from these simple structures.

      SQL is about as far as we got in implementing those ideas. And, unfortunately, we seem to be heading back to the brain-damaged world of hierarchic databases. You can model any type of database with the relational model, by the way, because it is a completely general abstract model. Most people don't realize that you could store objects within relations for example.. for some reason people always think of "rows" as equivalent to "instances", which makes no sense at all.. what class is a row generated by a JOIN? What class is "SELECT name FROM customer"? What class is a UNION of different tables? "ORM" has really fucked up data management in the minds of most programmers.

      I'm thinking of how Cache (or M / Mumps) is a database which basically lets you store associative arrays of data nested at any level, and access them in the normal programmatic way which you would access any other array.

      MUMPS is an example of an old pre-relational design. Basically a backing store for an application, no data integrity, nothing more than a simple place to dump some strings. Most people who wo

    13. Re:Tabular vs hierarchal arrays by captainwisdom · · Score: 1

      Pick and Universe also are organized like this. I've been programming them for 20 years and I agree with what you say, but nobody else does. The straight relational-database model just dominates - even object storage doesn't make a tiny dent in the market. I don't get it.

  19. I have to know by Anonymous Coward · · Score: 0

    I like ponies. Do u like ponies? Ponies are liek OMG awesome!

  20. Japanese Animation by Volanin · · Score: 5, Interesting

    Well, I will ask something not related to databases, or even computing at all. From the "About Me" section in your blog, I can see you named your lovely cats Nausicaä and Kiki. I will assume that you are indeed a fan of Japanese Animation, especially the works of Hayao Myazaki. So I ask:

    - What's your favorite Myazaki movie to date?
    - What's the reason for this choice?
    - And finally: I also love Myazaki's movies, but lately I have been struggling to find anime that I really enjoy.
        They all seem repetitive and cliché. Would you dare recommend one? =)

    Thank you a lot.
    My best wishes for you and your cats!

    --
    If I clone myself, can I call it a thread?
    If a girl winks to us, can I call it a race condition?
    1. Re:Japanese Animation by Tychon · · Score: 1

      As far as this season has put out, Kaiji seems to be an interesting break from the typical harem-style, world-savior, battle-robot theme. It focuses on a street punk that likes to gamble and takes a gambling deal with the mafia to have all his debts erased. The artwork is highly stylized and may not be appreciable by some, and admittedly the story isn't exactly deep, but it's a fairly nice break from all the usual fare, I think.

      Oh, you may also want to check out Seirei no Moribito. A very beautiful piece of work, both in audio and video. The story is quite well done, although I've unfortunately only seen it in the original airing. My Japanese not being very good, I'm not entirely sure about where it all went.

    2. Re:Japanese Animation by Logic+and+Reason · · Score: 1

      If it's movies you're looking for, check out Toki wo Kakeru Shoujo and Byousoku 5cm. Both are excellent love stories from the last year or so; and if you like the latter, you should check out more of Makoto Shinkai's work, especially Hoshi no Koe.

    3. Re:Japanese Animation by Anonymous Coward · · Score: 0

      Now that's what I call satire! You didn't even need to use the either!

      orz

  21. Where to Start? by Erris · · Score: 1

    What one book or example would you recommend to someone who wanted to learn LAMP?

    --
    DMCA, Hollings, Palladium. What might have sounded like paranoia is now common sense.
  22. One question. by Bright+Apollo · · Score: 1

    How come you haven't hired Joe Celko yet?

    -C

    1. Re:One question. by Anonymous Coward · · Score: 0

      I think that would be quite difficult. How highly do you think Mr Celko rates MySQL? I bet you a pint he'd specify PostgreSQL if he were asked to choose a non-commercial SQL RDBMS for practially any project.

    2. Re:One question. by Anonymous Coward · · Score: 0
    3. Re:One question. by Bright+Apollo · · Score: 1

      No bet, he'd never choose an open-source db.

      -C

  23. Why still broken by Anonymous Coward · · Score: 0

    Why is MySQL still not standards compliant?

  24. How does it feel to be "good enough"? by Anonymous Coward · · Score: 0

    The success of MySQL in the light of databases that have always been architecturally better and better-featured, from the free PostgreSQL right up to Oracle, is more than anything a reminder that we live in the "good enough" world.

    A successful database product, it seems, doesn't have to be an engineering masterpiece: it doesn't have to be architected for grand scaling, and it never seemed to bother people how late to the game MySQL was with transaction reliability; features which advance the state of the art, such as object-relational systems, are eschewed in favour of the simple and familiar. In the gold rush, MySQL AB is, as, it were, selling the Mark I shovel; don't get me wrong, it's a fine shovel, but it's still just a shovel.

    With all this in mind, and seeing a similar trend across the open source landscape, do you not feel a duty to take the F/OSS community away from its reputation as feeding this mediocre requirement? ESR's bazaar has become a great facsimile machine.

    1. Re:How does it feel to be "good enough"? by Tablizer · · Score: 1

      Do you feel there's an inherent trade-off between lean-and-mean versus feature-rich-but-cumbersome-to-manage? People keep asking for this feature and that feature and I wonder if MySql would lose the essence that made it popular if it tried to be a Feature Monster.

  25. Why will MySQL not revisit some key design flaws? by MemRaven · · Score: 4, Interesting

    There are several behaviors in MySQL that are quite key to the core of the system, and which are still not being revisited. For example:

    • Lack of foreign key constraint even metadata maintenance in the core system schema
    • Row-at-a-time constraint checking of all kinds
    • Copy-on-schema-upgrades (meaning that you have to have at least twice the size of your largest schema element if you want to make a change, rather than making the physical change in-utero)

    These affect performance of almost any large system. However, even with the new storage back-end, some of these fundamental "characteristics" aren't being revisited, in particular the universally derided failure to support foreign key constraint checking.

    Why is MySQL so fundamentally incapable of revisiting decisions that have proven to be incorrect over time? I mean, Monty may have had reasons for making his database incapable of supporting key relational database constructs. But why are you incapable of accepting that for MySQL to have much wider scale adoption you have to remove the Monty Personality Constructs from the core limitations of the system?

    For those of you who are interested, the key part here is that systems like InnoDB (which are able to process FK constraints internally) aren't able to do so efficiently, because the core locks them into row-at-a-time constraint processing, meaning that large inserts into fact tables with small dimension tables are painfully slow if you don't turn of FK constraint checking)

  26. I'm confused by Anonymous Coward · · Score: 0

    Brian, are you that same guru guy that does the yellowbook.com commercials?

  27. database automatic information quality controls by xristo70 · · Score: 1

    In engineering the quality of the information (telemetry, simulation models, engineering reports, etc) in databases always will degrade over time as the database exponentially grows. Sooner or later changes in personnel will cause data logging procedures to be ignored, errors or missing sensors not to be corrected, users will stop placing extensive comments connected to the data, bad data will simply be dumped and so forth.

    To your knowledge, which development are currently ongoing to make a database automatically keep the quality of the information high? Place a "forgetting" algorithm which cancels out old data, automatic metrics for the quality of the information, recognize and resolve ambiguities in the information, or other similar potential solutions?

  28. Date and the Third Manifesto by MagikSlinger · · Score: 4, Insightful

    Any intentions of implementing any of C.J. Date's Third Manifesto proposals for implementing the new generation of relational databases? If not, why?

    --
    The bitter lessons of a veteran coder: http://bitterprogrammer.blogspot.com
    1. Re:Date and the Third Manifesto by Anonymous Coward · · Score: 0

      Probably not. The MySQL folks couldn't even get transactions to work without a table type from a 3rd party. No chance they are going to go farther into relationships than any other real database.

    2. Re:Date and the Third Manifesto by Tablizer · · Score: 1

      Plus, they'd probably have to toss or overhaul SQL to achieve it, alienating those familiar with SQL.

  29. Northwest Secession by timothy · · Score: 1

    Brian:

    A thought-experiment question I've been meaning to ask you for a while, keep forgetting, and Hey, look, an interview ;)

    Are you truly in favor of secession of the Northwestern states into an independent country, and if so, could you shed some light on you'd favor in the result?

    I don't mean complete with a war (why this is just a thought experiment), but I wonder if you could outline how you anticipate such a country would look and operate. Keep Washington / Oregon / etc as separate entities with unique approaches to questions like income taxes, gambling, etc? Do you think some form of (awfully named) "universal health care system" would emerge? What geographic area would you draw the red pen around on the map? How much would you charge Californians to visit? In what aspect of the resulting economy would you welcome a free market, and in which ones would you not?

    Cheers!

    timothy

    --
    jrnl: http://tinyurl.com/c2l8yr / foes: http://tinyurl.com/ckjno5
    1. Re:Northwest Secession by selfdiscipline · · Score: 1

      Secession should be considered a fundamental right. An enlightened government would understand the need for the ability to change government without violent revolution (I am someone who doesn't consider voting a viable way of changing government, at least in the current US system).

      Secession could easily be non-violent. What if a whole state decided not to pay federal taxes en mass? What could possibly stop such a revolt?

      Finally, I think that people need to realize that paying federal taxes may against their morals if they thought it through. If more of your tax dollars contribute to programs that you are opposed to than programs you support, you can't pay federal taxes with a clear conscience. What you do for pragmatic reasons is another matter...

      --


      -------
      Incite and flee.
    2. Re:Northwest Secession by timothy · · Score: 1

      Quite agreed :)

      The long history of tax protest includes many people whose focus was not primarily on the immorality of coercion on the collection side, but on the spending side you mention. I think the government should not be in many of the businesses it's gotten into, and that these are pretty clear deviations from what a free society would include.

      timothy

      --
      jrnl: http://tinyurl.com/c2l8yr / foes: http://tinyurl.com/ckjno5
  30. Database Models by Tom · · Score: 5, Interesting

    Hi, Brian -

    Are relational database the end-all, or do we have other promising database models to look out for? OO-databases apparently went the way of the Dodo, but what else is out there that you find interesting?

    --
    Assorted stuff I do sometimes: Lemuria.org
    1. Re:Database Models by Shados · · Score: 1

      I know you want Brian's answer, but I'd like to give my two cents, as I find that subject quite interesting :) OO databases, while they are still coming (many major RDBMS are going hybrid in the future, as a mean to do faster development and to abstract away things like OR Mappers), went dodo because they appeal to developers without giving too much to the people paying the checks...

      But there's at least 2 other things that are heavily in the radar... OLAP systems have various non-relational ways of going around (though some are relational, faking it with star schema), and thats probably the most mainstream kind we'll see around... the fastest, most powerful OLAPs are definately not relational systems.

      Secondly, there's specialised databases (which I guess OO-databases kindda ended up being in the end). Systems like Endeca's are non-relational databases that are fitted for extremely precise purposes, with tools and APIs only for that specific purpose. In the case of Endeca, they're doing a kind of data engine specialized to make web sites that allow users to search generally and then refine their queries in a user-friendly way, by only storing and returning results relevent for that (so its almost a RAD tool, in that developers have most of the work done for them if thats the kind of web app they want). From what I understand, Endeca is doing far better than OO-databases ever did, and its just one example out of many, so Im guessing thats the way of the "future".

      A bit like we have general purpose CPUs, then specific purpose GPUs, physics engines, etc, we'll probably see relational databases staying around as the "general data storage engine", and more special purpose databases and datawarehouse types to handle the rest.

    2. Re:Database Models by Tablizer · · Score: 1
      (slashdot audience note)

      I suggest we combine the "what does the future likely hold" questions into a list for Brian to select from. Example:

      Brian, where do you see the future of databases heading? Here are some possible suggestions that readers have mentioned:

      * Object-oriented databases
      * XML databases
      * RAM-centric databases
      * Dynamic relational
      * (and so forth)

    3. Re:Database Models by einhverfr · · Score: 1

      I don;t know. Every OLAP system I have ever worked with has been relational at least in the broadest sense.

      Even things like CUBE are relational operations because they take relational data, synthesize it, and so forth.

      Of course you may also be talking about parallelism in distributed databases or column-centered databases, but even there you are still doing nothing but manipulating keyed, ordered tuples to create new ordered tuples (which may or may not be keyed).

      --

      LedgerSMB: Open source Accounting/ERP
    4. Re:Database Models by Tom · · Score: 2, Insightful

      I'd really prefer to ask an open question. I like to hear about things that I don't already know about.

      --
      Assorted stuff I do sometimes: Lemuria.org
    5. Re:Database Models by Shados · · Score: 1

      I agree, in the broadest sense, OLAPs have a relational API to integrate better with relational data via some form of ETL. Inside them however, the data is not stored as relational (its duplicated like crazy with links all over the place, and is far more hierarchal than relational). Thats more the way I was seeing it. Of course, if you use something like SQL Server Analysis Service, while the data will not be stored relationaly, the GUI tools make it seem a little that way.

      But a relational UI/API/Feeling doesn't really mean the system is relational. Take for example Pervasive SQL. It is a transactional database with a relational API, so while data is stored in tables with foreign and primary keys, and you certainly can apply relational database concepts to it, its going to suck big time, because its not a relational database.

      Also, most (good) OLAP systems also let you push data directly to their dimentions via ETL (obviously), and that tends not to be stored relationaly, even from the API's (the user's) perspective, so if you feed the cube from a relational database using the relational ETL API, well, yeah, but its rarely the only way to do it. In previous jobs we had to feed Analysis Service with data that simply didn't fit well in relational schema, and it worked pretty good...

      I totally fully understand your point, I was pushing it a bit with the OLAP thing, but I hope you can understand what I meant :) Many things are close to relational for familiarity without actually being so, and using them as if they were usually ends up being a pretty bad (and heavily common) mistake, too.

    6. Re:Database Models by Tablizer · · Score: 1

      It is open. The list is merely meant as a memory tickler. Perhaps it needs rewording?

    7. Re:Database Models by einhverfr · · Score: 1

      I don't know about the desirability of storing OLAP data in non-relational ways. The really high-end (Terradata) solutions tend to actually process live relational data and get around the issue of large data sets through parallelism (i.e. instead of running one query on one monster 100TB database, you run small piecess of the query on 1000 ~100GB databases). The data is then aggregated back into the form for the OLAP query. BizgressMPP uses a similar solution. With appropriate star schemas, you can effectively run the query only on the interesting pieces of the database.

      The major advantage this has over summary OLAP solutions is that you have a great deal more flexibility, so your system isn't prejudiced against new questions (i.e. if someone asks a new question you don't have a long wait to get the answer). Sure there is a tradeoff-- relational OLAP solutions take more time and effort to initially set up and maintain, but they are more powerful.

      --

      LedgerSMB: Open source Accounting/ERP
  31. The unavoidable questions. by swehack · · Score: 1

    How much do you know about PostgreSQL and what do you think about it?

  32. Re:Northwest Secession (oops, missed a word) by timothy · · Score: 1

    Think-o i there: Should read "Are you truly in favor of secession of the Northwestern states into an independent country, and if so, could you shed some light on what you'd favor in the result?

    --
    jrnl: http://tinyurl.com/c2l8yr / foes: http://tinyurl.com/ckjno5
  33. Multiple CPUs and multithreading by Omnifarious · · Score: 1

    Do you think there is a better way of handling multithreading than mutexes and semaphores? If so, what would set of primitives do you think would best suit the task?

  34. Client GUI Tools? by Blakey+Rat · · Score: 4, Interesting

    One of the things I've always felt is most lacking for Open Source databases is good client-side GUI tools to do ad-hoc queries, look at the database structure, assist in copying/importing/exporting data, etc. Microsoft has a pretty good tool in this area with either the SQL Enterprise Manager/Query Analyzer combo or SQL Server Management Studio.

    MySQL on the other hand has a poorly-implemented, not-well-supported equivalent to Query Analyzer called MySQL Query Browser: http://www.mysql.com/products/tools/query-browser/ It's slow, crashes often (especially when called upon to list large datasets), and has tons and tons of usability flaws (the most glaring being the impossibility to select/copy the dataset to any other applications, and the failure to support standard keyboard shortcuts like Control/Command-A to Select All.)

    It seems to me that MySQL Query Browser is treated, at best, as a second-class citizen in the MySQL world. Is that the case? If so, is it simply due to a lack of qualified developers for it, or is it part of a larger strategy to keep more resources working on the back-end?

    In my opinion, MySQL could benefit greatly from having some really great (or at least passable!) client-side tools.

    1. Re:Client GUI Tools? by Dynedain · · Score: 1

      Give EMS SQL Manager for MySQL a try. It's proprietary, but it's a tool I'm more than willing to pay for.

      --
      I'm out of my mind right now, but feel free to leave a message.....
    2. Re:Client GUI Tools? by Anonymous Coward · · Score: 0

      Check out HeidiSQL). I like it much better than the native MySQL tools. Unfortunately it's a Windoze frontend.

    3. Re:Client GUI Tools? by MemRaven · · Score: 1

      You should also try Oracle's SQL Developer, which has MySQL support and does all the stuff you want. I haven't tried it against MySQL, but others say that it's pretty good. It's Free As In Beer and does a pretty good job on Oracle if you just want a query analyzer and live worksheet and stuff like that. Pure Java so you're at the mercy of the MySQL JDBC team to make the driver better, but you should take a look.

    4. Re:Client GUI Tools? by Anonymous Coward · · Score: 0

      phpmyadmin

    5. Re:Client GUI Tools? by Unoti · · Score: 1

      phpmyadmin is what you need. Seriously, it's ever bit as good as enterprise manager and query analyzer. Enterprise manager doers a better job of building queries, sure. (But seriously, if you're using a gui to build your queries then there's no hope for you as a database developer.) Import/export create new tables, enter/edit data... phpmyadmin is seriously very nice and quite practical to use for day-to-day software development. I use it for my software development on my local machines, and as an added bonus, I'm not crippled when I'm working on a remote machine behind a firewall.

    6. Re:Client GUI Tools? by Anonymous Coward · · Score: 0

      Seriously, it's not as good. I use all the tools you mentioned every day. Query Analyzer is what I normally use to build ad-hoc queries as the grandparent described. Enterprise Manager is for when you want to create a new stored procedure, etc.

    7. Re:Client GUI Tools? by double07 · · Score: 1
    8. Re:Client GUI Tools? by Blakey+Rat · · Score: 1

      phpmyadmin is what you need. Seriously, it's ever bit as good as enterprise manager and query analyzer.

      Does it show the execution path of the query so I can optimize it? Can I use it to generate a printable schema of the database tables? Will it help me do a export of a database (including schema) into a new database on the same, or a different, server without touching any SQL? If so, does it then let me schedule that to run at 3:00 AM every third Tuesday? Does it handle all kinds of collations/character sets?

      Sorry. PHPMyAdmin is an OK tool, but it's not nearly as good as Enterprise Manager/Query Analyzer or SQL Server Management Studio (SSMS). PHPMyAdmin doesn't even copy result grids cleanly into spreadsheets, at least not last time I used it.

      Enterprise manager doers a better job of building queries, sure.

      Does Enterprise Manager even build queries? I've never used that feature, if it has it. I used Query Analyzer for building queries, and now I use SSMS for that task.

      (But seriously, if you're using a gui to build your queries then there's no hope for you as a database developer.)

      Ah! The old Open Source canard when faced with something Open Source doesn't do well: "you don't really need to do that." This is the slightly more extreme version, "you're too stupid to do it the right way."

      How is using a GUI tool to run ad-hoc queries on a database any different from using an IDE for software development? What's so wrong with me wanting to type "select * from jobsite" and paste the results into Excel? (How would you even do something like that using only CLI tools? Export to CSV I suppose, then import that into Excel...).

      For the record I don't use the GUI query builder, I type in my queries in plain text. And in the process I benefit from GUI features like syntax highlighting and auto-complete.

      enter/edit data... phpmyadmin is seriously very nice and quite practical to use for day-to-day software development.

      PHPMyAdmin does a crappy job of entering data, if you're just doing data entry. SSMS isn't tremendous at it, either*, but it's orders of magnitude faster.

      I use it for my software development on my local machines, and as an added bonus, I'm not crippled when I'm working on a remote machine behind a firewall.

      That's one advantage of a web-based product, given. I just set up a VPN and use Remote Desktop now.

      * Attention Microsoft: Shift-Space IS NOT A KEYBOARD SHORTCUT! If I'm entering data and I happen to hold down the shift key while typing a space, JUST TYPE A SPACE like every other program ever written! Resolving that one problem would make data entry on SSMS about ten times faster. End rant.

    9. Re:Client GUI Tools? by sproot · · Score: 1
    10. Re:Client GUI Tools? by Unoti · · Score: 1

      Does it show the execution path of the query so I can optimize it? Can I use it to generate a printable schema of the database tables? Will it help me do a export of a database (including schema) into a new database on the same, or a different, server without touching any SQL? If so, does it then let me schedule that to run at 3:00 AM every third Tuesday? Does it handle all kinds of collations/character sets?

      The answer to every one of your questions there is yes, except for the printable schema of tables. But all the other things you mentioned, yes.
    11. Re:Client GUI Tools? by jpkunst · · Score: 1

      The answer to every one of your questions there is yes, except for the printable schema of tables

      It even does that. From the documentation:

      Since release 2.3.0 you can have phpMyAdmin create PDF pages showing the relations between your tables

      See http://www.phpmyadmin.net/documentation/

      JP

    12. Re:Client GUI Tools? by Blakey+Rat · · Score: 1

      Hm, well, I stand corrected then. They must have added a crapload of stuff to it since I used it last, because last time I used it it didn't do any of those things. (Except perhaps handling character sets; it was an English-only DB.)

  35. Ob by Anonymous Coward · · Score: 0

    You do know that PostgreSQL is much better, don't you?

  36. What would you suggest as... by Count+Fenring · · Score: 1

    What would you suggest as a good first "learner" program for Database driven development? For Perl development?

  37. Solid-State Storage by spoonboy42 · · Score: 5, Interesting

    It strikes me that a lot of the work that has gone into optimizing databases in the past (especially storage, index structure, and buffer management) works on the assumption that the database will be stored to a hard drive, which is way slower than main memory and has variable access times depending on the relative position of the disk head and the required data.

    Nowadays there's a lot of large solid-state flash drives coming out, and as time goes on we can expect to see sizes increase and costs decrease. For small-to-medium size databases, it's now reasonable to keep the whole database on, say, one of the new 64GB memory drives. The use of drives which have a fixed, cheap cost for random access seems to invalidate and simplify a lot of the assumptions made about conventional back-end data storage, and opens up possibilities for new types of optimization (binary tree indexes instead of B+ trees, more use of indirection).

    I'm wondering what you see as some of the biggest opportunities for memory-resident databases, and what work is going into MySQL to take advantage of the changes that are happening in storage.

    --
    Anonymous Luddite: "What do you think of the dehumanizing effects of the Internet?"
    Andy Grove: "Not Much."
    1. Re:Solid-State Storage by Anonymous Coward · · Score: 0

      It strikes me that a lot of the work that has gone into optimizing databases in the past (especially storage, index structure, and buffer management) works on the assumption that the database will be stored to a hard drive, which is way slower than main memory and has variable access times depending on the relative position of the disk head and the required data.

      Well, most databases need to be ACID compliant for database integrity. The D stands for durable, so that your database will survive an OS crash or pulling out the power cable without losing any committed transactions or violating the data integrity rules. The only way to do that is by writing to disk.

      What's that? MySql isn't ACID-compliant? You can take all sorts of shortcuts if you don't need to be ACID-compliant, which is why MySql is so fast, and makes it an interesting testbed for other optimizations for when data integrity isn't important.

    2. Re:Solid-State Storage by Anonymous Coward · · Score: 0

      Well, most databases need to be ACID compliant for database integrity. The D stands for durable, so that your database will survive an OS crash or pulling out the power cable without losing any committed transactions or violating the data integrity rules. The only way to do that is by writing to disk.

      The only way to do that USED to be by writing to disk. If you'd have bothered to read the rest of his post he was talking about the new flash drives allow for much faster reads than disks and put a new 'spin' on things.

      The MySQL dings are legit, but have absolutely nothing to do with the grandparent's point.

  38. Columnar Database (Vertica) by clearcache · · Score: 1

    What's your opinion of the developments that companies like Vertica are making with columnar databases? They tout improved performance and better data compression as two benefits. Will we see similar developments in MySQL? New products?

    1. Re:Columnar Database (Vertica) by Esel+Theo · · Score: 1

      It's already there. Simply point your browser to http://www.monetdb.org/.

      Contrary to common belief, Vertica did not invent "column-based storage". The idea has been around since decades, MonetDB being one of the most advanced and efficient implementations of it.

    2. Re:Columnar Database (Vertica) by clearcache · · Score: 1

      Thanks for the tip - I'll check it out. I am aware Veritca didn't invent it ... actually worked with a similar implementation myself a few years ago. I think it's a solid concept, however, and I'm happy to see it getting some traction and press thanks to Veritca.

  39. Dear Mr B Aker by Hognoxious · · Score: 1

    Do feeble and frankly unfunny bread|biscuit|cake puns really get on your nerves?

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  40. Questions? Oh boy... by fyngyrz · · Score: 0, Offtopic

    • If you're not responsible, please forward to the appropriate person. Thank you.
    • Would you support custom mods to MySQL to fix slashdot's pernicious anonymous moderation problem?(*)
    • If MySQL can't be made to work, would you support a move to PostgreSQL?
    • If neither of those can be made to work, would you consider ritual suicide in atonement?
    • Thank you for your kind attention to this matter.

    (*) This problem manifests as many inappropriately moderated (and unmoderated) posts in each slashdot discussion, making it absolutely impossible to read any discussion unless your threshold is set to -1 or you are willing to put up with a disjointed set of posts, apparently unrelated to each other (and sometimes the subject at hand), while also knowing with absolute certainly you're missing many good, on-topic or otherwise high quality posts. One presumes that at this late date, with absolutely no attention from those people running slashdot, that the problem must be something they don't understand about the site (such as the complex and very difficult to understand idea that working moderation would help the userbase), and so devolves upon a technical person.

    --
    I've fallen off your lawn, and I can't get up.
  41. hell even I've never heard of him by Anonymous Coward · · Score: 0

    and I've been a MySQL DBA for nearly a decade

  42. that's easy by Anonymous Coward · · Score: 0
    Detailed instructions.

    Next lame question to waste Brian's time...

  43. how do you feel about other free databases? by larry+bagina · · Score: 5, Interesting

    What's your opinion of SQLite, PostgreSQL, and Firebird? What do you like about them? What don't you like about them?

    --
    Do you even lift?

    These aren't the 'roids you're looking for.

  44. Which competitor do you fear most? by ammoQ · · Score: 1

    Open Source databases like PostgreSQL?
    Free (beer) "Express" editions of commercial databases?
    Hypothetical MySQL spinoffs no longer controlled by your company?

  45. Mod parent up -- interesting! by cmburns69 · · Score: 1

    I would really like to see the answer to this one...

    --
    Online Starcraft RPG? At
    Dietary fiber is like asynchronous IO-- Non-blocking!
  46. Re:Replication (Multi-Master) by The-Pheon · · Score: 3, Interesting

    In addition, what current work is being done on Multi-Master replication? Something more reliable/recoverable than a circle/star with the auto_increment_offset?

    Large corporation bashing aside, Active Directory and Oracle clusters do this very nicely, with low replication traffic volume. Is there any chance this feature will be added and improved upon in Mysql?

  47. Hardware by TopSpin · · Score: 1

    What choices have you made provisioning hardware for production MySql systems? Specifically, what do you rely on for storage; raid levels, hardware vs. software, etc. What, if any, tools do you use for performance analysis of production systems beyond the usual *nix monitoring programs (sysstat etc.)?

    --
    Lurking at the bottom of the gravity well, getting old
  48. Integrated Auditing by Twillerror · · Score: 1

    A common problem in the enterprise world is data auditing. By auditing I mean keeping a record of data as it changes.

    I've implemented various solutions, usually consisting of copying the row into another table, slapping some sort of version id on it, and the updating the row with new values.

    When a new column is added to a table you typically have to add one to your auditing table. Then there is the concept of who made the change. I've implemented a solution using triggers and generic table to hold the changes, but it wasn't as fast as I'd like. Even with triggers I typically regenerated the code when a new column was added. I did not analyze database meta-data during trigger execution.

    This can be useful from a governance standpoint all the way down to a debugging standpoint. I've been able to concretely identify how data corruption occurred more times then I can count with these systems.

    Have you ever thought of baking this into the database server. Perhaps having MySQL automatically create an auditing table and update it as records are updated. Deletes could be handled the same way, by simple marking the last row in the audit table as such.

    Any thoughts?

  49. Dynamic RDBMS? by Tablizer · · Score: 1


    I'm wondering if you've considered the idea of "dynamic" RDBMS for rapid prototyping or rapid app development?

    Column types would be optional, and new columns and tables could be added willy-nilly by a regular INSERT or UPDATE statement. There would be no (default) distinction between non-existent columns/tables and empty columns/tables.

    One could later and incrementally add validation to enforce types or existence to selected tables or columns. In other words, the "lock-down" could be gradual as the project grows more formal over time.

    We have dynamic/scriptish languages, so I think it makes sense to also have dynamic databases in our arsenal of tools. Or, at least as a cool experiment.

    Thank You

    1. Re:Dynamic RDBMS? by DaleGlass · · Score: 1

      Eeew.

      The whole point of a database is that it safely manages data. It's not any good to have a heap of bits when what they represent doesn't match reality.

      With this model you'll end up with tables and columns created due to typos in the source, misunderstanding between what is the datatype for a column supposed to be. Is column called "item" a boolean (the row's type is "item"), or is it an integer (item number), or is it a varchar (item code), etc?

      Lockdown later won't work well, because at lockdown time you'll likely find that something in the database doesn't make sense and you can't tell what it was supposed to actually be. Eg, if your organization has no concept of a product with a negative price, and you find one that has it (due to the lack of a constraint on the column), what do you do with it? Such things could fairly easily result in finding that the sales statistics for your past 3 months were actually incorrect, and the true amount can't be calculated.

      If you want to keep your sanity, you need to design your database well first of all, not leave it for later.

    2. Re:Dynamic RDBMS? by d3xt3r · · Score: 2, Insightful

      This really shouldn't be a function of the RDBMS. If you wanted such a thing writing a driver wrapper for any RDBMS should be fairly easy. However, coding your database mappings without locking down your feature set is kinda useless. What's more interesting is creating scripts to generate your database schema from your code. It's been done, see Hibernate.

    3. Re:Dynamic RDBMS? by Tablizer · · Score: 1

      The whole point of a database is that it safely manages data.

      I disagree. That is one of many. A database is also a business modeling tool: it stores attributes (facts) about the domain being modeled.

      I agree that there are places where dynamic won't do. But there are also times where it may be helpful.

      Lockdown later won't work well, because at lockdown time you'll likely find that something in the database doesn't make sense and you can't tell what it was supposed to actually be. Eg, if your organization has no concept of a product with a negative price,...

      Well, tracking money is probably NOT the best use for this kind of tool. However, for AI-based search engines or rapid prototyping I still think it could be useful. There are some niches where getting more right answers is more important than avoiding wrong answers.

      Besides, RDBMS should probably not be your primary validation tool anyhow; for their error messages are too cryptic and too divorced from the app's perspective. And there are ways to write nightly batch reports that point out accounts with suspicious info.

    4. Re:Dynamic RDBMS? by DaleGlass · · Score: 1

      I disagree. That is one of many. A database is also a business modeling tool: it stores attributes (facts) about the domain being modeled.

      It's pointless to store things that look like facts but aren't. If there's no such thing in the system as a product that costs -$5, a customer with no name, or an order row floating around in the void unrelated to any company, then it mustn't be possible to store such a thing in the first place.

      Well, tracking money is probably NOT the best use for this kind of tool. However, for AI-based search engines or rapid prototyping I still think it could be useful. There are some niches where getting more right answers is more important than avoiding wrong answers.

      In my experience, most of the time, rapid prototyping isn't. Whatever you "prototype" gets promoted to production, because nobody wants to wait for you to rewrite it in a real DB.

      Besides, RDBMS should probably not be your primary validation tool anyhow; for their error messages are too cryptic and too divorced from the app's perspective. And there are ways to write nightly batch reports that point out accounts with suspicious info.

      The application should of course validate input, but there can be multiple applications and multiple versions of them, as well as multiple people with direct access to the DB. The database has to verify correctness because that's your last chance of making sure of it.

      Nightly batch reports won't cut it. Ok, report comes out and it says that nothing makes sense. If the database had rejected it immediately you'd very obviously see it at that moment, instead of having a lot of fun trying to trace back bizarre results produced by running calculations on bad data, which was bad because it was calculated on other bad data, which happened because the programmer made a typo and the application inserted something nonsensical.

      It's the same thing as with bug fixes. It's cheapest to fix a bug when you find it during coding. It's more expensive to fix it when QA finds it. It's much more expensive to fix it when a customer finds it. In the same way, it's cheapest to fix a bug when the database refuses to accept incorrect data, and very expensive when you have to figure out what made a report produced from 50 tables not make any sense.
    5. Re:Dynamic RDBMS? by Tablizer · · Score: 1

      In my experience, most of the time, rapid prototyping isn't. Whatever you "prototype" gets promoted to production, because nobody wants to wait for you to rewrite it in a real DB.

      It would be nice if we are all given plenty of time to plan it right up-front, but that is often not the reality given to us. An incremental "clean up" may be the way to go in that case.

      I get the feeling that we will never agree on this. I feel it would be a useful tool in some circumstances that I've encountered. If you disagree, then viva la difference.

      It's the same thing as with bug fixes. It's cheapest to fix a bug when you find it during coding. It's more expensive to fix it when QA finds it.

      If the user/customer is not sure what they want, then sometimes being able to change stuff on a whim is more important than perfect data. Clean-up can come later. There are times when nimbleness is more important than perfection.

    6. Re:Dynamic RDBMS? by einhverfr · · Score: 1

      Why not? It is not as if MySQL safeguards your data anyway. Having these dangerous features might actually make things safer because people would be faced with these sorts of issues frequently.

      --

      LedgerSMB: Open source Accounting/ERP
    7. Re:Dynamic RDBMS? by Hognoxious · · Score: 1

      Microsoft access is over there ------>

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    8. Re:Dynamic RDBMS? by einhverfr · · Score: 1

      Besides, RDBMS should probably not be your primary validation tool anyhow; for their error messages are too cryptic and too divorced from the app's perspective. And there are ways to write nightly batch reports that point out accounts with suspicious info. I actually disagree with you here. The database should be your primary validation tool, and the application only does secondary checking. The reason is that this is the best way to remove invalid data bugs from an application later on. Think about it this way, DQL DDL gives you the ability to define data storage and presentation formats in ways which allow for powerful checking. Applications should trap the errors and at least inform users that some data was not of an acceptable format. Of course, at the same time, applications also need to verify input when it comes to issues like buffer overruns, an application having access to only a subset of valid data, or where additional error handling needs to be in place.

      Note of course that all software bugs can be categorized as either data validity bugs (i.e. doing the right things on bad data), data flow bugs (doing the wrong things on good data), or both (doing the wrong things on bad data). Separating flow and data validation makes a lot of sense.
      --

      LedgerSMB: Open source Accounting/ERP
    9. Re:Dynamic RDBMS? by Tablizer · · Score: 1

      In theory I agree with you. In practice, I find it does not work well and that the DB ends up being the last-resort validation. Like I said, the DB's native error messages are cryptic; and it is hard to know what messages are triggered for what kind of errors without extensive testing (playing with the DB).

    10. Re:Dynamic RDBMS? by Tablizer · · Score: 1

      Microsoft access

      Microsoft access is a file-based DB, not a server-based one. And it lacks about half the dynamic features required to qualify anyhow.

    11. Re:Dynamic RDBMS? by Tablizer · · Score: 1

      This really shouldn't be a function of the RDBMS. If you wanted such a thing writing a driver wrapper for any RDBMS should be fairly easy.

      Paint me skeptical, at least not without parsing and deconstructing queries.

      What's more interesting is creating scripts to generate your database schema from your code.

      Actually, perhaps it should be the other way around.

      However, coding your database mappings without locking down your feature set is kinda useless.

      I disagree, as explained in nearby replies.

    12. Re:Dynamic RDBMS? by Hognoxious · · Score: 1

      <----------- How about excel then?

      What you're suggesting is interesting, but it looks like a solution in search of a problem. But if you make a million off it, you can laugh at me - good luck.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    13. Re:Dynamic RDBMS? by bytesex · · Score: 1

      There's already lotus notes for that.

      --
      Religion is what happens when nature strikes and groupthink goes wrong.
  50. Re:Document databases? by Bionic+Vapour+Boy · · Score: 1

    Will MySQL consider positioning itself for Document Databases too (http://couchdb.org/) (Damien Katz works for MySQL: http://damienkatz.net/2004/12/about-me.html).

  51. A question about data models. by killjoe · · Score: 1

    I would like to see MySQL provide a set of "best practice" data models for common types of problems including triggers, stored procs (or even clusters and replication) so we can all benefit from your expertise.

    For example:

    What is the best way to set up your data model to deal with recurring schedules? How do you store the schedule for something that needs to be performed every other tuesday after 10:00 AM but before 5:00 PM at location X. How to you generate the individual events. How do you deal with somebody trying to view what their schedule would look like in 2020? How do you rescedule next tuesdays event to wednesday but still keep the scedule active.

    Thanks.

    --
    evil is as evil does
  52. you code all this on the programming layer by Anonymous Coward · · Score: 0

    You can do some nifty calculations with mysql but as far as how would somthing look in 2020? just craft the table and pass the right date range query to it.. please do not bother this man with such quesitons..

  53. The Future of DBMSs: Specialization and Objects by logicnazi · · Score: 1

    While the origin of databases was in holding massive amounts of spreadsheet style buisness data that is only one way that DBMSs are used today. For instance their is an increasing use of DBMSs as data stores for web applications or even desktop applications (Core Data and sqlite). Also some people are advocating column oriented DBMSs for data warehousing applications while unstructed databases like couchDB. Do you think that the standard relational model will continue to dominate the database field or will we see a splintering as some people have suggested with specialized databases developed for different applications? If so what sort of role do you see MySQL evolving to occupy?

    I'm particularly interested in whether you think we will see a return to Object Oriented Databases for use as a model store for applications possibly supplemented by some kind of language integration like microsofts LINQ.

    --

    If you liked this thought maybe you would find my blog nice too:

  54. SMP by os10000 · · Score: 1

    Hello Brian,

    do you believe the query engine of MySQL could be rebuilt to become a tuple flow system (or any other mechanism) which would be able to scale single-query perfomance on a multi-CPU (core) system?

    Thanks,

    Oliver

  55. Language and OS Integration by logicnazi · · Score: 2, Interesting

    There seems to be a trend toward other areas of IT implementing concepts and ideas that used to be primarily to province of databases. For instance transactional memory has proved to be a powerful model for concurrency in software languages while journaling and copy on write filesystems have been implementing many ACID style guarantees using methods borrowed from databases. Also operating systems seem to be evolving more and more APIs to handle structured data storage (Core Data) as well as to efficently store and search metadata (spotlight, windows search). OS X even stores a great deal of it's configuration data in a centralized Netinfo database and even the windows registry is a sort of database (arguably it's flaws stem from the choice not to implement a full database).

    Do you think these trends will continue and we will see even greater integration of DBMS technology into the operating system itself? Will (should?) we one day regard database like structured data storage as an indispensable OS level feature like a filesystem? If so do you worry that Apple, MS and Linux will make MySQL irrelevant by integrating this functionality into the OS? Do you think that something like SQL will remain the primary interface to this sort of structured storage or will programming languages implement an integrated native syntax for both transactional memory and database access?

    --

    If you liked this thought maybe you would find my blog nice too:

  56. Advice To noobs! by Anonymous Coward · · Score: 0

    What advice would you give to students coming out of college who are getting into database related areas?

  57. Hardware Support and Transactional Memory by logicnazi · · Score: 2, Interesting

    I'm convinced that transactional memory (TM) is the right model for concurrent programming in most common situations but software transactional memory (STM) suffers from some performance problems. There has been a great deal of research on hardware support for transactional memory and recently Sun announced hardware support for hybrid transactional memory in Rock. Do you think hardware support for TM will catch on and migrate down to commodity hardware? If so would this translate into significant performance improvements for databases like MySQL? If not do you think specific hardware optimizations for DB applications will ever make sense in the mainstream market?

    --

    If you liked this thought maybe you would find my blog nice too:

  58. Re:Replication (Multi-Master) by suggsjc · · Score: 1

    For the most part, I've moved on to Postgres (although master-master isn't that much better over there). Anyway, this is just another vote for this to be one of the questions asked as I think that is a very important area that is only now starting to be somewhat given the attention that it deserves.

    --
    When I have a kid, I want to put him in one of those strollers for twins and then run around the mall looking frantic.
  59. Re:Replication (Multi-Master) by The-Pheon · · Score: 1

    I have been watching PGCluster and Postgres-R as well. It shouldn't be too long before there is an open and reliable alternative to the "big features" of the commercial databases.

  60. Design goals of MySQL? by einhverfr · · Score: 3, Interesting

    MySQL has generally gotten a lot of flak for not being a "real" RDBMS. I.e. for a long time it didn't have transactions, the ability to really enforce data consistancy and the like. While many of these are being addressed they look to many of us who do RDBMS-backed buisness apps like they are only partial solutions (strict mode can be turned off by any client application, if we distribute software we have no way of knowing that transactions really are enabled on the server, etc).

    At the same time, MySQL has traditionally excelled for things like light-weight web content management and the like. It is almost as if MySQL was designed originally for this sort of task as its core market.

    What were the original design goals for MySQL? Has MySQL outgrown them and moving on to become something else?

    --

    LedgerSMB: Open source Accounting/ERP
    1. Re:Design goals of MySQL? by VGPowerlord · · Score: 1

      I've always heard the original design goal was to be fast (at the expense of other features, such as transactions and foreign keys).

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    2. Re:Design goals of MySQL? by Anonymous Coward · · Score: 0

      Goal? Or were they just incapable of creating a system capable of transactions and enforcing foreign keys? None of the table types written my the MySQL folks can do any of that. Innodb had to be written by a 3rd party.

    3. Re:Design goals of MySQL? by Anonymous Coward · · Score: 0

      If you want all that stuff, why aren't you using postgres, dude?????? I mean, damn!

  61. What, no Cobalt? by coredog64 · · Score: 1

    Why doesn't your Wikipedia entry list your time at the Cobalt Group? And what did you really think of Raja and his IBM boys?

  62. tradeoffs between InnoDB and PG storage by jadavis · · Score: 1

    If I understand correctly, InnoDB, Oracle, and PostgreSQL storage models all use multiple row versions, so what are the tradeoffs? How do these tradeoffs explain some of the performance differences, such as concurrent performance and serial performance? Stability of performance versus erratic performance? How do they affect maintenance and performance stability over time?

    InnoDB and Oracle both use rollback segments (I may be mistaken here), while postgresql uses non-overwriting storage and reclaims it later. What's your opinion of the two approaches?

    Why do databases like SQL Server and DB2 still use heavy locking rather than multiple row versions (I may be mistaken here)? Is that an antiquated design, or does it still have potential?

    Where can I find more detail about this information?

    --
    Social scientists are inspired by theories; scientists are humbled by facts.
    1. Re:tradeoffs between InnoDB and PG storage by Shados · · Score: 1

      Im not sure about the other databases, but SQL Server, as of SQL Server 2005, supports row versioning like Oracle. It is however not the default, so I assume there might be issues with it, especially with the optimistic concurrency model, but it can be turned on at any time, or on a transaction per transaction basis (as opposed to system wide).

      Not sure what they did with it as of SQL Server 2008 though, maybe its default there.

    2. Re:tradeoffs between InnoDB and PG storage by jadavis · · Score: 1

      That makes me think that designs that use heavy locking are losing to designs that use row versioning.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
  63. Re:Document databases? by Pseudonym · · Score: 1

    Document databases (or textual databases, for that matter) simply aren't a good fit with the relational model, so you're unlikely to see them incorporated with MySQL any time soon.

    CouchDB is interesting, but I'd steer clear of it for the simple reason that it doesn't have any support for any relevant standards (e.g. Z39.50, MARC, XQuery). Vendor lock-in is bad, even when it's open source.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  64. Native XML databases? by Anonymous Coward · · Score: 0

    How do you see the development of native XML databases? What would you have to say about the advantages and disadvantages of a native XML database model against the relational DB model?

  65. Re:Replication (Multi-Master) by suggsjc · · Score: 1

    I've also been watching PGCluster. It currently looks the most promising for what I am wanting. Even though it does appear to be pretty stable the versions have been incompatible with each other (to some extent). So, I'm probably going to wait a little bit and let it mature before I put it into production. This is an interesting area. On one hand, I would like the Postgres team to have something "official" for replication. On the other, there are so many different types of needs that it would be difficult to handle them all. Also, their time may be better spent working on the core feature (although replication is starting to become a core feature). I don't mind third party applications, but its also difficult to trust your entire operation to a (potentially) unsupported or stagnant project.

    --
    When I have a kid, I want to put him in one of those strollers for twins and then run around the mall looking frantic.
  66. Do you blend? by I'm+just+joshin · · Score: 0

    -J

  67. Re:Document databases? by Bionic+Vapour+Boy · · Score: 2, Interesting

    Document databases (or textual databases, for that matter) simply aren't a good fit with the relational model Well, one might argue also that hierarchical data is also not a good fit with the relational model. Or what do you think about "hacks" like Materialized Path or Nested Sets model, or even native XML data type? If we already have XML data type in many DBs, what prevents us having Document data type like what's in CouchDB (yes, it's proprietary, but so are many of the features in current RDBMS). MySQL is also backend storage engine agnostic and it has already a support for many different (and somewhat specialized) backend storages engies (MyISAM, InnoDB, MERGE, MEMORY (HEAP), BDB, EXAMPLE, FEDERATED, ARCHIVE, CSV, BLACKHOLE and ISAM...). Is there a change that something like CouchDB would fit in that? Damien Katz has for example said that he might consider supporting SQL syntax, but it's too early to say.
  68. When will TIME fields have fractions of seconds? by Anonymous Coward · · Score: 0

    (Bug submitted Feb 2005)

    Can't be so hard. About every other database does it.

  69. Re:Document databases? by Pseudonym · · Score: 2, Informative

    Well, one might argue also that hierarchical data is also not a good fit with the relational model.

    True enough.

    If we already have XML data type in many DBs, what prevents us having Document data type like what's in CouchDB (yes, it's proprietary, but so are many of the features in current RDBMS).

    It's the way you interact with it that's critical here. Think about how you work with your favourite SQL DBMS and with Google, and you'll see that they're quite different at a very basic leve.

    The fundamental result data type in a relational DBMS is the stream of tuples, and tuples contain real data. In other words, querying (i.e. finding what matches some criteria) is essentially the same as presentation (i.e. getting real data out).

    The fundamental result data type in a document-based DBMS is the sequence of document numbers. Document numbers do not contain real data. You perform a query, and get a sequence of document numbers. Then you let the user refine the sequence. Maybe you present some metadata, or KWIC information. Maybe you sort on a field. Maybe you add more constraints. Eventually, you get to the point where you present real data.

    Yes, you can do this in principle with relational databases, but it costs. It's not uncommon for a relational model for a document database to use 5-10x the disk space of a native document database engine.

    Damien Katz has for example said that he might consider supporting SQL syntax, but it's too early to say.

    SQL is a poor fit for textual data, too. Partly because support for textual querying operators (e.g. phrase or adjacency queries, query-based ranking) is poor, and partly because SQL has poor support for managing result sets on the server.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  70. Distributed databases Re:Replication by t35t0r · · Score: 1

    As an addendum, when can we have distributed databases that aren't brutally difficult to setup, have good performance, and that don't cost a fortune?

  71. Where are MySQL sequences? by adamkennedy · · Score: 2, Interesting

    Sequences in Oracle, Postgres and other databases allow for a wide range of interesting effects. Knowing your primary key before you insert into the database, shared unique identifiers between more than one table, creating circular not-null references around groups of objects before you insert into the database, etc.

    After all this time, why does MySQL not have sequence support?

  72. A few options: by einhverfr · · Score: 2, Informative

    1) TotalRekall (Python-based)
    2) PgAccess (a TCL front-end and form builder for PostgreSQL)
    3) Once:Radix (a web-based front-end builder for PostgreSQL).

    OnceRadix is quite new and I think it is well thought out in a lot of ways.

    --

    LedgerSMB: Open source Accounting/ERP
    1. Re:A few options: by sg_oneill · · Score: 1

      dont forget Open Offices DB front end. Its a pretty competent replacement for "Access" , for such a young piece of software. Its query building is great. And you just farm it out via a jdbc connector to MySQL for true happiness.

      --
      Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
  73. Stored procedure language by Wiseman1024 · · Score: 1

    MySQL 5 introduced stored procedures and triggers. However, their language, SQL, is very limited to say the least. Aside from its obvious shortcomings (from no FOR loop to not being able to raise errors from triggers; from no recursive functions to very limited cursors), there's the fact you're going to handle tables and tuples, and this language cannot handle either as first-class types. On top of that, you're reinventing the wheel by writing a new programming language.

    Is MySQL going to add support for procedures written in more powerful, productive, flexible languages? Python comes to my mind as the obvious choice, but Lua, Guile (Scheme) and others are also powerful and easy to embed.

    PostgreSQL, your open-source competition, supports this.

    --
    I was about to say 13256278887989457651018865901401704640, but it appears this number is private property.
    1. Re:Stored procedure language by chromatic · · Score: 1

      Brian added UDF support for other languages quite a while ago (see Embedding Perl in MySQL for example). Of course, I promised to polish up his code and embed Parrot in MySQL a while ago too, so blame me for part of that.

  74. INNODB database size reduction fix by Anonymous Coward · · Score: 0

    The biggest problem I've encountered in testing the INNODB engine is that it doesn't return deleted data space back to the system. I once ran a test taking up 40 gigs, and when the tables were deleted, the space was not returned to the system. After researching this, it's apparently a fatal bug in that it will perpetually keep getting larger. So when will this be fixed? I like the engine, but I simply can't use it on a large scale if this problem persists.

  75. SQL Developer is good by Felix+Da+Rat · · Score: 1

    I'll second that. I've yet to try SQL Developer with MySQL but I think I saw it being listed in an update a while ago.

    I really like it as a tool. The one issue I have is my company only uses TOAD and keeps shelling out money they don't need to. For any TOAD users out there, I'm not saying it's not worth the money, but most of what my co-workers do can be done in SQL Developer for free.

    One of the best things about SQL Developer in my opinion is the simple lightweight and clean interface. I'd say my one complaint is not being able to determine the size of the dataset it returns on queries. Seems to max out at 50, then slowly load in groups of 100 or so.

  76. Mod up, please. by LDoggg_ · · Score: 1

    I have to second that. Sequences see like such a simple but useful feature. Why haven't sequences been added when more complex things like views and stored procedures are part of Mysql?

    --

    "If they have both, tell them we use Linux. And if they have that, tell them the computers are down." -Dave Chapelle
  77. Native XML Databases by bgrieder · · Score: 1

    Do you think Native XML Databases (such as eXist Open, Software AG Tamino, etc...) could replace relational databases in the future? Will the MySQL team make any attempt at delivering one?

  78. Re:Document databases? by einhverfr · · Score: 1

    I would just add that textual searching in many RDBMS's is possible. PostgreSQL has good full text searching capabilities, and query ranking capabilities. But you are right-- basic SQL does not handle the sorts of information required, so extensions are required speciically for this purpose.

    Note that XML doesn't provide a perfect fit for this either. What one really needs is a good full text querying standard (which doesn't exist).

    --

    LedgerSMB: Open source Accounting/ERP
  79. Gap between PLs and DBs by master_p · · Score: 1

    My question is:

    Why database types are so different from programming language types?

    Lots of CPU processing power is spent in translating from/to database types. Do you think that the types of SQL are outdated? Do you think that the industry should move towards something like DB4O (www.db4o.com) where objects are written in directly to/read directly from the database?

    Databases will certainly be faster and simpler if they adopted the data types and principles of modern programming languages.

    1. Re:Gap between PLs and DBs by DragonWriter · · Score: 1

      Databases will certainly be faster and simpler if they adopted the data types and principles of modern programming languages.


      Different modern programming languages have different data types and principles. Scheme, Erlang, Ruby and C# are all "modern programming languages", and have distinct sets of basic data types, and different ways of going beyond the basics. A database specialized to fit with any one of them might be simpler to develop for in that language, and might be faster in common use cases for the language it is designed to accompany. It would also likely be as hard or harder to develop for, and less efficient in use, when accessed from the languages it is not adapted to.

      Of course, many modern programming languages have, either in their standard libraries or available as third partiy librarires, native datastores adapted to the datatypes and principles of the language. And that seems, IMO, to be the best place for datastores tightly bound to the assumptions of a particular language.
    2. Re:Gap between PLs and DBs by master_p · · Score: 1

      They don't have distinct sets of data types. They all have integers, floats, strings, tuples, datetimes, booleans. None of them have varchars, decimals, timestamps, tiny integers, clobs, blobs, and other weird and esoteric DB types.

    3. Re:Gap between PLs and DBs by DragonWriter · · Score: 1

      They don't have distinct sets of data types.


      Yes, they do.

      They all have integers, floats, strings, tuples, datetimes, booleans.


      Yeah, most of them do. Though they aren't always the same thing ("strings" and "datetimes" particularly may be different things in different languages, even "floats" may be; ECMAScript doesn't even have real integers, all numbers are IEEE 754 floats, which are precise enough to cover a wide range of integers, and some bit-twiddling operations that pretend they are integers are available.)

      None of them have varchars, decimals, timestamps, tiny integers, clobs, blobs, and other weird and esoteric DB types.


      Actually, "varchars" are just a kind of string, many languages have either limited-precision or arbitrary precision decimals or more general exact rationals, or both, either natively or provided through libraries (exact rationals are part of the Scheme numeric tower, both arbitrary precision decimals and exact rationals are in the Ruby standard library -- BigDecimal and Rational classes -- and many languages have a variety of different sizes of integers, even if code can be written without much concern for the differences in most cases because of automatic conversion/coercion between compatible types.) And the variety of date/time related constructs available in many languages is a wide or wider than that in SQL, including things that are timestamp-like. Again, lots of times this can be safely ignored in much high-level code because of automatic conversion between compatible types, but that doesn't mean those types aren't features of the language or its libraries.

  80. What's your opinion on the success of PHP? by Qbertino · · Score: 1

    PHP started as a templating engine built on Perl. It took on some of the stranger and some of the nicer habits of Perl and eventually developed into the main server-side-included language for web applications with it's own distinct charater. I find myself using PHP for more and more projects and tasks (cli scripting included) and keep wondering if PHP is a dead end or if PHP is basically a natural progesssion into the web-aera and has become so popular for mostly the right reasons.

    Since you are a member of the MySQL Core team (the database pratically married to PHP) and a Perl Guru (PHPs anchestor) I'd like to know what you think of PHP and it's breathtaking success as the 'web-generations basic' and the road it's come along since PHP 3. Do you think that the nonchalance with which PHP treats programming newcomers, the one or other strange web programming habit it allows/fosters and the large set of default web-centric functions is a fair trade for the downsides PHP is said to have? Or do you think PHP should go the way of the dodo in favour of Perl or other languages?

    --
    We suffer more in our imagination than in reality. - Seneca
  81. +5, Gets the relational model by gazbo · · Score: 1
    I think the problem now is that OO is becoming the de facto "correct" way of programming. Now fair enough it does have some very nice features such as imposing strict interfaces, and logically grouping related code and data, but many people don't seem to realise it's not the only way. They regard anything non OO as hacky (which a functional programming evangelist would probaby find hilarious when you consider the implications of instance variables...but I digress).

    So they come across an RDBMS, which is a completely different paradigm for data storage/integrity enforcing/query. It sure as hell isn't OO, and it doesn't fit 1-1 with their code written in the One True Proramming Style, and therefore is hacky and outdated.

    Le sigh.

    1. Re:+5, Gets the relational model by jadavis · · Score: 1

      when you consider the implications of instance variables

      What are the implications you're referring to?

      It sure as hell isn't OO, and it doesn't fit 1-1 with their code written in the One True Proramming Style, and therefore is hacky and outdated.

      I encounter this perception all the time.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    2. Re:+5, Gets the relational model by gazbo · · Score: 1
      What are the implications you're referring to?

      Oh, just that by using instance variables your functions have destructive side-effects, not reentrant and all that. In the pure functional model, there are no such destructive changes and so you have the nice property that all functions in the system are isolated from each-other and only care about input parameters and return value(s). You could argue that instance variables were just a hack that sacrificed scope isolation to save having to pass so many arguments around.

      Don't get me wrong, I use OO design for virtually all of my code and don't have a problem with using instance variables. I only mentioned it as I was talking about people thinking that OOP is "the correct" programming style, and wanted to give an example of why not everyone would find it "correct" at all.

      OO/imperative/declarative/functional, strong/weak typing, vi/emacs...if people accept that there is more than one valid choice and that people have different valid opinions then the world would be a better place. If they went further and actually chose the right approach for the job then it would be better still.

    3. Re:+5, Gets the relational model by jadavis · · Score: 1

      Oh, just that by using instance variables your functions have destructive side-effects

      Ok. I am just getting into some functional programming myself (Ocaml), so I was curious what exactly you meant.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    4. Re:+5, Gets the relational model by einhverfr · · Score: 1

      The way we are trying to solve the OORelational mismatch issue in LedgerSMB is through using a fairly different approach. It works reasonably well, but some programmers complain about the fact that things are fundamnetally relational with OO glue over the top.

      What we do is create object method mappings to database procedural interfaces. The procedural interfaces basically function as named queries which retrieve data in expected formats (included nested arrays). Thus we have an objectrelational mapping which is entirely encoded in the database, and could be reused by components in other languages.

      The large issues we have with this approach have to do with large numbers of interfaces which an object may need to be using, and some cannot be automatically mapped back in all cases, unless one uses fairly complex interfaces (and some supported versions of PostgreSQL don't do everything we need to do for the complex interfaces, though that will change in a few years).

      --

      LedgerSMB: Open source Accounting/ERP
  82. Column stores by Ibn+al-Hazardous · · Score: 1

    A while ago we read some stuff here on /. about column stores being the "new thing" (here). Some of the ideas seem reasonable, so my question is: Is this a simple case of using a different storage engine? Does MySQL already have one, or is one in the works? Or is this simply more neat than useful? (Oh, and is it a case of - "even if useful, not for the average user"?)

    --
    Yes, I am a biological organism. All rumors to the contrary are just that, rumors.
  83. Would it be feasible to try and rid SQL? by Qbertino · · Score: 1

    Many people consider it a normal thing, that whenever the persistance layer is accessed one must use a special language, a strangely arcane and historically grown thing called SQL. Since you are proficient in Perl, a language notably more powerfull than SQL (or most other PLs) in the handling, retrieval and filtering of data, I wonder if you've ever felt annoyed by this circumstance. Do you think it would make sense to attempt to remove SQL from the stack or at least make it an optional layer? How feasible is it to attempt to connect a storage eninge directly to a high-level programming level like, f.i., perl and start ridding humanity for this plague called SQL?
    Since you know both ends very well, a high level PL and details about storage I'd like to hear your opinion on this.

    --
    We suffer more in our imagination than in reality. - Seneca
  84. Excellent question (nt) by Attaturk · · Score: 1

    I said "nt" dammit!

  85. Complete Rewrite of RDBMS? by mig21bp · · Score: 1
  86. why is mysql so fast? by cruppstahl · · Score: 2, Interesting

    A common opinion is that Mysql has less features than a full-blown database, and therefore is faster (as long as the operations are not too complicated). This is a surprising fact for me. First, the source code of MySQL looks pretty messy. The abstraction levels between the main program and the database handlers (i.e. BerkeleyDB) are fuzzy, to say it in a friendly word. Also, and i think this gives you a real performance penalty, MySQL uses table locking for write access, and does not lock on a page level. And MySQL implements transactions on top of the handlers, which should also be slower than implementing transactions IN the handlers. On the other side, DBMS like Oracle are optimized to the last bit, but are still slower in many operations. So either MySQL has a secret performance trick which i have not yet discovered, or its performance advantages are actually a Myth. What do you think? I also understand that you (MySQL AB) is working on your own handler, which is optimized for SQL way better than i.e. a generic handler like BerkeleyDB. Does this mean that we will have to expect a major architectural change of MySQL in the near future?

    1. Re:why is mysql so fast? by Anonymous Coward · · Score: 0

      Because actually validating the data slows things down, so they skip that step.

  87. Stored Procedure precompile? by Anonymous Coward · · Score: 0

    I welcome the stored procedures in MySQL 5.x. I can now move the db code which is used internally and on the web sides to SP's eliminating redundancy and the associated maintenance nightmares. Bravo!

    However, are there plans to implement execution plans and precompile the procs so we also get a performance boost(like with PostGreSQL, MSSQL, and Oracle) when using them?

    As it is, there isn't much incentive to move to MySQL from one of the more mature enterprise RDBMSs outside of cost or learning curve. Don't get me wrong, I'm a huge MySQL fan in certain situations, but I'd be looking to something else for the heavy lifting where the applications have a lot of users that are updating lots of data _and_ needs to be transactional and pass ACID.

    It's hard to beat procedures written in C on PostGreSQL, provided you have the experience to know what you are doing and make things efficient. In my own performance tests, PGSQL is king of the open source hill right now... However, so far, most employers are reluctant to implement on PGSQL because you need a much larger base of knowledge to use it effectively.

    I've heard "Who will replace you if you get hit by a bus?" way too many times... I can count the number of people I personally know that understand this database in the mirror. MySQL people are everywhere.

    Will MySQL fill this performance void eventually? It'd turn MySQL into a MSSQL killer... few could say no to it and it would open up a lot of market for it.

    -AC

  88. Re:Why will MySQL not revisit some key design flaw by jimmoores · · Score: 1

    tru dat.

  89. Re:Document databases? by Pseudonym · · Score: 1

    XML is a document representation format, and is completely orthogonal to the problem of querying databases.

    What one really needs is a good full text querying standard (which doesn't exist).

    Allow me to introduce you to Z39.50, though you may remember it as WAIS before it ISO-standardised. If all you want to do is query (and sort, rank, etc), it does the job.

    What it doesn't support is database update, but that's coming in the next version.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  90. day in the life of Brian by tf23 · · Score: 1

    So what's a typical day for you like? ie When do you wake up? You work from home, yes? Do you eat in most of the time? (you seem to have a non-typical diet from some of your prior comments). How much of your day is spent in front of a computer screen M-F and on weekends?

    Do you find working remotely through an IRC/IM Window with fellow staffers easy/difficult/tiring/??? What's the best thing about working like this, and the worst?

  91. Put the business rules in the DB or in the app? by FutureLuddite · · Score: 1

    Many people ask about relational fidelity and MySQL. However, my experience out in the developer world is that a lot of developers want to put most of the business rules of a domain model in the application code. For example, stored procedures, triggers, check constraints all seem to be disfavoured over implementing these things in application code, object models or frameworks. This type of focus seems to be the most important relational fidelity concern. Do you feel that is better to put the busines rules in the application code? If so for what reasons.

  92. Why memory-bound indexes in cluster? by Anonymous Coward · · Score: 0

    Shared-nothing is fantastic, but how can you realistically expect us to keep all indexes in data server memory? Indexes need to (as 5.1 did with records) be made available by secondary (disk) storage. Can you please comment?