Slashdot Mirror


Slimmed Down MySQL Offshoot Drizzle is Built For the Web

Incon writes "Builder AU reports that Brian Aker, MySQL's director of architecture, has unveiled Drizzle, a database project aimed at powering websites with massive concurrency as well as trimming superfluous functionality from MySQL. Drizzle will have a micro-kernel architecture with code being removed from the Drizzle core and moved through interfaces into modules. Aker has already selected particular functionality for removal: modes, views, triggers, prepared statements, stored procedures, query cache, data conversion inserts, access control lists and some data types."

370 comments

  1. anotherwards, MySQL 3.x... by mwilliamson · · Score: 4, Insightful

    Back to a glorified (but uber-fast) filesystem it looks like.

    1. Re:anotherwards, MySQL 3.x... by Negatyfus · · Score: 3, Insightful

      Of course I haven't RTFA, but what I gather from the summary is simply that they'll be removing these features from the core and making them accessible from modules. Why is that wrong? If you don't use prepared statements in your web application, you don't need to have them in your database server. Unless I missed something...

    2. Re:anotherwards, MySQL 3.x... by drew · · Score: 2, Interesting

      That was exactly my thought. Hooray, we just jumped 10 years backwards. Hopefully this time they've fixed the database corruption issues that had me truncating table files once a week.

      Of course this just confirms my belief (and the reason I've never yet used MySQL in an environment where I was given the choice) that even when these guys added these features they either didn't understand them or didn't believe that they were ever important.

      --
      If I don't put anything here, will anyone recognize me anymore?
    3. Re:anotherwards, MySQL 3.x... by ultranova · · Score: 2, Interesting

      If you don't use prepared statements in your web application, you don't need to have them in your database server.

      Seeing how prepared statements are meant to make repeated queries faster, by allowing reuse of the plan, I'd say that this was a stupid thing to remove. Not as stupid as views, though, since those are basically just stored and named queries and as such trivial to implement/maintain.

      --

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

    4. Re:anotherwards, MySQL 3.x... by TheRaven64 · · Score: 1, Troll

      Reading the feature list, it sounds like they've now got a slow clone of SQLite with a more restrictive license. Good to see MySQL are innovating again. I think I preferred it when they had a buggy, feature-incomplete clone of PostgreSQL with a more restrictive license...

      --
      I am TheRaven on Soylent News
    5. Re:anotherwards, MySQL 3.x... by Anonymous Coward · · Score: 0

      The problem is that it's nearly impossible to define interfaces for this.

      Taking the mentioned prepared statements as example: the usual user expectation about prepared statements is that the DBMS optimizes it once and then re-executes it with different values of parameters. Now how do invoke the optimizer for a prepared statement if it has no idea that there may exist '? markers that are on one hand constants but on the other hand may change [across executions]?

      That's why all known database systems are monolithic beasts, with very few exceptions.

    6. Re:anotherwards, MySQL 3.x... by Sancho · · Score: 3, Insightful

      Most people could make an argument that any feature is important/easy enough to keep in the core. The truth, though, is that most people use MySQL as a data store. They don't care about data correctness, about views, about advanced features. They just want to be able to store data and look it up again.

      Of course, this is partially because the books on database programming don't stress these features, and such programming has become available to the masses who don't know any better. Real programmers understand the issues and use these features, but then, real programmers probably also understand that modularization can be very useful.

    7. Re:anotherwards, MySQL 3.x... by Sancho · · Score: 3, Insightful

      They're not removing features, they're moving features into modules. Don't use views in your app? That code doesn't get loaded. Honestly, once a program reaches a certain size, this is a necessary step.

    8. Re:anotherwards, MySQL 3.x... by Anonymous Coward · · Score: 0

      They don't care about data correctness , about views, about advanced features. They just want to be able to store data and look it up again.

      They want to look it up, but do not care about its correctness? Ah, yes, that sounds a lot like the typical MySQL user indeed.

    9. Re:anotherwards, MySQL 3.x... by Aliencow · · Score: 1

      Anotherwards ? Is this a joke or you've been misunderstanding that for your whole life??

    10. Re:anotherwards, MySQL 3.x... by Sancho · · Score: 1

      I may have used the wrong term, or there may be a better one. Essentially, I mean that they don't use foreign keys. If you understand databases, then you probably know what I'm trying to get at with this.

    11. Re:anotherwards, MySQL 3.x... by FishWithAHammer · · Score: 1

      Prepared statements are also a great way to prevent SQL injection (at least when you're working in PHP); removing them is kind of dangerous.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    12. Re:anotherwards, MySQL 3.x... by Bert64 · · Score: 1

      They are also used as a security feature, since you can feed an array of arguments without needing to sanitise them first.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    13. Re:anotherwards, MySQL 3.x... by Bedouin+X · · Score: 1

      I think referential integrity is what you're thinking of.

      --
      Dissolve... Resolve... Evolve...
    14. Re:anotherwards, MySQL 3.x... by Sancho · · Score: 1

      Yes! Thanks!

    15. Re:anotherwards, MySQL 3.x... by Anonymous Coward · · Score: 0

      Really? Wow. You should probably let the guys at Oracle know this, because they only run some of the biggest databases in the world with all those features running...

    16. Re:anotherwards, MySQL 3.x... by Anonymous Coward · · Score: 0

      I think the problem isn't really for 'big databases', so much as 'small servers'. The thing is, those giant Oracle databases are probably running on servers with multiple GB or RAM, I would think.

      Drizzle isn't aimed at large databases on large servers, it's aimed at the complete opposite end of the spectrum - shared web servers, where you might have multiple instances of MySQL running, one for each customer, or maybe you have a bunch of Virtual Machine servers which might have 128M or 256M of RAM per Virtual Machine, where you want to keep the footprint of the database server small. Or, maybe, embedded devices with a database that might be accessed by multiple users, like maybe a 'network jukebox' audio player which maybe uses a database to store playlists and info about the available songs, artwork which goes with the albums, etc.

      In those kind of contexts, 'trimming the fat' makes sense. I don't know why people are getting in such a huff about moving functionality out into loadable modules. The functionality is *still there* if you need it, so what is the problem? It just allows you to control what exactly is loaded into memory.

    17. Re:anotherwards, MySQL 3.x... by jlarocco · · Score: 1

      I admit I'm not very familiar with MySQL, but why in the world would you need an instance of MySQL running for each customer? Wouldn't it make more sense to give each customer a user account and give them appropriate permissions?

    18. Re:anotherwards, MySQL 3.x... by mini+me · · Score: 2, Interesting

      Modern web frameworks these days just use it as a over-glorified hash store anyway. The other features are useless in that context. However, I feel we'll see a move to document databases, such as CouchDB, by those frameworks in the near future leaving MySQL out of the game completely.

    19. Re:anotherwards, MySQL 3.x... by ultranova · · Score: 2, Interesting

      They are also used as a security feature, since you can feed an array of arguments without needing to sanitise them first.

      Yes; and in fact I haven't found another safe way to feed parameters to a database in Java. There doesn't appear to be any kind "sanitize/escape" function nor paremetrized input for non-prepared statements in the JAVA SQL API, so either you write one yourself or stick to PreparedStatements.

      BTW: PostgreSQL supports such out-of-band delivery of parameters even for non-prepared statements.

      --

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

    20. Re:anotherwards, MySQL 3.x... by drew · · Score: 1

      Well, of course that would make more sense, <sarcasm>but obviously if they had any sense they wouldn't be using MySQL in the first place</sarcasm>.

      Honestly, I've never figured out why that isn't more common. I once worked on a project where within one application we had 8 separate MySQL instances running on 8 different ports. All of the instances had the same users, so it had nothing to do with permissions. I never did get a good explanation why the admin set it up that way. The only reasonable thing I can come up with is that perhaps some older versions of MySQL had weird restrictions on tablespaces, or on running multiple databases in the same instance. Or maybe working with MySQL really does rot one's brain...

      With regards to the GP, it seems to me that SQLite has done a much better job than MySQL ever did of creating a fast, low overhead database. While this does seem like an obvious attempt by MySQL to get back to their roots, I have to wonder whether it's worth it.

      --
      If I don't put anything here, will anyone recognize me anymore?
    21. Re:anotherwards, MySQL 3.x... by tacocat · · Score: 1

      That's exactly what I was thinking. There's no point in having a database if you aren't doing anything more than File IO. Try to process 7G of data in a database and then try to do the same in a flat file. Flat files always win.

      Databases help you find and organize the data. But if all you are doing is regurgitating HTML blogs then stick with something like Perl Template::Toolkit.

    22. Re:anotherwards, MySQL 3.x... by smellotron · · Score: 1

      ...we had 8 separate MySQL instances running on 8 different ports... I never did get a good explanation why the admin set it up that way.

      Maybe because it kept the admin employed? Maintaining a Rube Goldberg setup is a form of corporate ransom, and it keeps you employed until you lose your leverage.

    23. Re:anotherwards, MySQL 3.x... by try_anything · · Score: 1

      Yes; and in fact I haven't found another safe way to feed parameters to a database in Java. There doesn't appear to be any kind "sanitize/escape" function nor paremetrized input for non-prepared statements in the JAVA SQL API, so either you write one yourself or stick to PreparedStatements.

      I think this is intentional. Aren't effective sanitization functions essentially impossible to write, given the huge variety of vulnerabilities in different database back-ends? You have to know every little detail of every dialect of SQL that you might run against some day. Plus, putting your data through such a complex munging/demunging process makes it likely that your system will corrupt some kinds of text data, such as foreign names and addresses.

  2. Great, even more insecure web apps by Jimmy+King · · Score: 5, Insightful

    This is stupid. Removing prepared statements and access control lists? Don't we have enough trouble with people writing insecure web apps when we provide them with the tools easily make them secure?

    1. Re:Great, even more insecure web apps by bingo_cannon · · Score: 1

      The summary says they're being moved into modules, so I'm guessing you can always load them at startup. PS: I didn't RTFA, did you?

    2. Re:Great, even more insecure web apps by mgmatrix · · Score: 2, Funny

      Moved != Removed. The functionality in question is being moved into a modulee..

      --
      Looking for something to do? http://www.grinion.com
    3. Re:Great, even more insecure web apps by Tridus · · Score: 1

      From the FAQ:

      "No modes, views, triggers, prepared statements, stored procedures, query cache, data conversion inserts, ACL. Fewer data types. Less engines, less code. "

      So yes they're going to a module type system, but it says flat out these things are removed entirely.

      And I agree with the first comment. We already had this, its called MySQL 3.

      --
      -- "So they told me that using the download page to download something was not something they anticipated." - Bill Gates
    4. Re:Great, even more insecure web apps by bingo_cannon · · Score: 5, Interesting

      Umm..errrr! Drizzle will have a micro-kernel architecture with code being removed from the Drizzle core and moved through interfaces into modules. Akers has already selected particular functionality for removal: modes, views, triggers, prepared statements, stored procedures, query cache, data conversion inserts, access control lists and some data types."

    5. Re:Great, even more insecure web apps by Jimmy+King · · Score: 1

      Others have already covered this, but the article does say "removed". It is entirely likely that you're correct and they're being moved rather than completely removed and it's just not the best wording, though.

      In either case, I think it's stupid. That is functionality that I believe should be in the core code. There's very little reason to not want to be using that functionality in a web app.

    6. Re:Great, even more insecure web apps by bingo_cannon · · Score: 1

      I agree with your second point. That's core functionality to be "moved". Take the last sentence in the summary in context with the one previous it. Then its quite obvious removed = moved.

    7. Re:Great, even more insecure web apps by Izmir+Stinger · · Score: 0

      ; DROP table Security_Features --

      --
      ~Quidquid latine dictum sit, altum sonatur.
    8. Re:Great, even more insecure web apps by Gordonjcp · · Score: 1

      Have you *ever* used an ACL in MySQL for a web app? Answer honestly now...

      Since there's only ever going to be one user accessing the DB, why would you waste time with ACLs?

    9. Re:Great, even more insecure web apps by Anonymous Coward · · Score: 0

      Because it's more SECURE! It's a SECURITY FEATURE! Adding SECURITY FEATURES adds SECURITY! If you lose any SECURITY, the TERRORISTS WIN! What are you, some kind of TERRORIST?

    10. Re:Great, even more insecure web apps by marnues · · Score: 1

      Since when is it common practice to only have 1 user set up for a database? We have a user account for ever developer, tester, and web app. The web apps are locked down to what they need and where they come from. Why wouldn't you do that? Its incredibly easy to set up.

    11. Re:Great, even more insecure web apps by Gordonjcp · · Score: 1

      Do you actually understand what the ACLs are? Do you know why they are a good idea? Do you know why they are a bad idea?

  3. Drizzle? by CheeseTroll · · Score: 5, Funny

    Fo' shizzle!

    --
    A post a day keeps productivity at bay.
    1. Re:Drizzle? by krkhan · · Score: 5, Funny

      In other news, PostgreSQL releases sprinkle, SQLite releases Rivulet while Oracle defies all conventions and releases Hailstorm.

      Microsoft, of course, was busy "revolutionizing" the look-n-feel of MS Access.

    2. Re:Drizzle? by Illbay · · Score: 0, Offtopic

      Ah, d*mmit! Beat me to it!

      --
      Any technology distinguishable from magic is insufficiently advanced.
    3. Re:Drizzle? by aproposofwhat · · Score: 1

      But I do hear that Microsoft is working on 'Shitstorm' :o)

      --
      One swallow does not a fellatrix make
    4. Re:Drizzle? by Collective+0-0009 · · Score: 1

      You know MS has this little known program called MSSQL. At least flame apples to apples.

      --
      I finally updated my sig, but now it's lame.
    5. Re:Drizzle? by omfgnosis · · Score: 1

      Funny, I would guess some 35 year old got jealous of being left out and modded yours offtopic.

  4. No views?! by qoncept · · Score: 4, Insightful

    I can't imagine what logical reason there is for removing views, unless queries are removed too. Then I'd see where he's really going with this.

    And removing stored procedures seems to be more accomidating to the way developers actually write rather than the way they should. Just think how great it will be when all of the processing on every web page is done by php rather than in the database!

    --
    Whale
    1. Re:No views?! by ghoti · · Score: 3, Interesting

      Which is exactly what the majority of CMSs do today. They treat the DB as dumb storage, and make very little use of its capabilities.

      --
      EagerEyes.org: Visualization and Visual Communication
    2. Re:No views?! by YeeHaW_Jelte · · Score: 1

      "Just think how great it will be when all of the processing on every web page is done by php rather than in the database!"

      I don't have to imagine that, you insensitive clod. Thanks for remembering me about what a messed-up crap my inherited code-base is.

      --

      ---
      "The chances of a demonic possession spreading are remote -- relax."
    3. Re:No views?! by Anonymous Coward · · Score: 1

      That's because, compared to other databases, MySQL is dumb storage.

      A lot of people think MySQL is great, but a lot of these same people have never worked on a "real" database that provides true ACID compliance, has powerful stored procedures, and instead of providing too many choices only have sensible options that all preserve data integrity.

    4. Re:No views?! by Alpha830RulZ · · Score: 4, Funny

      Which has the unfortunate side effect of making the application portable across DBMS's.

      I'm just sayin'...

      --
      I was taught to respect my elders. The trouble is, it's getting harder and harder to find some.
    5. Re:No views?! by GooberToo · · Score: 2, Interesting

      While kind of hackish (it uses dia as its GUI), cool projects like tedia2sql make it easy to develop a single schema which works on 8 or 9 major RDMS, for free. It's even possible to generate customized triggers and/or schema sections on a per RDBMS basis.

      I don't think it covers stored procedures. It has been a long time since I've used it, but regardless, considering stored procedures are often ignored, it may or may not be a factor for your next project.

    6. Re:No views?! by wezeldog · · Score: 2, Funny

      Don't be too proud of this technological terror you've constructed. The ability to compile a SQL statement is insignificant next to the power of the Force.

    7. Re:No views?! by Joebert · · Score: 1

      FROM within (the_power) SELECT; // you must

      --
      Wanna fight ? Bend over, stick your head up your ass, and fight for air.
    8. Re:No views?! by Anonymous Coward · · Score: 0

      No application is ever fully portable, even stuff like outer JOIN syntax isn't universally defined. Is the solution layers that abstract away all database difference to come to some mediocre common divider sum result? (I'm sure a better quote exists to say that) To me it's better to use your db capabilities, like for example being able to use a recursive query simplifies hugely the code you have to write and is a lot more efficient than doing the recusion yourself. So, using capabilities = less work = good, porting will always come with it's problems.

    9. Re:No views?! by Anonymous Coward · · Score: 0

      >And removing stored procedures seems to be more accomidating to the way developers actually write rather than the way they should.

      Agreed...

      >Just think how great it will be when all of the processing on every web page is done by php rather than in the database!

      Huh? You made a 180 degree turn, IMO doing processing only in php is what they *do*, while they *should* be doing processing on the db using stored procedures.

      Because:
      - an application that does part of the processing on the database will scale better
      - easier manual administration
      - different application can use the same procedures
      - etc.

    10. Re:No views?! by mindstrm · · Score: 1

      But see what happens when people start tryign to write massively scalable applications - they end up doing all kinds of scalability and redundancy on the client side, rather than in the DB itself.

    11. Re:No views?! by kv9 · · Score: 1

      No views?! (Score:5, Insightful)

      good job, mods.

      I can't imagine what logical reason there is for removing [...]

      here's one: they are being removed from the core because of the modularization TFA speaks about. removed from the core, moved into separate modules. think Apache.

    12. Re:No views?! by Anonymous Coward · · Score: 0

      This is often done for portability. Many CMSs don't use advanced DB features because those features are not available or not standardized across the major DBMS systems.

  5. Oh man. by Hero+Zzyzzx · · Score: 4, Interesting

    One man's "superfluous" is another man's key feature. No views? No prepared statements? Holy carp. Isn't MySQL crippled enough as it is?

    At first glance it's hard for me to see where Drizzle would fit where SQLite doesn't.

    1. Re:Oh man. by ricebowl · · Score: 3, Interesting

      I realise that this is hugely off topic, but is there any chance anyone can highlight the benefits of prepared/stored statements? I've been trying to read around on the subject but it seems to be hard to pin down the benefits, and then I come across this: http://www.tonymarston.net/php-mysql/stored-procedures-are-evil.html, which offers an insight, but seems moderately biased against it "because he's never bothered with it yet, why bother with it now. And get off my lawn!"

      Thanks for any help with this...

    2. Re:Oh man. by Jellybob · · Score: 4, Insightful

      At first glance it's hard for me to see where Drizzle would fit where SQLite doesn't.

      Anywhere you need concurrent access - SQLite is not designed as a high performance database, it's designed as a simple to implement, single file database.

    3. Re:Oh man. by pjt33 · · Score: 2, Interesting

      It's rather hard to do a successful SQL injection attack against a prepared statement. It's not trivial to validate your inputs so as to avoid an SQL injection attack without them. That is IMO the number one reason for using them.

    4. Re:Oh man. by corbettw · · Score: 4, Informative

      One of the big reasons they're popular is security. Without stored procedures, to allow a program (or the programmer who wrote it) access to a given data set, you'd have to grant it SELECT privileges on the table(s) containing that data. With a stored procedure, you just grant it permission to run that procedure, which might only return a subset of the data in the table(s).

      Quick example: you have two tables, employees and employee_reviews. The employee table contains a unique ID, the employee's name, their salary, their start date, and other data. The employee_reviews has a foreign key linked to the employee's unique ID, the score for their latest review, and the text of the review. Without using stored procedures, to provide access to a given program to display the employee's name and the text of the review, it would need SELECT access on both tables; that exposes the employee's salary, which (we'll assume for this example) violates company policy.

      With a stored procedure, though, you don't have this dilemma. The procedure would just select the appropriate columns and return them. This protects the employee's privacy and abiding by company policies.

      --
      God invented whiskey so the Irish would not rule the world.
    5. Re:Oh man. by CastrTroy · · Score: 1

      I can understand getting rid of stored procedures. But I can't see why you would get rid of prepared statements. It's the only reliable way to ensure you don't have SQL injection holes. With mysql_real_escape_string_we_mean_it_this_time, there's always a chance that you'll leave it out, or that someone will find some weird unicode string that will break it and allow an attack. If you used prepared statements, it completely removes the ability from someone to "forget" to put it in, unless they forget to use prepared statements altogether. It also removes the possibility of sql injection, because the values are sent separately from the command.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    6. Re:Oh man. by ricebowl · · Score: 2, Insightful

      I don't want to sound ungrateful, but is that the only reason? I accept that having one more secured web-server in the world is a righteous goal, and ethical too, but I was expecting rather more pros than just the one (albeit an important one).

      Thanks though, much appreciated. =)

    7. Re:Oh man. by hanshotfirst · · Score: 4, Informative

      Prepared Statements:
      * You can avoid SQL injection (improved security)
      * You can use "bind variables" (improved DB performance, improved security - see above)

      Stored Procedures:
      * You can write a transaction API in the database, and leave all that "ghastly" SQL out of your Java/PHP/languageOfChoice.
      * Your data will outlive the cool-hip-language-of-the-day. Keeping that transaction API in the database means you don't have to rewrite all the data access/business rules when you want to change languages for your application.
      There are more reasons, but these are the big ones.

      --
      Why, oh why, didn't I take the Blue Pill?
    8. Re:Oh man. by Alpha830RulZ · · Score: 1

      Protection against SQL injection, better application performance are the two I know of. I can imagine that you would get some additional exception handling possibilities in some cases as well.

      --
      I was taught to respect my elders. The trouble is, it's getting harder and harder to find some.
    9. Re:Oh man. by PhrostyMcByte · · Score: 1

      "Stored procedures" can reduce the amount of traffic between the client/server - with extensions some servers can even perform branching/etc. right in a sproc. The server can also store the VM of the query, so it doesn't have to parse it every time.

      "Prepared statements" are can be thought of a temporary stored procedures that live as long as the client.

    10. Re:Oh man. by Tim+C · · Score: 2, Insightful

      As well as the security aspects of using prepared statements, they can also boost performance as the RDBMS doesn't have to keep parsing what is in fact the same statement time and again.

      Stored procedures can similarly increase security (when used right) and boost performance, depending on your application and architecture. For example if the DB is running on a different physical box then shifting some of the data processing there can take a load off the app/web server(s). On the other hand that increases the application's complexity, as you now have business logic in (at least) two places and (almost certainly, but not necessarily) two languages.

    11. Re:Oh man. by larry+bagina · · Score: 1

      Prepared statements and stored procedures are not the same thing.

      A prepared statement is when you send an SQL template to the server (SELECT * FROM foo where columm=?), it parses it, gives it a temporary name, and you can later execute it by passing in paramters. This is a very good thing since it prevents sql injection problems (and the query doesn't need to be reparsed every time).

      Stored procedures are written in their own db language (tsql, plpgsql, plperl, pltcl, plsql, sql etc) which is generally turing complete. If you had a php/perl/etc function that made a couple database calls and computed some sort of result from it, that's the sort of thing that could be moved to a stored procedure. My experience (with postgresql/plpgsql and sql server/tsql) run counter to his assertions (based on not using them).

      --
      Do you even lift?

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

    12. Re:Oh man. by Tim+C · · Score: 1

      Are you sure about that? I could have sworn that the last time I was fixing permissions in a MS SQL Server DB, I had to grant the user both execute permission (to run the stored procs) and select permission (as they selected from tables).

      That might just have been my inexperience (I'm definitely not a DBA!) though...

    13. Re:Oh man. by Mr.+Shiny+And+New · · Score: 4, Informative

      You need to keep in mind the difference between a Prepared Statement and a Stored Procedure.

      A Stored Procedure is a function stored in the database that you call from the application. There are pros and cons, which I won't go into here. Personally I don't like them but I can see why some people love them.

      A Prepared Statement, however, is the most useful tool you can use to protect yourself from SQL injection and every program should use them all the time. If there were a way to get rid of NON-prepared statements I think that'd be the right thing to do but I'd never use a DB that didn't support prepared statements. Let me illustrate the difference (Java-like pseudo-code):


      Connection con = getConnection();
      Statement stmt = con.createStatement("Select * from users where username = '" + username + "' and password = '" + password + "');
      ResultSet rs = stmt.executeQuery();

      PreparedStatement pstmt = con.prepareStatement("Select * from users where username = ? and password = ?"); // bind parameters
      pstmt.setString(1, username);
      pstmt.setString(2, password);
      ResultSet rs = pstmt.executeQuery();

      The PreparedStatement example looks like more code to write, and it is (But you can write utility functions to simplify this if you want).
      But there are two advantages:
      1. You can re-use the PreparedStatement if you need to run the query more than once with different parameters and this saves processing.
      2. The bound parameters are automatically converted internally to parameters so that the SQL doesn't have to parse the parameters themselves. This protects you from SQL injection. If the query above had been used in the application's login module, anyone could log in if they typed in the administrator's username and the password ' OR 1 = 1; --

      The reason is that in the first example the password contains SQL code. The SQL parser can't tell the difference between your parameter (the password) and the code because you passed it in as all one string. In the second case the parser sees that there is a variable and binds the value to that variable during execution of the statement. The variable isn't parsed as code.

      Someone reading this is probably thinking "Just escape the parameters manually!", which helps, but by always using prepared statements and binding parameters you will never miss a parameter or have to worry about bugs in the escaping routine (PHP's mysql module has had several bugs in those routines).

      I can't stress this benefit of prepared statements enough. It is so critical that we don't hire people at my company who don't understand this problem.

    14. Re:Oh man. by rasilon · · Score: 4, Insightful

      He seems to have a tendency to represent the worst possible uses of various things as typical usage, and ignore a number of useful things.

      For example, he claims that the security uses of stored procedures have been replaced by role based access control. That's incorrect. If you want to audit changes to a table using RBAC then the user not only needs access to the audit table but must always update it themselves. A user could easily cover up changes by simply omitting the audit row, or adding false data. The use of triggers and stored procedures can enforce the audit, and protect it from malicious update.

      His claim that triggers are a bad idea because a novice DBA once disabled them on a production database, not realising that they existed, is just silly. The fix is to ensure that people get a clue before they get superuser access! Triggers are a standard part of every big modern database, and a standard part of any training program.

      I could go on, but I don't really fancy debunking every silly thing people write about databases...

    15. Re:Oh man. by sootman · · Score: 1

      At first glance it's hard for me to see where Drizzle would fit where SQLite doesn't.

      MySQL may not be everyone's cup of tea and it does have some "gotchas" but it does at least have SOME "real" database features that SQLite doesn't. From their FAQ:
      Q: SQLite lets me insert a string into a database column of type integer!
      A: This is a feature, not a bug. SQLite does not enforce data type constraints. Any data can be inserted into any column. You can put arbitrary length strings into integer columns, floating point numbers in boolean columns, or dates in character columns.

      Besides, not everyone needs everything. As you said, "One man's 'superfluous' is another man's key feature." So if they're key features for you, don't use it. There are scores of lowest-common-denominator web apps out there that don't need any of these features. I always use the analogy of a pickup truck and a tractor-trailer--yes, a real rig can do an order of magnitude more than a pickup can, but a pickup is still suitable for thousands of common tasks.

      Not everyone needs "real" database features. It's a continuum and you pick the software from the list that fits your needs. Text files work for some things, SQLite works for others, then MySQL, Postgres, MS-SQL, Oracle, etc. The best tool for the job is often the one that does what you need and that you know how to use. I don't NEED to use some comp-sci-grad-approved enterprise-ready database for a damn phonelist. Using a "real" database does not instantly make me a "real" programmer and my choice of DB does not make my work "legit" or not.

      --
      Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
    16. Re:Oh man. by Anonymous Coward · · Score: 0

      I use DB2 for my phone list. That makes me a serious database administrator, so please don't burst my bubble of self-congratulation!

    17. Re:Oh man. by Hero+Zzyzzx · · Score: 1

      I think you're confusing prepared statements with stored procedures. See this wikipedia article for an overview of what a prepared statement is.

      As to stored procedures, they allow you to centralize business logic, validations, and a ton of other functionality in your database so that everything that interacts with your data follows the same rules and gets the same stuff back.

      They are quite flexible and mature in Postgres and you can write them in many different languages. They are very new in MySQL, you can only use SQL and I'm sure they are laden with quirks.

    18. Re:Oh man. by jellomizer · · Score: 1

      In most basic terms it keeps your logic better organized, and less network traffic between the Web Server/Application and the Database server where in real environments are usually on separate systems.

      Eg. You need to return a table that has sums of a category, by a category it is less traffic to send a usp_getcatsum '142' and get back a table with 1 rows and 3 columns. vs. sending a "SELECT CAT.CatID, CN.CatName, SUM(CAT.price) as price from CAT left Join CN on (CAT.CatID = CN.CatID) where CAT.CatID = '142' group by CAT.CatID, CN.CatName"

      also inside your stored procedure it is easier to keep things better formatted in SQL which may conflict with formatting for your language.
      so "SELECT CAT.CatID, CN.CatName, SUM(CAT.price) as price from CAT left Join CN on (CAT.CatID = CN.CatID) where CAT.CatID = '142' group by CAT.CatID, CN.CatName"

      can bet stored like...

      CREATE PROCEDURE usp_getcatsum (@PassedCatID as varchar(6)) as
      SELECT CAT.CatID,
                CN.CatName,
                SUM(CAT.price) as price
          from CAT
                left Join CN on (CAT.CatID = CN.CatID)
          where CAT.CatID = @PassedCatID
        group by CAT.CatID, CN.CatName

      or whatever format floats your boat.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    19. Re:Oh man. by Anonymous Coward · · Score: 0

      Are you sure about that? I could have sworn that the last time I was fixing permissions in a MS SQL Server DB, I had to grant the user both execute permission (to run the stored procs) and select permission (as they selected from tables).

      That might just have been my inexperience (I'm definitely not a DBA!) though...

      Absolutely not! You only need to grant EXECUTE on the stored procedure. The table, itself, doesn't need any SQL Server User/WinNT User permissions. Doing so throws away the security offered by the Stored Procedure concept.

    20. Re:Oh man. by Stile+65 · · Score: 1

      Yes, but it depends on the settings for ownership chaining, and the ownership of the tables and stored procs. See here

      --
      I claim first use of "Error No. 0B" - or "No. 0B error." It'll be the new ID 10T!
    21. Re:Oh man. by Hero+Zzyzzx · · Score: 1

      I didn't say MySQL didn't have a role, and I'm sure that Drizzle will become very popular (sigh) because the magic MySQL name is attached to it.

      I maintain and program for MySQL on an almost daily basis, BTW. I understand that you need to make choices during development - I use Postgres, MySQL and SQLite in various places. Some from inherited choices, some from my own volition.

      I wonder how far they can keep crippling it until they find the most tolerant niche of users? "Well, this application doesn't really need reliable INSERTs, I'll use Drizzle Lite."

    22. Re:Oh man. by GooberToo · · Score: 1

      Anyone arguing against stored procedures simply doesn't understand them or had never worked on complex projects requiring a RDBMS.

      Stored/prepared queries are often faster, more secure, and standardize business rules and logic. This in turn simplifies and speeds application development while reducing bugs and eases maintainability; especially where multiple types of clients are required.

      Arguing against stored procedures is the same thing as declaring, I love working harder, creating bugs, slow database access, hate scalability, hate security, and I have no idea what I'm talking about.

      In reality, they are not a panacea and they are not perfect, but no serious DBA working on a non-trivial project dismisses them outright unless other issues (normally business) exist, preventing their use. Anyone who outright dismisses them should simply be ignored.

    23. Re:Oh man. by famebait · · Score: 1

      Yes, you _can_ do those things, but what you get is a RDBMS-centric application design. Suitable for some tasks, less so for others.

      If you want to do proper object-oriented design, the RDBMS worldview really gets in the way, and it is often better to abstract away it all away as a persistence layer, that just happens to be implemented using an RDBMS. In that case, you need to have your business logic in your application. You can use some of the integrity-checking in the DB for extra security, but you cannot rely on it to implement your core functionality.

      --
      sudo ergo sum
    24. Re:Oh man. by TheRaven64 · · Score: 2, Informative

      Not quite. SQLite allows concurrent access, but it doesn't allow concurrent writes. This is not a problem for most web apps, which have a very high read-to-write ratio. It's really a question of granularity of locks. In the Bad Old Days, when data was stored in flat files, if you wanted to write something, you needed a write-lock on the file, which would block any readers and could not be acquired until all readers had closed the file. With a full RDBMS, you just need to lock a single table or (ideally) a few rows in that table. This blocks people doing SELECT * type things, but a lot of other reads can go ahead. With SQLite, only one process may be writing to the database, and this blocks any readers until the write has completed, but you can have any number of processes reading from the database.

      --
      I am TheRaven on Soylent News
    25. Re:Oh man. by Blahgerton · · Score: 1

      In what language do you think "SELECT * FROM foo where column=?" is written? It's not Java. It's not Perl. It's not PHP. It's one of those dreaded database languages.

      I shudder at the thought of these prepared statements. You prevent SQL injection, like a stored procedure; you pass (typed) parameters as inputs, like a stored procedure; you get the benefits of a re-used execution plan, like a stored procedure. It's almost like a stored procedure, without being in the database where it can be tuned for performance, updated as the schema changes without recompiling the application, etc.

    26. Re:Oh man. by jadavis · · Score: 1

      That can also be easily accomplished with views.

      Sometimes they can be useful for access control, but I think of stored procedures as a different way to use the DBMS.

      Usually, you generate SQL code and send it to the DBMS which evaluates your expression. Using a stored procedure is conceptually more like an RPC (even if it still requires to to generate some trivial SQL to execute it).

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    27. Re:Oh man. by Anonymous Coward · · Score: 0

      This issue has been and will be argued from all sides until the end of computing.

      "it is often better to abstract away it all away as a persistence layer"

      .. which is married to the language-du-jour, and will eventually be cursed by the developers who support it as 'the legacy system'.

      Of course, it also assumes an ideal world where *all* clients of the database can be forced to use the persistence / DA layer where you have decided to stuff your business logic.

      When you're dealing with long-in-the-tooth databases with reams of data that everyone wants a piece of, that typically becomes a total fantasy - technologies ranging from the archaic to the latest fly-by-night magic bullet, all being used to access the database.

      And in that scenario, having the RDBMS-centric design starts to look pretty good: when business logic is enforced in SPs and triggers, developers making an end-run around ye olde persistence layer can't go munging up data and violating the business rules too badly.

      I think in this case that I'll skip "proper object-oriented design" - I can do without the late night backfill crisis sessions that the One True App Layer inevitably leads to.
       

    28. Re:Oh man. by jadavis · · Score: 1

      You can use some of the integrity-checking in the DB for extra security, but you cannot rely on it to implement your core functionality.

      How do you implement UNIQUE in the application? That is often core functionality.

      These ideas about "simple" persistence layers usually result in huge amounts of application code. A persistence layer is essentially the same as a virtual memory system: it can read or write to data stored with some key. Management of complex data is not well suited to this abstraction, and so the huge amounts of application code are to work around the poor abstraction.

      For extremely simple applications, this persistence layer may suffice. However, the complexity threshold at which an RDBMS becomes a better abstraction is very low.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    29. Re:Oh man. by cmburns69 · · Score: 1

      Don't forget that the benefits you've listed for prepared statements can easily be implemented purely on the client side.

      It seems to me, however, that prepared statements can give a performance *gain* since you don't have to parse the SQL for each query.

      --
      Online Starcraft RPG? At
      Dietary fiber is like asynchronous IO-- Non-blocking!
    30. Re:Oh man. by jadavis · · Score: 2, Informative

      With a full RDBMS, you just need to lock a single table or (ideally) a few rows in that table. This blocks people doing SELECT * type things, but a lot of other reads can go ahead.

      With some RDBMSs, like PostgreSQL, writers do not block readers at all.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    31. Re:Oh man. by corbettw · · Score: 1

      That can also be easily accomplished with views.

      Very true. Of course, Drizzle removed views, as well. :(

      --
      God invented whiskey so the Irish would not rule the world.
    32. Re:Oh man. by mounthood · · Score: 1

      I've never used it but:

      Starting with version 3.3.0, SQLite includes a special "shared-cache" mode (disabled by default) intended for use in embedded servers.

      http://www.sqlite.org/sharedcache.html

      --
      tomorrow who's gonna fuss
    33. Re:Oh man. by Anonymous Coward · · Score: 0
      The PreparedStatement example looks like more code to write, and it is

      .

      Especially in Java. Rails would be something like
      user = User.find(:first, :conditions => ['username = ? and password = ?', username, password])

      And as a bonus now you've got a User object, not a result set.

    34. Re:Oh man. by FishWithAHammer · · Score: 2, Insightful

      Um. That one alone is good enough reason to use them.

      It's not "important." It's fucking vital.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    35. Re:Oh man. by kgdoom · · Score: 1

      Or HSQLDB, H2, Derby for that matter...

    36. Re:Oh man. by cbreaker · · Score: 1

      It's funny, really. Modern database systems aren't all that difficult to understand. The SQL language is very straight forward, and the surrounding concepts (Stored Procedures, etc) are not rocket science.

      But, it's one of those things that just remains a mystery to some people, and there's always the same perpetual misconceptions and misunderstandings about how they work.

      Oh well.

      --
      - It's not the Macs I hate. It's Digg users. -
    37. Re:Oh man. by cduffy · · Score: 1

      Yes, you _can_ do those things, but what you get is a RDBMS-centric application design. Suitable for some tasks, less so for others.

      There's nothing DB-specific at all about prepared statements; any database and ORM worth thinking about supports them; given the performance and security improvements (one Oracle application I saw spent a full 50% of the database's CPU time doing soft parses because the developers didn't use prepared statements), there's no excuse for failing to use them. For stored procedures that's less true -- but porting between databases isn't that much trouble if they're judiciously applied, and any decent ORM will be able to work with them. Stored procedures should be used only where they make sense; prepared statements always make sense.(*)

      (*) - or close enough to be a rule of thumb for anyone who doesn't know enough to understand when/why this is or is not true.

    38. Re:Oh man. by encoderer · · Score: 1

      Sprocs are faster and more secure.

      But they have the downside of splitting your app logic. Many would argue that it makes no sense to hold business logic in the DB tier.

      There is no value in being religious about this in a small app with a small team.

      But in large environments, it allows DBA's to ensure that every DB customer gets a fair and stable response time.

      Think of a table with 1bn rows. If you can only query the views the DBA gives you rights to, you can't accidentally produce a cartesean product by passing-in a poorly coded INNER JOIN that DOS's the server.

      And if you can only do an UPDATE via a prepared statement or a SPROC, you can't accidently truncate the table to munge the data by f'ing up your WHERE criteria.

    39. Re:Oh man. by vadim_t · · Score: 1

      On stored procedures:

      One big, BIG benefit to them is vastly reducing latency and network traffic in some cases. I'll give you a practical example.

      This application I worked on calculated prices for a list of products. This was in the hundreds of rows, often multiple times per second. Each price calculation required retrieving the base price from the products table, applying percentages depending on the type of customer (checking customer table), applying discounts for bulk orders, and checking for discounts. All of that always had to be done, because the lowest price has to be returned.

      The function that did this was written in Visual Basic and was just a bunch of DB calls. So not much to optimize on that side.

      The application would run a search, SELECT a list of maybe 100 products, then calculate prices for all of them, then do it again maybe half a second later. And this could be done concurrently on several computers at once. It was hammering the database pretty nicely.

      So I turned it into a function in MSSQL. The result was the above was now done by one query:
      SELECT prod_id, prod_desc, get_price(prod_id, cust_id, amount, getdate()) WHERE ...

      Results?

      1. The new way ran *35 times* faster
      2. The price calculation function was now in one unique place: the DB. Now you could write a C#, Perl or whatever app and have it calculate prices like everything else.

      This was achieved by simply rewriting the code as a stored proc, with no attempts at optimizing the logic. The improvement comes from that even on a LAN, the overhead of making queries over the network adds up pretty fast, and 1 roundtrip is a lot better than many. Also the database doesn't need to spend time on parsing the same queries.

      Other benefits include not needing to give the application the permission to see all the information needed to calculate the price, and having one central place where to place logging and error checking.

      I applied the same idea to a later project with Postgresql. Nearly every operation is a stored proc. It doesn't do a "SELECT ... FROM users" to verify a login, it does "SELECT verify_login($user, $pass)" (note: this is actually prepared query, I don't really use $variables that would be vulnerable to injection). To create a new user it does "SELECT create_user($name)". And so on. Should somebody gain access to the DB through SQL injection for instance, they will find they can't run a SELECT against the users table, can't perform an operation without going through the stored proc that WILL verify it's sane and write a log entry, can't insert a fake log entry because log entries are only written by stored procs, and so on. It also minimizes latency and network traffic. A stored proc might touch 8 tables, but return only an int. This approach also means the database's interface are the stored procedures. I could modify the table structure by doing the update in a transaction to the tables and affected stored procs with the application running.

      This appproach has downsides of course, such as putting lots of logic into the DB, and it's probably not suitable for large applications using multiple servers.

    40. Re:Oh man. by XHIIHIIHX · · Score: 1

      Yep, not sure what's left. I think he's really just writing a glorified java hash store on top of BerkeleyDB.

    41. Re:Oh man. by h3 · · Score: 1

      mysql> create table junk( test char(3) );
      Query OK, 0 rows affected (0.11 sec)
      mysql> insert into junk(test) values ('1234');
      Query OK, 1 row affected, 1 warning (0.00 sec)
      mysql> select test from junk;
      +------+
      | test |
      +------+
      | 123 |
      +------+

      At least the SQLite folks are upfront about it - MySQLs sins are greater, in my opinion.

    42. Re:Oh man. by Anonymous Coward · · Score: 0

      You are comparing two completely different things, railsn00b.

      Java has ORM frameworks and Rails can directly call SQL statements. In anything but the most trivial examples the amount of code won't be significantly different either.

    43. Re:Oh man. by quanticle · · Score: 1

      Well, the main performance benefit is from the fact that you're not sending single SQL statements over, but you're storing the statements on the server and calling them when you need them to run.

      --
      We all know what to do, but we don't know how to get re-elected once we have done it
    44. Re:Oh man. by Anonymous Coward · · Score: 0

      Having just suffered a SQL injection attack from a botnet on a client's server that runs ColdFusion, I can tell you that input validation is damn important. Anything that speeds its implementation, is a good thing.

    45. Re:Oh man. by Eponymous+Bastard · · Score: 1

      A DBMS doesn't blindly execute the SQL code you give it. Fulfilling a join in a select might make use of a bunch of indices, sort earlier/later, etc. Basically, whatever code you send it has to be compiled (parsed, analyzed, optimized).

      A stored procedure allows the server to keep a precompiled copy (Maybe just pre-parsed and saved in binary, maybe already optimized, with values as to what changes in which statistics of which tables should trigger a recompilation, etc).

      So, these are useful as performance optimization.

      There are also workflow reasons. In some places the DBA optimizes queries and indexes, which is easier if he doesn't have to mess with/figure out the app code. In some places, a programmer does the data layer and just hands you the data access code. Sometimes you have multiple pages or apps using the same database, so sharing stored procedures is a time saver (and copy/pasting is evil anyway).

    46. Re:Oh man. by Anonymous Coward · · Score: 0
      You are comparing two completely different things, railsn00b.

      .

      For sufficiently small values of "completely." And If you think that the amount of code, even when using a Java framework, would not be significantly higher, then it is you who is the "n00b." I'm willing to wager that I was getting paid to write software before you were born.

    47. Re:Oh man. by TLLOTS · · Score: 1

      Certainly it's vital, but prepared statements are hardly the only way to attain such security.

    48. Re:Oh man. by abirdman · · Score: 1

      Bingo. You're right. Stored procedures are a royal PITA, until the first time the data is hit by two or more different systems. In a small, ~20-30 table database that's serviced by one (possibly Web) front-end, it's arguably easier to write the data integrity handling code right into the front-end. My experience is it's easier to handle foreign key integrity in the code than it is to write the exception handling required to handle it in the database.

      But, as soon as there's another system using the data, all the data integrity code needs to be recreated, and likely in another language. That's when all those niceties, like built-in foreign key integrity, and stored procedures for update and transforms, become precious.

      I do believe MySQL figured out a large percentage of their users actually fall into the first group-- single application (think blogs and bbs's and shopping carts), single language, where the data will never be accessed from elsewhere. Why include the infrastructure for features that will never be used? They don't really need a grown up DBMS (I know-- they need SQLite, but MySQL can't recommend that), they need something fast, cheap, and reliable. Drizzle seems like just the ticket.

      And as for prepared statements, they don't have to be "part" of the database itself-- they can be part of the front-end language. I have used them in Perl DBI (in MySQL 3.x I think) quite a while before they were formally built into MySQL. I don't think they increased performance, but they're much more secure.

      --
      Everything I've ever learned the hard way was based on a statistically invalid sample.
    49. Re:Oh man. by smellotron · · Score: 1

      Why aren't you using PDO? Let the database driver escape everything for you.

    50. Re:Oh man. by smellotron · · Score: 1

      If you want to do proper object-oriented design...

      That's your problem right there. There is no value in "wanting" OOD aside from a personal learning experience.

    51. Re:Oh man. by smellotron · · Score: 1

      Coming from a Postgres background, trying to use stored procedures in MySQL are awful.

      Worst of the bunch is that you can't return recordsets from stored procedures, meaning there's no ability to use them as "parameterized views".

    52. Re:Oh man. by smellotron · · Score: 1

      I've used that exact method for user management while working with a team of inexperienced developers (I was the de-facto DBA). Because of that, I was able to implement password hashing without exposing it to the app developers, so they never had a chance to botch password management.

    53. Re:Oh man. by FishWithAHammer · · Score: 1

      The alternatives, at least in PHP (which is the primary way just about everyone uses MySQL) are shitful at best.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    54. Re:Oh man. by Anonymous Coward · · Score: 0

      "With a stored procedure, though, you don't have this dilemma. The procedure would just select the appropriate columns and return them. This protects the employee's privacy and abiding by company policies."

      ?! Why wouldn't you do this example with a view instead? It'd certainly be faster. Stored procedures should, primarily, be used as an extra check on data integrity. (ie: checking data is appropriate for the field).

    55. Re:Oh man. by Anonymous Coward · · Score: 0

      Stored procedures != Prepared statements.

      You should use prepared statements everywhere, unless you want your user to be able to enter raw SQL into a field.

      My opinion is to use stored procedures as an extra layer of data verification, but some people use it for all sorts of things, so there is some debate here.

    56. Re:Oh man. by Bill,+Shooter+of+Bul · · Score: 1

      I can't find it right now but a couple weeks ago one of the more prominent mysql blogger wrote an article about the downside of prepared statements: speed. It requires two calls for a a prepared sql statement. It would be better to write a library that mimicked the prepared statement in the app. Webservers are easy to scale, so anything that pushes more load on them and less on the database servers is a good thing.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    57. Re:Oh man. by Mr.+Shiny+And+New · · Score: 1

      I consider that an implementation detail that should be taken care of by the client library. There's no reason that it can't batch up all the preparing + binding and send it all at once the first time you call execute(). In any case, given the absurdity of trying to sanitize every single input field (let's face it: most programmers aren't up to the task) I think using Prepared Statements is well worth any performance penalty in this case.

    58. Re:Oh man. by Bill,+Shooter+of+Bul · · Score: 1

      Yeah, it should just be built into the client library. In the vast majority of cases, prepared statements are the way to go.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    59. Re:Oh man. by chez69 · · Score: 1

      No offense to you, but that is wrong. If you have a good client library prepared statements are faster and safer. A good client library will know how to escape things correctly for a the database it speaks to. It's not always as simple as adding \ to ' and ". If your client library sucks, well then your DB probably isn't that great either.

      Most mature coders realize that there are times when it's just better to use proven code, and this is one of them.

      On a related note, java makes using prepared statements easy (even easier when you use JDBCTempate in spring). You configure your datasource to cache the prepared statements and you pay the compile price once.

      JDBCTemplate in spring is just

      template.query("select count(*) from foo where user = ?",new Object[]{'bob'});

      --
      PHP is the solution of choice for relaying mysql errors to web users.
    60. Re:Oh man. by chez69 · · Score: 1

      So, it's better to have a stored procedure for every select you do?

      --
      PHP is the solution of choice for relaying mysql errors to web users.
    61. Re:Oh man. by chez69 · · Score: 1

      You know, I used to work on an application that had > 200 stored procedures and it was a pain in the ass. SQL is a crappy procedural language. SPs work really good for a set of problems, but using them for more then the simplest of business logic gets you a horrid pile of crud.

      --
      PHP is the solution of choice for relaying mysql errors to web users.
    62. Re:Oh man. by famebait · · Score: 1

      I was talking chiefly about stored procedures, and my issue was not with portability, but that most of the the application need to be shoehorned into how relational databases work, limiting the applicability of other lauded design principles.

      --
      sudo ergo sum
    63. Re:Oh man. by famebait · · Score: 1

      OK, bad wording on my part. But the view I'm opposing, that RDMSs are the be-all end-all of application design and the correct solution to every problem, is equally dumb and actually quite widespread.

      The RDBMS concept was a stroke of genius back when, I agree, and it is still a great solution for many things. But it has also become the lazy answer; the proverbial hammer. To the extent that people often sit down and design their tables before even thinking about user requirements. People forget - or even seem incapable of grasping - other models to evaluate. This hinders progress because there are a lot of things that simply don't go well with that kind of structure, but never get a chance because everyone takes the RDBM basis for granted.

      Sadly, there are few mature persistence products out there using other models, beacause the market isn't there.

      --
      sudo ergo sum
    64. Re:Oh man. by CastrTroy · · Score: 1

      Exactly. That's the point. People should be using PDO, with prepared statements, and I do this. But this Drizzle database wants to remove the ability to create prepared statements. Which means you won't be able to use PDO. Since it actually supports so few features, it'll probably have it's own little interface ala mysql_ so that you don't accidentally call unsupported functions and get "feature not supported" errors.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    65. Re:Oh man. by Bill,+Shooter+of+Bul · · Score: 1

      I agree it should be the client library that does the escaping. Just out of curiosity, how would the client library know the prepared statement was cached on the server(without sending it to be parsed)? Or is the caching per connection? Again,this would only make a difference in a highly loaded Database, where each round trip to the server is significant regardless of the processing involved.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    66. Re:Oh man. by cduffy · · Score: 1

      I generally agree with you that overuse of stored procedures is a Bad Thing... but (having worked with a rockstar-class DBA for the last four years or so) I've also seen some very effective uses made of them in a context where core business logic is still kept in the app proper; think code specifically for database maintenance, upgrades, restructuring and support. I advocate for cautious use, thus, rather than outright avoidance.

    67. Re:Oh man. by Crayon+Kid · · Score: 1

      Don't knock them down before you've tried them. CodeIgniter for instance provides an SQL query framework which is identical (from the usage point of view) to prepared statements. And it does an excellent job of filtering variables so that the views (in the MVC sense) get the variables filtered, while the controllers and models get them raw. So as long as you respect the MVC (ie. don't echo POST vars in the controller) that's XSS and SQL injection taken care of and you don't need prepared statements in the DB to accomplish it.

      --
      i ate crayons when i was a kid and now i have two braincells and the blue ones taste nicer
    68. Re:Oh man. by FishWithAHammer · · Score: 1

      Haven't used them? LOL. 'Kay, buddy.

      Sure, CodeIgniter has a query framework. Unfortunately, that involves using the CodeIgniter framework. I'll pass. (I like the MVC paradigm; I don't like the retarded way the publicly available frameworks handle it.)

      On the other hand, PDO is built into PHP (and abstracts away your database nicely, for what it's worth) and also takes advantage of the efficiency improvements of your database engine.

      (PDO also will Do The Right Thing when not on a database with support for prepared statements, but that doesn't make them any less vital for other tools, or even when you're writing SQL code directly.)

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    69. Re:Oh man. by lawpoop · · Score: 1

      First off, let me apologize for the fact that not everyone is born with knowledge of relational database features.

      Now, for the sake of being generally well-informed, what other reasons would one want to use prepared statements? What was the reason(s) that prepared statements were introduced in the first place?

      --
      Computers are useless. They can only give you answers.
      -- Pablo Picasso
  6. Re:Love the lack of Windows support ! by hostyle · · Score: 5, Funny

    Why would anyone in their right mind set up a Web/SQL platform using MS products?

    My name is Maximus Decimus^W^WBill Gates, ex-commander of the Armies of Redmond, General of the MS Legions, loyal servant to the true emperor, Steve Ballmer. Father of a murdered operating system. Husband of a bloated Office Productivity Suite. I shall have my vengeance, in this web or the next.

    --
    Caesar si viveret, ad remum dareris.
  7. So it's like SQLite... by Anonymous Coward · · Score: 5, Funny

    ...reinvented, but with security flaws. Awesome!

    1. Re:So it's like SQLite... by spud603 · · Score: 1

      well, no. having not read tfa, it seems like drizzle is going for concurrency, which was never sqlite's strong point.

  8. Removing Query Cache? by maz2331 · · Score: 2, Insightful

    Uh, doesn't removing the query cache run counter to the goals of making it fast?

    1. Re:Removing Query Cache? by Foofoobar · · Score: 2, Informative

      Well yes and no. I have always told people never to use query cache except when they absolutely need it as it can quickly become overused. But it is extremely useful for small amounts of data that don't change often but get called ALOT! And without it, you are correct, it is definitely something that will be sorely missed by people who know what they are doing.

      --
      This is my sig. There are many like it but this one is mine.
    2. Re:Removing Query Cache? by YeeHaW_Jelte · · Score: 1

      How exactly do you overuse a query cache? I mean, the more use of the cache, the better, no?

      Query caches on my machines ( with an approximate read:write ratio of 20:1 ) get hit about 88% of the time. That's a pretty major speed enhancement, I can tell you that, coming from 3.23 only a few years ago.

      --

      ---
      "The chances of a demonic possession spreading are remote -- relax."
    3. Re:Removing Query Cache? by maz2331 · · Score: 1

      I agree on most of the advice you give, especially in light of the major performance gains that can be realized by writing smarter queries and properly indexing the fields used often in WHERE clauses. With well-written code, properly indexed tables, and good queries, the cache can be unnecessary.

      That said, the cache is still quite helpful if you do a lot of traffic that tends to hit the same datasets repeatedly. Blogs, news sites, and "informational" websites come to mind.

      For environments that are "write heavy" compared to reads, the cache is of limited utility or even counterproductive, and watching the queries, table structure, and code like a hawk are required.

      In some cases the only way out is setting up a real db cluster. But that should be a last resort, as just throwing hardware at a pig of an app is a waste of money compared to optimizing the database, queries, and code.

      The most frustrating situation is when we're stuck with "legacy" setups running some off-the-shelf app and have little control over the access patterns and structure, and no ability to change the app. In those cases, a cache really can help.

      I guess that's where the full-blown version will be useful.

      All the possible tradeoffs can make your head explode.

    4. Re:Removing Query Cache? by Foofoobar · · Score: 1

      Well query cache is limited in size. You set the limit in you my.cnf. The result set from your queries are cached in memory. Now if you are using it for large result sets, that cache is going to max out fast. And as a result, any other queries that are cached will overwrite it thus making that cache pointless. You can increase the size of your cache but it then starts eating into the memory of of things like your buffers.

      This is why I always say just use it for small return sets that usually never change. It guarantees you won't max it out and queries won't get over written and you won't have to keep readjusting the query cache size in your my.cnf.

      --
      This is my sig. There are many like it but this one is mine.
    5. Re:Removing Query Cache? by Foofoobar · · Score: 1

      Exactly. Yeah I couldn't agree more. The query cache is really useful in those instances. I'd even say in those instances that you might even want to increase the cache size a little if you are caching news (though the most COMMONLY hit news will be the most likely contained in the cache).

      I can't say I will be using this trimmed down version anytime soon. If I need something like this, I'll use sqlite.

      --
      This is my sig. There are many like it but this one is mine.
    6. Re:Removing Query Cache? by jadavis · · Score: 1

      Query caches on my machines ( with an approximate read:write ratio of 20:1 ) get hit about 88% of the time.

      This means approximately 100% of your read queries are exactly the same query.

      There are all kinds of ways to solve that kind of problem by not issuing the same query to the database constantly. You can use memcached, or you can auto-generate the ultimate static content that you're going to present to the user.

      It's fine if you want to use a query cache, but the situations in which it is actually useful are very narrow, and even in those situations, there are good alternatives.

      Block level caches (by the DBMS or the OS) are more generally useful, because they are never out of date, and can be useful for a wider range of queries. Of course you still have to go through the parser, etc, to make use of the block level cache, and there are situations where it's not as efficient as caching the result set (like when aggregating huge amounts of data that can't all be held in memory at once).

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
  9. Who is the Drizzle? by rufus+t+firefly · · Score: 1

    It just begs the question, Who is the Drizzle?

    --
    "He may look like an idiot, and talk like an idiot, but don't let that fool you. He really is an idiot." - Duck Soup
    1. Re:Who is the Drizzle? by Steauengeglase · · Score: 1

      Sad, I thought the same thing.

    2. Re:Who is the Drizzle? by Anonymous Coward · · Score: 0

      Yeah, who is that guy?

  10. An Eventual Mobile DB server by ehaggis · · Score: 1

    Would this be a candidate for a light DB server for a mobile device? Perhaps for address books, media catalogs, etc... Could it find a niche beyond the web? BTW, IOANADBE (I obviously am not a database expert). IAANAAE (I am also not an acronym expert)

    --
    One ring to bind them - should probably have more fiber and less rings in their diet.
    1. Re:An Eventual Mobile DB server by PhrostyMcByte · · Score: 2, Informative

      stuff like sqlite, berkeley db, and sql server compact edition already serve this purpose well. an actual server on a mobile device would be far too expensive.

    2. Re:An Eventual Mobile DB server by antifoidulus · · Score: 1

      iPhone ships with SQLlite already, and I'm sure other devices ship with db servers too.

    3. Re:An Eventual Mobile DB server by CastrTroy · · Score: 1

      Access .mdb files FTW!!!

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    4. Re:An Eventual Mobile DB server by Drathos · · Score: 1

      Oh.
      Dear.
      God.

      I've done mobile development in the past and we were forced to use 'Jet DB' (MS Access) files on the devices. Never again. If you want SQL access to your data, go with something like SQLite. If you're simply looking for keyed data storage/access, go with Berkeley DB. Jet DB is heavier than BDB and less capable than SQLite.

      --
      End of line..
  11. sqlite? by Anonymous Coward · · Score: 0

    So this is basically a client/server version of sqlite with better concurrency, minus a bunch of useful features like views?

    1. Re:SQLite? by X0563511 · · Score: 1

      Seems like Drizzle will fit between SQLite and MySQL - small and lightweight, but still using a DBMS.

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    2. Re:SQLite? by Firehed · · Score: 1

      Sounds more like a really gimped SQLite (which despite being flat-file based, actually supports lots of useful SQL features like views and transactions (I'm not sure about stored procs).

      --
      How are sites slashdotted when nobody reads TFAs?
    3. Re:SQLite? by Doctor+Crumb · · Score: 1

      Have you ever actually tried using SQLite for any level of concurrency? It works great for single-user applications, but has massive locking failures if you try using it for a website that actually gets used. I tried it once, then switched the project to mysql.

    4. Re:SQLite? by Anonymous Coward · · Score: 0

      Queries in SQLite run a lot slower than in MySQL.

    5. Re:SQLite? by paziek · · Score: 1

      It might have locking failures even when one user is using it. And you have to workaround it by fetchingAll data from query results into variable, with is not very RAM friendly.
      Still, its a good database (as a default one) for desktop apps - and thats were I use it - and probably most people do.

    6. Re:SQLite? by Eil · · Score: 1

      SQLite is meant to be an embedded application database that just happens to speak SQL. It's not a general-purpose database engine. You might use it, for example, to store contacts in the addressbook of an email client you are developing. Although SQLite can be handy for prototyping web applications, you wouldn't deploy it on a production website for a number of reasons, the biggest being that it can't handle concurrent writes.

      Drizzle, it is expected, will be specifically designed for use with web apps, minus the enterprise features that web applications rarely (or never) use.

  12. powered by... by Anoraknid+the+Sartor · · Score: 2, Insightful

    LADP? DALP? PADL? (Up shit creek without, presumably...)

    Why "Drizzle"? What a damp, depressing, generally wet name....

    --
    Find Japanese addresses in English on Google Maps Japan: http://diddlefinger.com/
  13. SQLite? by Anonymous Coward · · Score: 4, Interesting

    I always thought SQLite did a perfect job of filling in the space between the need for a full blown database and the weight it adds to the server setup. SQLite, as its name suggests, is very lightweight. Where exactly will Drizzle fit in?

  14. Okay, but what's different? by PhrostyMcByte · · Score: 1

    Is this just a stripped down MySQL? Or is it a fork that actually bring some interesting new scalability features to the table that are otherwise unimplementable in the current MySQL architecture?

    Maybe it's my pre-caffeine morning stupor, but the site seems void of any real details.

  15. Drizzle? by gparent · · Score: 0, Redundant

    For shizzle?

  16. Sounds like a good idea... by harshmanrob · · Score: 0

    ...perhaps I should considering using a database on my website. MySQL always was too fat.

    FUCK SLASHDOT!

  17. Re:Great, even more poor data relationships by jackb_guppy · · Score: 1

    Throw out Triggers???

    Junk-in and Junk-out with bloat code on top trying to validate and synchronize very thing.

    I guess it the '70s all over again.

  18. Giant leap toward the MySQL dream by kahei · · Score: 4, Funny

    Finally, with even views removed, MySQL can move toward its original dream of having *no* features at all -- *no* separation of interface from implementation, *no* referential integrity, *no* bundling of logic with data to ensure data integrity, *no nothing*!

    After a period in the wilderness, during which versions 4 and 5 added hated so-called 'features' and 'functionality', we are now finally returning home.

    I look forward to Drizzle version 2 in which pesky 'tables', 'columns' and most of all the fancy and pointless 'select' statement are removed.

    Seriously, no *views*?

    So, what we actually have here is a thin wrapper around InnoDB. If Sun have turned MySQL primarily into a quick-start wrapper for their own product, that's actually pretty clever.

    --
    Whence? Hence. Whither? Thither.
    1. Re:Giant leap toward the MySQL dream by larry+bagina · · Score: 3, Informative

      InnoDB (and BDB for that matter) is owned by Oracle.

      --
      Do you even lift?

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

    2. Re:Giant leap toward the MySQL dream by saigon_from_europe · · Score: 1

      I would say that this is a turn back to original "10% of features that 90% of users really use".

      Is there any point of having all these features implemented when you know that most of your userbase will be never actually use it? MySQL was small, easy to use and fast. I agree that it would be nice every web app to use advanced features that would probably give us less pain with SQL insertions and similar, but let's face it - 90% of web developers have to concentrate on GUI and middle tier (if it exist at all), they don't have time to spend on DB.

      Even more, even if you have clear multitier architecture, it usually means that you have an explicit ORM, which means that you work easily with objects and that you don't have to bother too much with the DB. As a result, most of the logic will go to the middle tier (business logic) not to the DB, since you actually don't see the DB any more.

      --
      No sig today.
    3. Re:Giant leap toward the MySQL dream by DavidTC · · Score: 1

      It's not so much as '90% of the users', it's '90% of the applications'.

      I am astonished by all the people here talking about stored procedures and views and whatnot. I always assumed, and I suspect I'm correct, that something like 70% of MySQL use was by people running Joomla and Drupal and Gallery2 and Serendipity and all the other different pre-packaged software build for LAMP.

      All of those would work fine on Drizzle. None of them use any of the features that will be removed. Maybe a few of them have an option to use prepared statements, but that's going to be in a module so can be enabled.

      Another 20% of MySQL use is by people who've set it up to hold a mail database or written small custom web pages or various misc uses that don't require any of those features either.

      Only about 10% seems to be actual heavy-duty custom applications that use those features. Most people, when actually faced with a real development project like that, go with some other database.

      If there's an easy upgrade path provided from MySQL 5, if it can work with existing mysql applications and existing php code, the webservers I admin will be switching over.

      --
      If corporations are people, aren't stockholders guilty of slavery?
  19. Massive Concurrency? by mortonda · · Score: 1

    How is "massive concurrency" and the lack of these features compatible?

    What I want is massive concurrency in a full scale, disk based, highly available, highly scalable cluster. Can we get that right, please?

  20. Re:Love the lack of Windows support ! by kahei · · Score: 1

    It's the lack of Windows support that *particularly* suggests that this is all Sun's strategy for spreading InnoDB... ...with a couple of MySQL devs along for the ride either because they have no choice or because Sun stroked their egos.

    Clever Sun. Now all they need is a server platform :D

    --
    Whence? Hence. Whither? Thither.
  21. Ob by Hognoxious · · Score: 1

    By slimmed down it means they've taken tranasactions and all the referential integrity checks out?

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    1. Re:Ob by larry+bagina · · Score: 1

      They were never there to begin with :-) Now, they're advertising it as a feature.

      --
      Do you even lift?

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

    2. Re:Ob by maz2331 · · Score: 1

      A lot of web apps don't use those anyway, and just tend to store one row in a table. And if the data becomes unreadable, nobody cares since it's not really important data in the first place.

      For business critical apps, that should scare the bejezzus out of the owner and coders.

  22. Shnizzle by kjorn · · Score: 2, Funny

    You shnizzle dude, wizzle on my dizzle, like totally gansta. I is gunna pop a cap up your arse.

    Hey, I'm English and this is how all Americans talk on the telly ;-)

    1. Re:Shnizzle by maxume · · Score: 5, Funny

      That's not how that English guy on House talks.

      --
      Nerd rage is the funniest rage.
    2. Re:Shnizzle by captainjaroslav · · Score: 4, Funny

      Dude, we would never say "arse."

      --
      I'm just sayin'.
    3. Re:Shnizzle by kjorn · · Score: 1

      Gentlemen, answer me this, why a hat up an arse anyway?

      Captain: yeah, it's called irony. I get the lingo wrong thus providing self depreciating humour ;-)

    4. Re:Shnizzle by gstoddart · · Score: 1

      You shnizzle dude, wizzle on my dizzle, like totally gansta. I is gunna pop a cap up your arse.

      Hey, I'm English and this is how all Americans talk on the telly ;-)

      No, Ali G is played by a Brit. ;-)

      Cheers

      --
      Lost at C:>. Found at C.
    5. Re:Shnizzle by Rary · · Score: 4, Funny

      Your humour depreciates? I guess I'll have to check this thread out in a year or two to see if it's still funny.

      --

      "You cannot simultaneously prevent and prepare for war." -- Albert Einstein

    6. Re:Shnizzle by Gilmoure · · Score: 1

      Maybe they think that shoving a hat up some one's butt will be a type of forced irony? Kinda' like hanging shoes over their ears? I really don't understand people on this planet.

      --
      I drank what? -- Socrates
    7. Re:Shnizzle by Tim+C · · Score: 3, Informative

      No, that's "self-deprecation". "Depreciation" is when something loses value.

    8. Re:Shnizzle by ruiner13 · · Score: 5, Funny

      Go have a fag while sitting on the bonnet of a Bobbie car, wanker.

      --

      today is spelling optional day.

    9. Re:Shnizzle by kjorn · · Score: 0

      Wikipedia: Self-depreciation (also self-deprecation)

    10. Re:Shnizzle by Happosai · · Score: 1

      Close...but no one calls them 'Bobbie cars'...

    11. Re:Shnizzle by dave420 · · Score: 1

      As well as "police cars", we also call them "panda cars". "Jam Sandwiches" would also have been acceptable, although somewhat outdated. "Bobbie cars", while funny, isn't that accurate :)

    12. Re:Shnizzle by yukk · · Score: 1

      Only for Americans. English-depreciation: (see American English) also, English lite.

      --
      The trouble with the rat race is that even if you win, you're still a rat." Lily Tomlin
    13. Re:Shnizzle by Anonymous Coward · · Score: 0

      It's actually interesting. The American usage of the word "ass" has the same etymology as "arse". We only spell and pronounce it "ass" in imitation of the fact that English accents typically don't pronounce the letter R if it's not followed by a non-silent vowel.* Of course we also pronounce the vowel as [æ] which is unlike any English people I've heard, but you get the idea.

      (* A few accents in the US do this too, like in NYC and Boston.)

    14. Re:Shnizzle by Anonymous Coward · · Score: 0

      Uh. The fact that Wikipedia says "depreciation" is original research. It was changed by some nameless user. No one calls it that unless they don't know how to spell or pronounce "deprecating".

    15. Re:Shnizzle by moosesocks · · Score: 1

      Given the selection of American shows that BBC, Channel 4, and iTV choose to syndicate, that really comes at no surprise.

      However, because of that, I'm going to choose to judge your culture based upon the British shows that don't get syndicated. Hollyoaks, Skins, Eastenders.....

      For some reason, American TV networks seem to syndicate the best BBC series* while you lads manage to only pick up the dregs of American television.

      *There's one exception to this. I saw part of the American adaptation of Planet Earth last week. David Attenborough's voice had been dubbed over. Shameful.

      --
      -- If you try to fail and succeed, which have you done? - Uli's moose
    16. Re:Shnizzle by JerkBoB · · Score: 3, Informative

      google it fool

      Just admit it... You screwed up. Irrespective of the fact that there is a redirection from "self-depreciation" to "self-deprecation" in wikipedia, they are not synonyms.

      Deprecate: v, play down, belittle, disparage, etc.

      Depreciate: v, to lower in estimation or esteem, to lower the price or value of, etc.

      They are similar words. They both share the "de-" prefix, meaning "away, off, reverse, remove". After that, they have nothing in common, other than a similar spelling.

      The etymology of deprecate comes from the latin de- precari, "to pray against", which somehow morphed into the current usage of "to belittle", or "to make obsolete".

      The etymology of depreciate comes from the latin de- pretium, "lowered price".

      Your insistence that wikipedia is authoritative on this somehow just makes you look even more silly. Especially on /., where amateur linguists and grammar nazis roam unfettered. :P

      --
      A host is a host from coast to coast...
      Unless it's down, or slow, or fails to POST!
    17. Re:Shnizzle by JerkBoB · · Score: 2, Informative

      UGH! How is this moderated "informative"?

      Is there a "mis-informative" mod? Some looser [sic] added a redirection from "self-depreciation" to "self-deprecation". They're not the same word, damn it!

      --
      A host is a host from coast to coast...
      Unless it's down, or slow, or fails to POST!
    18. Re:Shnizzle by Jesus_666 · · Score: 4, Funny

      Come on, admit it. Everyone in the UK drives a Bobbycar.

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
    19. Re:Shnizzle by Randle_Revar · · Score: 1

      *There's one exception to this. I saw part of the American adaptation of Planet Earth last week. David Attenborough's voice had been dubbed over. Shameful.

      I know. I mean really, who thought it would be a good idea to replace David Attenborough with Sigourney Weaver?

    20. Re:Shnizzle by AioKits · · Score: 1

      I have to ask... Panda cars I can understand (and have heard in use), but Jam Sandwiches?

      --
      "Quote me as saying I was mis-quoted." -Groucho Marx
    21. Re:Shnizzle by PHPfanboy · · Score: 2, Funny

      LOL, the term is "self-defecating". Moran.

      --
      29 mpg. YMMV.
    22. Re:Shnizzle by Anonymous Coward · · Score: 0

      You've not listened to Ian Dury and the Blockheads' "Spasticus Autisticus". I think us Brits have to admit that we are probably to blame for the widespread failure of the English language.

    23. Re:Shnizzle by Anonymous Coward · · Score: 0

      Hugh Laurie is Welsh.

    24. Re:Shnizzle by centuren · · Score: 1

      Deprecate: v, play down, belittle, disparage, etc.

      Depreciate: v, to lower in estimation or esteem, to lower the price or value of, etc.

      As an aside, I don't think Miriam-Webster is ever a good dictionary to cite when the point of contention is American English vs. the Queen's English. Miriam-Webster is a derivative of Noah Webster's works, the American lexicographer who is specifically known for pushing an American way of spelling words.

      They are similar words. They both share the "de-" prefix, meaning "away, off, reverse, remove". After that, they have nothing in common, other than a similar spelling.

      The etymology of deprecate comes from the latin de- precari, "to pray against", which somehow morphed into the current usage of "to belittle", or "to make obsolete".

      The etymology of depreciate comes from the latin de- pretium, "lowered price".

      Back on point, you argue that "to pray against" somehow morphed into "to belittle", and so I suppose the claim is that "lowered price" did not.

      Another online dictionary which pulls definitions from many sources, lists "to belittle" many times in regards to uses of depreciate. Deprecate itself also shows up.

      Furthermore, the definition of deprecate has depreciate as #3: "to depreciate; belittle".

      If you're American, it's a bit silly to argue with a Brit or really anyone in the Commonwealth about a specific word's usage, spelling, or pronunciation, since all can differ, but still be correct.

    25. Re:Shnizzle by Brain+Damaged+Bogan · · Score: 1

      the kind of fag you smoke, or the kind that gives it to you somewhere very uncomfortable (hint: not the back of a volkswagen).

      --
      -- Sex is the antonym of pringles. Once you pop it's time to stop.
    26. Re:Shnizzle by JerkBoB · · Score: 1

      If you're American, it's a bit silly to argue with a Brit or really anyone in the Commonwealth about a specific word's usage, spelling, or pronunciation, since all can differ, but still be correct.

      Interesting. Well, I'm happy to learn something new. In fact, it seems that the American usage of "deprecate" is a corruption... Hence my confusion about how the original latin meaning seemed to have been lost. That should have been a flag for me, but I've never encountered "self-depreciate" before.

      I consider myself pretty well-read, and sensitive to the various cultural permutations of spellings and usages. However, I (incorrectly) assumed that the OP's use of "self-depreciate" was just an inadvertent malapropism, rather than a cultural artifact.

      Even though I think it'd be nearly impossible for me to make the mental switch, "self-depreciate" certainly does seem to make a bit more sense, logically. Thanks for pointing that out.

      --
      A host is a host from coast to coast...
      Unless it's down, or slow, or fails to POST!
    27. Re:Shnizzle by Anonymous Coward · · Score: 0

      And defecation is...well you know...

    28. Re:Shnizzle by Samah · · Score: 1

      Tally ho, slackbladder!

      --
      Homonyms are fun!
      You're driving your car, but they're riding their bikes there.
    29. Re:Shnizzle by the_arrow · · Score: 1

      *There's one exception to this. I saw part of the American adaptation of Planet Earth last week. David Attenborough's voice had been dubbed over. Shameful.

      When I bought my copy of Mad Max, I laughed out loud when I noticed that the default speach-soundtrack was dubbed American. I quickly switched over to the original Australian soundtrack.

      --
      / The Arrow
      "How lovely you are. So lovely in my straightjacket..." - Nny
    30. Re:Shnizzle by Anonymous Coward · · Score: 0

      When I bought my copy of Mad Max, I laughed out loud when I noticed that the default speach-soundtrack was dubbed American. I quickly switched over to the original Australian soundtrack.

      Tell me about it. I saw Apocalypto and Passion of the Christ, both subtitled for American audiences. (Although I must admit I found the thick Australian accents hard to follow at times.)

    31. Re:Shnizzle by maxume · · Score: 1

      Googling for "self-depreciating OED" points to a whole bunch of stuff that is better than wikipedia (in the sense that it is more certain that it wasn't just randomly edited by someone, not necessarily in the sense that it provides more information). Google understands what "OED" means, so it is often a useful strategy.

      --
      Nerd rage is the funniest rage.
    32. Re:Shnizzle by Mister+Whirly · · Score: 1

      That's like claiming that US Southerners are not American. Welsh is still English.

      --
      "But this one goes to 11!"
    33. Re:Shnizzle by Richard_at_work · · Score: 1

      Uhm, no - England and Wales are totally different countries, and both are seperate members of Great Britain, and by extension the United Kingdom.

    34. Re:Shnizzle by Mister+Whirly · · Score: 1

      My bad. I meant to say "Welsh is still British", not English.

      --
      "But this one goes to 11!"
  23. For Crying Out Loud by hardburn · · Score: 4, Insightful

    Proof that when MySQL originally added those materials, they still didn't know why they were important. Some of these aren't even going to slow you down much. Prepared statements can speed you up in some cases.

    In this state, it occupies a spot that SQLite does just fine.

    --
    Not a typewriter
    1. Re:For Crying Out Loud by jd · · Score: 1

      Maybe, maybe not. SQLite doesn't handle parallelism well, Drizzle is supposed to. Drizzle is supposed to not remove most of these features but layer them correctly, presumably using the old Unix notion of shells-on-top-of-shells. If so, then what you will end up with will do exactly the same stuff, but by different paths through the code, such that there is a lower impact on high speed operations.

      Personally, I don't know what the fuss is. Ever since MySQL started veering towards proprietary attitudes, I've been using PostgreSQL and Ingres. (Ingres is still maintained and has become fully GPL.) These databases are generally better for heavy-duty lifting, although they're obviously not designed for very fast lightweight work. I am not completely convinced you want a SQL database for the real fast work, anyway, where you are typically dealing with hashed index markers and data blobs, but are not dealing with multiple views of the same data.

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  24. Removing prepared statements by rasherbuyer · · Score: 1

    This is something which can only further promote bad programming practices.

    But then I'd never use MySQL anyway.

  25. Removing all the useful things... by nvivo · · Score: 5, Insightful

    a database project aimed at powering websites with massive concurrency as well as trimming superfluous functionality from MySQL ... Akers has already selected particular functionality for removal: modes, views, triggers, prepared statements, stored procedures, query cache, data conversion inserts, access control lists and some data types."

    I have been developing for the web during the past years and that's why MySQL has been off my list for serious development for some time in favor of Postgresql. It took about a decade to implement basic features like views and foreign keys that even Access 2.0 had in 93. Even sqlite has views for god sake!

    Today, even for the most simple projects I cannot think about not using views, stored procedures, and triggers. Not because there is no way to do the job, but because they are important for organization, security, data integrity, etc.

    It is like they have no idea that web sites are getting more complicated, and more and more data is involved everyday. I can't think of someone creating a big website with massive concurrency using this. Sounds more like an alternative to Sqlite for very simple tasks.

    1. Re:Removing all the useful things... by Anonymous Coward · · Score: 0

      You cleverly omitted an (I think) important sentence.

      Drizzle will have a micro-kernel architecture with code being removed from the Drizzle core and moved through interfaces into modules.

      Maybe I misread this, but it sounds the features everyone is up in arms about aren't really being removed, but are being modularized. The core application should run faster and other features will load via modules.

    2. Re:Removing all the useful things... by nvivo · · Score: 1

      You cleverly omitted an (I think) important sentence.

      Drizzle will have a micro-kernel architecture with code being removed from the Drizzle core and moved through interfaces into modules.

      Maybe I misread this, but it sounds the features everyone is up in arms about aren't really being removed, but are being modularized. The core application should run faster and other features will load via modules.

      WTF??? What kind of slashdotter with a sane mind reads and understands TFA before starts bashing something??

      Security!!! Get this guy outta here!

    3. Re:Removing all the useful things... by Anonymous Coward · · Score: 0

      I think views, stored procedures and triggers are all overrated. I want a database which gives a better ORM, and use of those three features detracts from that.

  26. Re:Love the lack of Windows support ! by MBGMorden · · Score: 4, Interesting

    Why would anyone in their right mind set up a Web/SQL platform using MS products?

    You'd be surprised. Our web team recently got on an "I love MS!" kick for some reason. They'd been on Linux for years but a lot of the new/shinny buzzword stuff that they wished to install wanted Active Directory, IIS, and other non-sense. Because the Linux setup didn't lend itself well to installing all that proprietary stuff, and because they convinced themselves (somehow) that the most popular software is always the most insecure anyways (so Apache being the most popular webserver is the most insecure), they switched to Windows + IIS (+MySQL, but SQL Server is being pushed hard) to host the website.

    Now I've even had pressure to convert my servers from Linux to Windows where possible to "standardize".

    On a more on-topic note though, I'm not sure where this leaves MySQL itself. As a "real" database, it naturally can't compare to SQL Server or Oracle, but even competing in the free segment, PostgreSQL blows it away. Traditionally MySQL was just the toy database for non-critical stuff that you wanted speed out of (and little else). If Drizzle accomplishes that, then I don't see a real place for the mainline MySQL anymore. Drizzle if you want speed, PostgreSQL if you want features/stability, and Oracle if you gots money to spend.

    --
    "People who think they know everything are very annoying to those of us who do."-Mark Twain
  27. Re:Love the lack of Windows support ! by nvivo · · Score: 5, Insightful

    Why would anyone in their right mind set up a Web/SQL platform using MS products?

    Because it is reliable, easy to develop, implement and support?

  28. suggestion to make a great idea even better by psbrogna · · Score: 2, Funny

    Now if we could just get a hiearchical data model and associated standards based query language at the same time (XML, xquery, xupdate, etc) it truly would be Christmas come early. The potential of a FOSS, production ready NXDB is intoxicating (Exist-db, Monet, etc. are sooo close).

    1. Re:suggestion to make a great idea even better by jadavis · · Score: 1

      Now if we could just get a hiearchical data model and associated standards based query language at the same time

      I really hope you're joking. Hierarchical databases were the reason people needed to invent RDBMSs. They haven't made it outside of the filesystem world for a reason.

      Graph theory just doesn't provide many useful operations for data management. It tends to be highly asymmetrical, for one thing. Consider an iPhone as a product in a database: do you store it as "/Apple/Hardware/iPhone" or "/Hardware/Apple/iPhone"? Where do you look for it? Is there also a separate "phones" node somewhere in the graph (or hierarchy)? Where does the "software" node go?

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
  29. Re:Great, even more poor data relationships by bingo_cannon · · Score: 1

    That's people writing triggers on every damn table!

  30. MySQL Vapor by Nycran · · Score: 1

    I think "Vapor" would have been a better name. This is even lighter than SQLite which incidently does have views, triggers and prepared statements. I really fail to see the point or the market, unless they are aiming at the embedded sector... but the article says "powering websites".. FAIL!

    1. Re:MySQL Vapor by FlyingBishop · · Score: 1

      Embedded servers are where it's at. I was actually thinking about using an embedded server in my cell phone to blog about the journey through the Amazon I'm going on next month. This might be just the ticket I need.

      Now I just need to figure out how to get a reasonable amount of bandwidth in the middle of South America.

    2. Re:MySQL Vapor by Nycran · · Score: 1

      When you say you want to have an embedded server, do you mean that you're planning on running a public web server from your phone?

    3. Re:MySQL Vapor by FlyingBishop · · Score: 1

      Yes, yes I am.

  31. PostreSQL by Anonymous Coward · · Score: 0

    Why not just use PostgreSQL and get away from the MySQL mess entirely?

  32. Removing query cache ... by YeeHaW_Jelte · · Score: 1

    ... in a server meant for high concurrency use ... isn't that just shooting yourself in the foot or what?

    --

    ---
    "The chances of a demonic possession spreading are remote -- relax."
    1. Re:Removing query cache ... by nonsequitor · · Score: 1

      Not if the data being accessed does not have race conditions, ie not being modified.

  33. mysql 3 by Anonymous Coward · · Score: 0

    So basically they are going to re-release MySQL 3 under a new name.

  34. LP by Rinisari · · Score: 1

    Hooray for Launchpad!

    1. Re:LP by Jellybob · · Score: 1

      What?

      I may be replying to a troll, who knows, but I'm interested to know why you're cheering on Launchpad in a thread about MySQL.

  35. Re:Love the lack of Windows support ! by antifoidulus · · Score: 1, Insightful

    Dude, I want what you are smoking!

    Seriously? Windows? Reliable? Easy to develop for(Nothing without a decent command line is "easy to develop for in my book) for? Easy to implement? Windows management tools are a joke compared to mac, and Linux has tons of really good tools that kick the crap out of the amalgam of XP tools that are functionally useless, confusing as hell, and ugly as sin to boot. Easy to support? Have you ever tried to repair a registry? Not fun.

  36. Why not use use sqlite then? by drinkypoo · · Score: 3, Insightful

    If you're going to pull out all the functionality, why not just use sqlite? I personally use an InnoDB setup so I can use Drupal's "related content" module so I won't be switching, but the next drupal is reputed to use sqlite as a backend and if I weren't using this feature I'd go to that. Simpler, lighter. Always present with PHP5.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    1. Re:Why not use use sqlite then? by Bill,+Shooter+of+Bul · · Score: 1

      Uhmm Innodb is going to be the default. There is a gap in databases that isn't being filled very well with the available database offerings. Drizzle is filing that need. If you don't know what that niche is, I understand its a bit confusing, but the people doing it know what they are doing and why. Think massive concurrency.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
  37. Re:Love the lack of Windows support ! by ericlondaits · · Score: 1

    I normally develop on a WAMP stack (WAMP = Windows + Apache + MySQL + PHP) specially built for developers that can be set up very quickly through an installer. After the site is done I can move it almost seamlessly to a LAMP stack. I also have a VMWare with Ubuntu set up for any cases in which I need an actual LAMP... but I hardly ever need it... which is good, since it hogs much more resources (quite a chunk of RAM) and is slower to boot up. So... Drizzle not being supported under windows sucks.

    --
    As a Slashdot discussion grows longer, the probability of an analogy involving cars approaches one.
  38. Re:Love the lack of Windows support ! by CastrTroy · · Score: 3, Interesting

    The thing is, is that not everybody needs a full ACID compliant transactional database. All that stuff tends to slow down the whole database. It would be much nicer for many people to just have a simple non-transactional database. Think about how many web apps are out there that don't use transactions, and have not need for them. Many applications would benefit from increased speed over increased transactional capabilities.

    On another note, what's with the lack of hosting services providing PostgreSQL? I would love to use it, at least for some projects, but the fact that it's not available on many hosts makes it quite a hard decision to make. I don't want to pick up another hosting provider, or switch over all my stuff just to use a different database.

    --

    Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
  39. Re:Love the lack of Windows support ! by Ngarrang · · Score: 2, Insightful

    Get on board MS! Why would anyone in their right mind set up a Web/SQL platform using MS products?

    Because, despite your prejudice, there is a business case for it. And business wins over OS zealotry. Besides, it is open source. Someone who is able to exercise common sense will simply port it to Windows.

    And stop telling me what platform I should use for my apps, darn it! I don't see your time and money here in front of me doing the work, so stfu and just give me the tools that will get the job done.

    OS Zealots are worse than spammers.

    --
    Bearded Dragon
  40. Me too by Mateo_LeFou · · Score: 1

    Seriously, when I saw that views were likely to be cut I was going to ignore this product. But a line like that gets me onboard.

    Nobody ever got fired for buying Microsoft, but that's only 'cause I don't make hiring decisions. Yet.

    --
    My turnips listen for the soft cry of your love
  41. "Assembler" Database... by maz2331 · · Score: 2, Insightful

    Yep - it sounds like the Assembly Language version of a DB, built for massive speed but requiring very careful programming to avoid crashes.

    Sometimes that's just what you need. Sometimes it's exactly the worst possible approach.

    I say let the problem requirements decide which to use.

    1. Re:"Assembler" Database... by Bill,+Shooter+of+Bul · · Score: 1

      That's exactly what I was thinking. I'm glad someone made that point. Its like everyone who blasts Mysql for not having features is advocating that everyone should always use ruby for every job. Drizzle is filing a gap that hasn't quite been filled by anything else. Mysql itself comes the closest.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
  42. Old School! by jrwilk01 · · Score: 2, Insightful

    I used something like this back in the late '90s. It was called "MySQL 3" and made by a Swedish company named "TcX AB."

    What is old is new again.

  43. All for it by spinkham · · Score: 5, Interesting

    From my point of view, this is MySQL finally embracing their target market.
    These features are great and important, but if you're doing small scale web programming through a framework that uses an ORM, or just very simple SQL, why not slim the program down?
    If you want real database features, you probably shouldn't be using MySQL in the first place in my opinion.

    --
    Blessed are the pessimists, for they have made backups.
  44. People don't understand rational databases. by jellomizer · · Score: 4, Insightful

    This shows a big problem.
    Most people don't understand rational databases. As most colleges CS programs don't even touch SQL except for perhaps as an elective. There is a huge knowledge and a lot of miss use of SQL. They treat JOINs and Views as advanced features while they are actually still very quite basic features. Because of this a lot of people use SQL as a replacement for reading a flat file poorly designed with duplicated data, no indexing etc... etc... etc...
    These features that seem to make it seem slow actually improve speed, for a lot of cases. eg. a View that takes 1 second to load could take 2 seconds total for the application to select 5 or 6 different tables then try to use logic to put the information together as the application say php or python are a higher level language then a C/c++ written database server. Also there is the additional coding time as it is much easier to reuse or extend on views then to modify code. So yes using a complex view or stored procedure will slow down the database server however if it doesn't slow down the database server it will often end up slowing down the web server instead. being the Web Server is end user facing its speed espectially for usually fast to load simple pages that are use most often are more important then waiting the little extra time for the database to get back from your complex or large request.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    1. Re:People don't understand rational databases. by Anonymous Coward · · Score: 0

      You're right, I don't understand what a rational database is, either.

    2. Re:People don't understand rational databases. by Legion_SB · · Score: 1

      Most CS programs that fail to cover "rational" databases do, however, cover relational databases like MySQL.

      --
      'a';DROP TABLE users; SELECT * FROM DATA WHERE name LIKE '%'... if you're reading this, it didn't work.
    3. Re:People don't understand rational databases. by encoderer · · Score: 1

      It makes sense.

      If you don't normalize, you don't need views OR joins.

      You know what I call that? Efficiency. Yep. Efficiency.

    4. Re:People don't understand rational databases. by Anonymous Coward · · Score: 0

      Is storing data in several places instead of one efficient? No.

      Is having corruption in your data and having to spend time correcting it because the data got updated in one of the places it's stored, but not in the other three places efficient? No.

    5. Re:People don't understand rational databases. by Anonymous Coward · · Score: 0

      being the Web Server is end user facing its speed espectially for usually fast to load simple pages that are use most often are more important then waiting the little extra time for the database to get back from your complex or large request.

      I don't agree with this particular point. In most large projects, the DB is nearly always going to be the bottleneck. It's extremely easy to scale on another web server, while it is not so easy to start splitting data across multiple DB masters. Once you max out the capacity of your DB master(s), you're pretty much screwed. Your heaviest work should be done in the application layer, not the DB.

    6. Re:People don't understand rational databases. by Bill,+Shooter+of+Bul · · Score: 1

      A thousand times, yes. The DB is always the bottleneck of a large data intensive application.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    7. Re:People don't understand rational databases. by chez69 · · Score: 1

      When you structure your code correctly and use transactions, you won't get the crap strewn all over.

      De-normalization can really give you a speed boost when your doing 10's of millions of inserts a day with tables > 80 - 100 million rows in them, that need millisecond response time for updates and queries. Joins are a killer once your DB gets huge, even if the data is partitioned.

      --
      PHP is the solution of choice for relaying mysql errors to web users.
  45. Is this a joke? by Chineseyes · · Score: 1

    These people want to remove prepared statements and stored procedures? When they are probably one of the best ways to prevent sql injection??

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

    --A wise old fart named SC0RN
    1. Re:Is this a joke? by DigitalSorceress · · Score: 1

      This was my first thought as well... I understand that prepared statements and stored procedures are a bit more difficult for the beginner to wrap their head around than straight SQL. However, as far as I'm concerned, the thing that KEPT MySsl from being a serious database in the eyes of my employers and others were the lack of such fundamental "best practices".

      Sure, when I first started doing a lot of sql, I had some difficulty with joins, stored procedures, triggers, prepared statements, and transactions... but that was then. Now, they're important parts of my tool set. Sure, maybe I'll prototype something with a direct sql statement for ease of changing things around, but as soon as I have an idea of where I want to go, I go back and "do it right".

      I don't quite understand something else either. Even with more recent feature additions, MySql seems a lot faster for high-volume CRUD style web applications than MSSql and Oracle due to the lower connect/disconnect overhead (yes, yes, connection pools and other neato stuff can help with that, but I'm assuming we're talking about your average LAMP hack here, not some enterprise Java thingamee). Sure, by tossing out some of the "advanced" features, you might save a teeny bit of improvement, but it hardly seems worth the bother. Is MySQL really that bloated that it needs such a trimming?

      --

      The Digital Sorceress
    2. Re:Is this a joke? by AutopsyReport · · Score: 1

      It really doesn't matter; few people use MySQL for its prepared statements and stored procedures, even though they've been widely available and recommended for quite some time.

      --

      For he today that sheds his blood with me shall be my brother.

    3. Re:Is this a joke? by chez69 · · Score: 1

      why don't connection pools get more love around here? If you have any high volume site, you save quite a bit of CPU overhead by re-using the connection. Plus, your database doesn't take a dump when your site gets slammed.

      I realize shitty j2ee apps may have something to do with the bad rep, but a well managed connection pool saves you so much trouble when your application is complex.

      --
      PHP is the solution of choice for relaying mysql errors to web users.
  46. Re:Love the lack of Windows support ! by Stellian · · Score: 3, Funny

    Because it is reliable, easy to develop, implement and support?

    Neah, that can't be it.

  47. Compatible with Zune? by AngryLlama · · Score: 1, Insightful

    I hope the database will run on Zune so I can squirt my Drizzle.

  48. Re:Love the lack of Windows support ! by tobiasly · · Score: 5, Insightful

    Traditionally MySQL was just the toy database for non-critical stuff that you wanted speed out of (and little else). If Drizzle accomplishes that, then I don't see a real place for the mainline MySQL anymore. Drizzle if you want speed, PostgreSQL if you want features/stability, and Oracle if you gots money to spend.

    The thing that people always seem to discount when comparing MySQL to PostgreSQL is community mindshare and comfort level. That's why it's called a LAMP stack. If products always won on technical merits, 90% of PCs would run OS/2 instead of Windows.

    I'll admit, even though I "know" that PG is supposed to be a better database, anytime I'm starting a new web app I go for MySQL. It's what most of the frameworks and toolkits support first and/or best. It's what more tech support guys at the web hosting companies are familiar with. Plus MySQL has *much* better GUI tools than PG.

    If both products were starting from scratch, then yeah maybe PG would have a good shot. But MySQL isn't bad enough, and PG isn't better enough, to make me or others like me feel like switching. I'm not comfortable with the PG toolset because I'm not familiar with it, and I have better things to do with my time than learn it, because for me the perceived potential benefit isn't worth it.

    Of course, none of this is to say that Sun won't f*ck up MySQL enough to make me change my mind...

  49. Re:Love the lack of Windows support ! by David+Gerard · · Score: 2, Funny

    Yep. The reason for Windows support in open source software is so that, come hardware crunch time, you can easily slide the OS out from underneath and triple the performance and look like a star. All OSS must support Windows purely so sysadmins can pull this trick.

    --
    http://rocknerd.co.uk
  50. Re:Love the lack of Windows support ! by myz24 · · Score: 2, Informative

    Sounds like you are trying to spread FUD. I'm a Linux guy but I'm also a Mac guy and Windows guy. I use them all. In my 8 years of running Windows in a medium organization...I've never "repaired the registry." I also find Active Directory and Group Policy to be fantastic. You can install cygwin to get your proper shell fix but even PowerShell isn't all bad compared to command/cmd. I also find our handful of Windows Server 2003 boxes to be reliable.

    As for development, I prefer to develop on Linux for Linux but it's really whatever you're comfortable with.

  51. Separated, not removed by Anonymous Coward · · Score: 0

    Seems like everyone is missing the point that the features aren't being completely removed, they're just being removed from the core and separated into modules.

  52. You forget the target audience by KingSkippus · · Score: 4, Insightful

    A lot of people think MySQL is great, but a lot of these same people have never worked on a "real" database that provides true ACID compliance, has powerful stored procedures, and instead of providing too many choices only have sensible options that all preserve data integrity.

    That's because most of these people are writing their applications to be cross-platform applications, or at least with the intention of them being cross-platform at some point without re-writing the whole thing. If you don't know that you're going to be hitting against a DMBS that provides true ACID compliance and that has powerful stored procedures, it's probably a good idea not to depend on those features for critical functionality.

    Also, you're forgetting who most of the databases we're talking about are aimed at: hobby or small-scale web developers. If you're writing something like Joomla! or phpBB or MediaWiki or whatever, it's pretty safe to assume that the people who are using your software won't have access rights to create things like powerful stored procedures (that, if written poorly, can <censored> up everyone using that database) even if they are supported by your DBMS. Such is the nature of $4.99 a month hosting plans; you typically don't get much more than INSERT and DELETE and SELECT.

    Frankly, MySQL is a lot greater than what 99% of users use it for. Drizzle is targeted at 80% or so of those 99% to provide an even faster and better back-end. If your application is such that it needs features that aren't supported by Drizzle or even MySQL, by all means, use whatever it is you need. But really, I don't see much use in basically telling people, "You're not using it right!" when it does exactly what they want it to.

    1. Re:You forget the target audience by billcopc · · Score: 2, Insightful

      Frankly, MySQL is a lot greater than what 99% of users use it for.

      You're right! Most web tards should be using SQLite, but hey, that would remove the possibility of running 8-node DB farms to support their bloated ORM framework and its spurious queries. It's funny how, 6-7 years ago people were talking about hitting 1 million hits per day. In 2008, with our quad-core Ghz-pounding monsters, most popular sites are actually serving less traffic per box than we did back in the day, because nobody cares to optimize anymore. Large images, script-rendered stylesheets (!?), caching is largely ignored by a majority of weenie developers...

      The last thing this world needs is another half-assed DB that panders to these inept coders. How about a tightly-bound, SQL-free database connector ? How about an ORM that's built right into the server ? How about closing the big gaping holes all these noobs are too dumb or lazy to avoid ? If web developers don't need a full-blown SQL server, they probably don't need a hobbled one either. They need something completely different.

      --
      -Billco, Fnarg.com
    2. Re:You forget the target audience by Anonymous Coward · · Score: 0

      A lot of people think MySQL is great, but a lot of these same people have never worked on a "real" database that provides true ACID compliance, has powerful stored procedures, and instead of providing too many choices only have sensible options that all preserve data integrity.

      Yes push the data integrity to the application, instead of relying on a much smarter database developers who already did this in PostgreSQL, Oracle,... Don't write code twice - If you have the code already in the RDBMS then why write it in your app?

      That's because most of these people are writing their applications to be cross-platform applications, or at least with the intention of them being cross-platform at some point without re-writing the whole thing. If you don't know that you're going to be hitting against a DMBS that provides true ACID compliance and that has powerful stored procedures, it's probably a good idea not to depend on those features for critical functionality.

      Ohh good, An argument that other databases are crappy so you should only program to that level.

  53. Re:Love the lack of Windows support ! by GooberToo · · Score: 4, Insightful

    If both products were starting from scratch, then yeah maybe PG would have a good shot. But MySQL isn't bad enough, and PG isn't better enough, to make me or others like me feel like switching.

    And that's the problem. Because people don't try it, you don't realize how much better PostgreSQL really is. It really is more "better enough". ;) Until you give it an honest try, you really don't realize what you're missing out on.

  54. Re:Love the lack of Windows support ! by the_womble · · Score: 1

    Because, despite your prejudice, there is a business case for it.

    I think the GP is suggesting that there is rarely or never a business case or using Windows. I am not saying he is right, but that his argument need not be interpreted as zealotry.

    Incidentally, Ackers presumably thinks that there is no business case for supporting Drizzle on Windows. Not supporting one platform should lead to cheaper, faster or better development.

  55. WHO IS THE DRIZZLE? by Anonymous Coward · · Score: 0

    all I know is it's not Master Shake, although they are very close friends!

  56. MySQL isn't bad enough...it will be (again) by littlewink · · Score: 1
    So the creators will fork using an old version!

    It's also proof that the creators never did understand views, stored procedures, referential integrity, triggers, ACID database properties and everything else that makes a true relational database like PostGreSQL.

  57. Re:Love the lack of Windows support ! by bXTr · · Score: 1

    That's why it's called a LAMP stack.

    Really? I thought LAMP was a marketing buzzword for selling O'Reilly books.

    --
    It's a very dark ride.
  58. Just goes to show, MySQL people are dolts by mlwmohawk · · Score: 4, Informative

    Sorry, it is incomprehensible that this sort of project would be started.

    The problem with MySQL, to BEGIN WITH, is that it doesn't support enough SQL or the SQL it does support well enough, to construct efficient queries. What ends up happening is that you move your "data logic" to your application and out of your database. This means the database handles simpler queries, but returns more data. While these simple queries appear faster, they hit more data on the disk and actually cause the system to become I/O bound.

    "Real" databases handle the "data logic" close to the data and can estimate the most efficient access to the data needed, thus REDUCING the I/O bottleneck, making more complex queries more efficient than simple queries. CPU time is virtually free with respect to data access.

    Every time I see some Java, PHP, or .NET guy go off about MySQL being faster, I just shake my head. Data access is a real science grounded in math and the physical realities of actual computers and storage devices. A "good" database has YEARS of research and unless you are a god (and you are not) it will be very hard for you to beat it.

    I've been in the business for about 28 years and I don't understand why software developers have this blind spot about databases. Maybe it is a "not written by me" attitude, but I just don't get it. A "good" database has so many facilities to make your data access efficient and fast as hell. Yet, most developers that I have to direct, simply refuse to learn about databases, specifically SQL. They go out of their way to write elaborate functionality in their language of choice that could have been constructed in a moderately interesting SQL query, that could be wrapped in a function and been more efficient.

    The "drizzle" product is just another avoidance of an important semester of computer science that people don't want to understand and will ultimately create even more poorly designed web sites.

    1. Re:Just goes to show, MySQL people are dolts by rasherbuyer · · Score: 1

      Mod parent up.

      I couldn't agree more. I've only been working with databases for 10 years, so I'm a bit of a newb comparatively. I have no respect for anything from MySQL - it's Noddy.

    2. Re:Just goes to show, MySQL people are dolts by encoderer · · Score: 1

      There's nothing wrong with MySQL. It serves its purpose.

      And there's nothing wrong, necessarily, with sacrificing ACID compliance for speed.

      The goal for those like you and I is to be sure these younger Dev's are using it appropriately.

      For example, during a code review if you see a developer doing a multi-table insert where he's checking for an error and doing a manual roll-back of the insert, that's a perfect time to demonstrate transactions as a way to save the developer time.

      Or when a dev wants to denormalize because a given query requires a dozen joins, that's a perfect time to demonstrate a view.

      In many ways, the sheer popularity of MySQL gives it legitimacy.

      The way to go about it isn't to make a dev feel dumb for using the software. He'll just think "Millions of people are using this, that old coot probably thinks I should be writing this web-app with C++ based CGI Scripts"

      Of course, if you're one that thinks MySQL et al have no place in a production environment, maybe they SHOULDN'T be listening to you...

    3. Re:Just goes to show, MySQL people are dolts by mlwmohawk · · Score: 0, Troll

      There's nothing wrong with MySQL. It serves its purpose.

      I disagree, but lets not start that discussion just yet.

      And there's nothing wrong, necessarily, with sacrificing ACID compliance for speed.

      Nowhere in my post did I even mention ACID. That's a different issue. Equally important, but different.

      The goal for those like you and I is to be sure these younger Dev's are using it appropriately.

      Assuming we agree on the definition of "appropriately."

      For example, during a code review if you see a developer doing a multi-table insert where he's checking for an error and doing a manual roll-back of the insert, that's a perfect time to demonstrate transactions as a way to save the developer time.

      Which drizzle wouldn't have.

      In many ways, the sheer popularity of MySQL gives it legitimacy.

      I find any argument based on "popularity" fundamentally flawed. Windows is very popular. So is velvita "cheese."

      Of course, if you're one that thinks MySQL et al have no place in a production environment, maybe they SHOULDN'T be listening to you...

      Ahh, the defense of the indefensible. MySQL is a bad system and drizzle will just be worse. I was not talking about "transactions" or data integrity in my first post. That is a WHOLE different stupidity in MySQL. I was talking about keeping "data logic" close to the data and out of the application.

      Little known fact: MySQL, when using isam -- and everyone uses isam, locks out table updates during READS. MySQL is woefully inadequate is in query optimization. So, while your team is doing simple SQL select and doing further processing on the data in the application because MySQL can't or your team doesn't want to do it in the database, you are locking out writes and updates. More over, the extra data you are retrieving from the database, because you are doing additional processing and selection in the application, means you are performing more I/O on the database server, which adds to the I/O bottleneck.

      Anyone who argues that MySQL has a place a real enterprise seriously lacks the experience and/or education to make such a statement. MySQL is insanely bad at being a SQL database.

      But hey, if you think it is worth while, I'll be willing to debate you. I'll even let you start. Imagine you are a CTO and you are choosing a database for your web site, please write an executive summary explaining your choice and the criteria for your selection, why MySQL was a better choice than PostgreSQL, DB2, Oracle, SQLite, or Sybase. Then create a list of features and limitations of the various systems and indicate for each feature why MySQL was better or that it did not matter.

      I have done this many times, MySQL has never been the right choice.

    4. Re:Just goes to show, MySQL people are dolts by Anonymous Coward · · Score: 0

      I think you have an interesting point(s). I would argue that computers are fast enough for so many things, that this is not as relevant as it used to be.

      For example, Google would run no faster on a good DB than it does now. HOWEVER, what makes google fast is that smart people who understand data access mathematics have used the root capabilities of the science in a custom application (the google backend) to blow away what any DB could do.

      So, perhaps we should be teaching the math and science behind it instead of the language (SQL) to kids in school. To me at least, it seems that the math/science will be more useful than mastery of the SQL language for the foreseeable future (given scalable computing, clouds, etc.)

    5. Re:Just goes to show, MySQL people are dolts by mlwmohawk · · Score: 1

      I think you have an interesting point(s). I would argue that computers are fast enough for so many things, that this is not as relevant as it used to be.

      Except that disk and data I/O are still slow. So faster CPUs can be used to do more extensive statistical calculations to be used to optimize slow data access.

      For example, Google would run no faster on a good DB than it does now. HOWEVER, what makes google fast is that smart people who understand data access mathematics have used the root capabilities of the science in a custom application (the google backend) to blow away what any DB could do.

      A specialized data system is almost always faster than a generic one. That's not what we are discussing. We are talking about making an even more stupid version of mySQL, a generic data access system.

      SQL should be part of any computer science study

    6. Re:Just goes to show, MySQL people are dolts by encoderer · · Score: 1

      Allow me to preface by saying that I never once mentioned Drizzle. I see no niche that Drizzle appeals to.

      But about MySQL: You're Missing The Point.

      Little known fact: MySQL, when using isam -- and everyone uses isam, locks out table updates during READS

      First, saying things like "everyone" is just silly. Inno is quite popular. It was purchased by Oracle for a reason: It creates a valuable product that's used by a lot of people.

      Second, You're missing the point.

      The VAST majority of apps deployed every day are NOT critical-mass applications. They are niche applications developed by (or for) Corporate IT Departments They are applications where the potential userbase is 30 people in an accounting department, or 100 people in a call center.

      For these applications, a table lock is truly NOT a big deal.

      Do the math. If you have 100 users, only a fraction will be simultaneous. And of those, how much actual server-side processing time is being spent? Even if a user is logged-in for 8 hours a day, what's the cumulative processing time? 2 minutes? 3?

      The end product is a very low probability that a race condition will occur due to a table lock. It might happen, what, once a day? And when it does, the user goes back, re-submits, problem solved.

      More over, the extra data you are retrieving from the database, because you are doing additional processing and selection in the application, means you are performing more I/O on the database server, which adds to the I/O bottlenec

      Again, missing the point. These applications have no perceivable IO bottleneck.

      But hey, if you think it is worth while, I'll be willing to debate you. I'll even let you start. Imagine you are a CTO and you are choosing a database for your web site, please write an executive summary explaining your choice and the criteria for your selection, why MySQL was a better choice than...

      And, again, the point was missed:

      Of the entire universe of software developers out there, a HUGE majority work for corporate IT departments. These are the people writing most of the software out there. This is the reason VB was in the top 3 most popular languages for nearly 2 decades.

      These apps aren't being designed by a CTO. And they don't need to be.

      You seem so hung-up on this "the company depends on my DBMS selection" mentality that it seems like you miss the boat entirely.

      I think you'd benefit from a reality check.

    7. Re:Just goes to show, MySQL people are dolts by Anonymous Coward · · Score: 0

      I think the main problem is the way these developers think. They only know imperative languages and think out very thing in steps. A declerative language like SQL presents a huge problem form them.

    8. Re:Just goes to show, MySQL people are dolts by mlwmohawk · · Score: 2, Insightful

      But about MySQL: You're Missing The Point.
      I would bet my career that I am not, and most of my career is based on NOT missing the point.
      The VAST majority of apps deployed every day are NOT critical-mass applications. They are niche applications developed by (or for) Corporate IT Departments They are applications where the potential userbase is 30 people in an accounting department, or 100 people in a call center.

      True, but not relevant.

      For these applications, a table lock is truly NOT a big deal.

      OK.

      Do the math. If you have 100 users, only a fraction will be simultaneous. And of those, how much actual server-side processing time is being spent? Even if a user is logged-in for 8 hours a day, what's the cumulative processing time? 2 minutes? 3?

      So?

      The end product is a very low probability that a race condition will occur due to a table lock. It might happen, what, once a day? And when it does, the user goes back, re-submits, problem solved.

      I define that as broken ESPECIALLY when there is fundamentally no reason for it to happen.

      You seem so hung-up on this "the company depends on my DBMS selection" mentality that it seems like you miss the boat entirely.

      I think you are missing the point entirely. Why do crappy work if you don't need to. Your defense is that you can squeak by with MySQL, but you've made no argument why you should use it in the first place.

    9. Re:Just goes to show, MySQL people are dolts by trawg · · Score: 1

      Or, people could just use the right tool for the job.

      As fun as it is watching the battle between MySQL haters and lovers every time the "m" word is mentioned on Slashdot, I can't help but feel everyone that hates it should really save their energy.

      I get the sneaking suspicion that, having created one of the most popular open source databases online and looking carefully at the market and what people are using it for, the MySQL guys might have some faint idea about what they're doing with this project.

      I personally think it sounds awesome, not because I'm planning on switching all our sites over to it immediately, but because I know that if I need a smaller, lightweight data storage engine with limited features and a focus on speed, THIS will be there and I'll have the CHOICE to use it if I feel it meets my requirements.

      Not everyone that likes MySQL has their head completely up their ass; we know there's alternatives and that lots of them are better in various ways. But it does the job, and I have no doubt Drizzle will find its niche as well. Not everyone needs the power of a full RDBMS for every project.

    10. Re:Just goes to show, MySQL people are dolts by mlwmohawk · · Score: 1

      Or, people could just use the right tool for the job.

      Did you not read any of my post? You don't address a single point. You make no constructive counterpoint at all. Your response is that "MySQL is good enough and you're just a hater."

      Each point I made is factually accurate and it is obvious that you are unwilling or unable to have a constructive discussion.

    11. Re:Just goes to show, MySQL people are dolts by Bill,+Shooter+of+Bul · · Score: 1

      I understand some of your points, and most of them apply equally regardless of the database backend. And you are correct, Mysql 5 just introduced subqueries and they aren't very optimized in any release.

      However, I'm not sure you understand the goals of Drizzle, nor the problem that it addresses. Drizzle is aimed at a niche that Mysql currently dominates: ONTP horizontally scaled on commodity hardware. Having the data itself split on different servers forces you to put some data aware logic in a middleware layer.

      You may not realize this but Drizzle is the the fruit of SunLabs employee. Sun. Makers of Solaris, Sparc, Java, Dtrace, and ZFS. They didn't skip any classes in Comp Sci. If you are going to make an intelligent criticism of a product, you have to first try and understand it, instead of making an emotional response to some stupid developers.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    12. Re:Just goes to show, MySQL people are dolts by trawg · · Score: 1

      I'm not saying its not factually accurate. I'm just saying that this new product isn't addressing those points because they're assholes, or they're stupid, or they're completely ignorant of those things.

      I'm saying they're creating a product to satisfy a market that (for better or worse) thinks it doesn't need any of those things.

      Saying everyone is going to now run out and create "poorly designed websites" I think is a bold assumption. I hope we'll see more websites that are designed better as a result of having this product in the market as it provides another option for people to choose from.

      My response, if you read it objectively, is "MySQL is good for some things, and this will be good for other things, and for people that want a database that has all those years of development and scientific research that you so respectfully refer to, well, that's an option for them as well, but when you need to bang in a couple of nails, you don't need a pneumatic jackhammer - you can just use a regular hammer."

      It sort of sounds like you're mostly just raging against useless developers that don't want to learn SQL and are building their logic in code instead of the database, where possible. That's fair enough. But that's not really MySQL's fault. It works well for a lot of applications, and the price point sure beats Oracle or DB/2 (...but probably not postgres!)

    13. Re:Just goes to show, MySQL people are dolts by mlwmohawk · · Score: 1

      However, I'm not sure you understand the goals of Drizzle, nor the problem that it addresses.

      I am not sure how REMOVING functionality addresses problems in this case. It just seems stupid. mean, seriously, every server purchased in the last couple years has at least a couple gig of RAM. The few hundred K of executable code being removed is inconsequential.

      Having the data itself split on different servers forces you to put some data aware logic in a middleware layer.

      The aggregation logic, certainly, but the efficiency and flexibility of a real database is even more helpful in this case, not less.


      You may not realize this but Drizzle is the the fruit of SunLabs employee. Sun. Makers of Solaris, Sparc, Java, Dtrace, and ZFS. They didn't skip any classes in Comp Sci. If you are going to make an intelligent criticism of a product, you have to first try and understand it, instead of making an emotional response to some stupid developers.

      So you are saying that Sunlabs has never made stupid decisions?

    14. Re:Just goes to show, MySQL people are dolts by mlwmohawk · · Score: 1

      I'm saying they're creating a product to satisfy a market that (for better or worse) thinks it doesn't need any of those things.

      What, exactly, don't they need and why? More importantly, what are the pros/cons of removing functionality?

      My response, if you read it objectively, is "MySQL is good for some things, and this will be good for other things,

      But you've offered no constructive argument to support your assertion.

      It sort of sounds like you're mostly just raging against useless developers that don't want to learn SQL and are building their logic in code instead of the database, where possible. That's fair enough. But that's not really MySQL's fault

      I beg to differ, in the last 10 years, MySQL's failings has led to developers, probably like yourself, thinking that SQL databases "get in the way" more than they help. I pin that on MySQL. Had MySQL been a better SQL database, developers would be more encouraged to exploit the capabilities of a "real" database. Instead, they've learned that MySQL sucks at doing things and end up doing it in the application, and figure all the other systems suck just as much.

    15. Re:Just goes to show, MySQL people are dolts by Jay+Godse · · Score: 1

      What you are saying is absolutely the way things are going. Modern web development frameworks are trying to move all of the data processing away from the data (e.g. Ruby On Rails), and then use the database as dumb storage. If you use a database purely as dumb storage, MySQL is probably faster, but I think that if one considers overall performance of an application, it depends more on how you code around the I/O bottlenecks (e.g. stored procedures versus application servers or ORMs). Personally, I have found that using an in-memory SQLite database instead of home-brewed data structures allows me to quickly code up complex data structures and then manipulate them with 4-line SQL statements instead of 1 page functions. Check out http://www.squidoo.com/sqlitehammer#module7016183 for an example.

    16. Re:Just goes to show, MySQL people are dolts by mlwmohawk · · Score: 1

      What you are saying is absolutely the way things are going. Modern web development frameworks are trying to move all of the data processing away from the data (e.g. Ruby On Rails), and then use the database as dumb storage.

      If you use a database purely as dumb storage, MySQL is probably faster, but I think that if one considers overall performance of an application, it depends more on how you code around the I/O bottlenecks (e.g. stored procedures versus application servers or ORMs).

      Personally, I have found that using an in-memory SQLite database instead of home-brewed data structures allows me to quickly code up complex data structures and then manipulate them with 4-line SQL statements instead of 1 page functions. Check out http://www.squidoo.com/sqlitehammer#module7016183 for an example.

      SQLite is a cool program in its own way being an embedded SQL engine makes it useful.

      It is sad that almost a whole generation of developers will have to relearn basic data theory simply because they don't make an effort to learn about real databases.

    17. Re:Just goes to show, MySQL people are dolts by Bill,+Shooter+of+Bul · · Score: 1

      Dude, implementing some features slow down some operations ( Think about the relative speed of a DSP versus a general purpose CPU). Its not about code size. If you don't understand the problem, the solution is going to confuse you. Its like the "what's this tool used for" segment of this old home where they trot out this weird looking tool and try to figure out what it could be used for. Only after being presented with the right problem does the strange looking monstrosity's purpose become clear.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    18. Re:Just goes to show, MySQL people are dolts by mlwmohawk · · Score: 1

      Dude, implementing some features slow down some operations

      In some cases yes, in some cases no. I would not consider that an axiom.

      Think about the relative speed of a DSP versus a general purpose CPU

      That is, of course, an apples and oranges sort of thing. A DSP is not a simpler general purpose CPU, just as a general purpose CPU like the x86 line, is not a more complex dsp.

      If you don't understand the problem, the solution is going to confuse you.

      The ad hominem, the sure sign you are using a bogus argument.

      . Its like the "what's this tool used for" segment of this old home where they trot out this weird looking tool and try to figure out what it could be used for. Only after being presented with the right problem does the strange looking monstrosity's purpose become clear.

      I get a kick out of MySQL defenders, they use like "right tool for the job" arguments, but never quantify what makes MySQL the right tool.

      Their argument is that "it can do it," never that it does a particular job best.

      So, tell me, what does MySQL have to justify its use?

    19. Re:Just goes to show, MySQL people are dolts by Bill,+Shooter+of+Bul · · Score: 1

      Massively scalable OLTP loads on commodity hardware.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    20. Re:Just goes to show, MySQL people are dolts by mlwmohawk · · Score: 1

      Massively scalable OLTP loads on commodity hardware.

      Well, "everything" is commodity hardware these days.

      OLTP? MySQL? Not if I need to depend on data integrity, no thanks.

    21. Re:Just goes to show, MySQL people are dolts by Jay+Godse · · Score: 1

      SQLite is a cool program in its own way being an embedded SQL engine makes it useful.

      It is sad that almost a whole generation of developers will have to relearn basic data theory simply because they don't make an effort to learn about real databases.

      I don't think that a lot of programmers understand the value of designing data to 3rd normal form or better. It is not immediately obvious that avoiding update anomalies and having atomic transactions drastically reduces code volume, especially for error handling, corner cases, and data synchronization. To be fair, free SQL databases have not been generally available except for about the last 10 years, and free embeddable databases have only been available for about the last 5 years (when I started using SQLite). SQLite, MySQL, and PostgreSQL are now easy enough to get. Over time, people will figure out that for many programs you can be a lot more effective using SQL instead of home-brewed data structures and queries.

    22. Re:Just goes to show, MySQL people are dolts by Bill,+Shooter+of+Bul · · Score: 1

      What is wrong with the data integrity of Innodb?

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    23. Re:Just goes to show, MySQL people are dolts by mlwmohawk · · Score: 1

      What is wrong with the data integrity of Innodb?

      Nothing if you can deal with the performance hit.

    24. Re:Just goes to show, MySQL people are dolts by Bill,+Shooter+of+Bul · · Score: 1

      Then nothing is wrong with using Mysql of OLTP loads on commodity hardware for massive scalability, because everyone who does that uses Innodb. Innodb ends up being faster than MyIsam for these loads due to the finer lock granularity and concurrent writes.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    25. Re:Just goes to show, MySQL people are dolts by mlwmohawk · · Score: 1

      Then nothing is wrong with using Mysql of OLTP loads on commodity hardware for massive scalability, because everyone who does that uses Innodb. Innodb ends up being faster than MyIsam for these loads due to the finer lock granularity and concurrent writes.

      I would argue two things:

      (1) There are better platforms for OLTP even depending on how you define it and your particular implementation.

      (2) This is precisely the opposet point of this thread, that Drizzle, being even dumber database than MySQL makes no sense.

    26. Re:Just goes to show, MySQL people are dolts by Bill,+Shooter+of+Bul · · Score: 1

      1)What database systems would you propose that are better for OLTP? What makes them better?
      2)Drizzle, is designed for OLTP and nothing else( Innodb is default). Some one here intelligently referred to it as analogous to assembly for databases. ie less features, but the ability to do certain things faster than in a system (well mostly referring to MySql's current implementation of these features) that does have them.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    27. Re:Just goes to show, MySQL people are dolts by Anonymous Coward · · Score: 0

      I beg to differ, in the last 10 years, MySQL's failings has led to developers, probably like yourself, thinking that SQL databases "get in the way" more than they help. I pin that on MySQL. Had MySQL been a better SQL database, developers would be more encouraged to exploit the capabilities of a "real" database

      Can you list a few common examples where a "real" database would do something better that MySQL can not?
      I'm relatively new to databases and just play with MySQL (with PHP) on my home server so I'm curious to know what types of things other databases offer over MySQL and how they could be used.

      Thanks

    28. Re:Just goes to show, MySQL people are dolts by trawg · · Score: 1

      But you've offered no constructive argument to support your assertion.

      Oh, right. I didn't think I needed to because of it's install base, which I figure is an indicator that there's enough people out there that think it's good enough for their purposes :)

      I beg to differ, in the last 10 years, MySQL's failings has led to developers, probably like yourself, thinking that SQL databases "get in the way" more than they help. I pin that on MySQL. Had MySQL been a better SQL database, developers would be more encouraged to exploit the capabilities of a "real" database. Instead, they've learned that MySQL sucks at doing things and end up doing it in the application, and figure all the other systems suck just as much.

      I suppose abusing me personally is an easier thing than admitting MySQL might not suck, but don't worry - I don't take offense!

      I think blaming MySQL for lazy developers not bothering to learn the ins and outs of databases is a bit rich. I don't think most people that write database-type stuff in code do it because MySQL sucks - they just do it because for them its easier than learning a whole new system to do things. I can't blame MySQL for that, even if all they're using it for is a simple system to stuff things in/pull stuff out.

      Further, having massively awesome database systems is just no guarantee people will use them. I'm pretty sure I remember some hilarious stories from DailyWTF about people doing similar things to what you're describing in Oracle or DB/2.

      Good development can still take place with MySQL, and MySQL (the core product), is getting better, not worse. This Drizzle thing is just going to help fill the niche market of people that want a simple data in/data out system without requiring a fully blown database. And there are lots and lots of them.

    29. Re:Just goes to show, MySQL people are dolts by mlwmohawk · · Score: 1

      Oh, right. I didn't think I needed to because of it's install base, which I figure is an indicator that there's enough people out there that think it's good enough for their purposes :)

      How many people use Windows? How many people voted for Bush? How many people believe in ID? A numbers argument is not valid.

      I suppose abusing me personally is an easier thing than admitting MySQL might not suck, but don't worry - I don't take offense!

      If you took my post as insulting, I apologize it wasn't meant to be.

      I think blaming MySQL for lazy developers not bothering to learn the ins and outs of databases is a bit rich.

      Normally I'd agree, but the rah rah rah crowd, insists that MySQL is good and often times, it is the only experience developers have with a SQL database.

      the niche market of people that want a simple data in/data out system without requiring a fully blown database.

      If you are in the position of using a database, there is no extra cost for using a "full blown" database, so why even bother using anything less?
       

    30. Re:Just goes to show, MySQL people are dolts by mlwmohawk · · Score: 1

      Can you list a few common examples where a "real" database would do something better that MySQL can not?

      select * from nflx_movies where mid in (select movie from imdbmap) ;

      This is a pathalogical problem for MySQL. Where as this clause executes very slowly on MySQL, Oracle, PostgreSQL, and other analyze that correctly and optimize it.

      create index foo on mytable(bar);

      In almost any database I can execute that without locking the table. Not on MySQL.

      If you have a HUGE databse, you better not add an index while the system is running.

      I would suggest you download or use PostgreSQL, THEN compare it to MySQL. Also, see if you can find a "LAN Times Guide to SQL' it is probably one of the best beginners books.

  59. C++? bazar? Must surrender rights to Sun board? by GNUPublicLicense · · Score: 2, Interesting

    Really tiring... really... Still C++... should require C compiler complexity only
    Bazare is ... well, should go for GIT instead.
    And GPL for what, since we have to surrender our GPL rights to a for-profit organisation(Sun upper management and board) and in no case I would like to have my code in their closed proprietary forks...
    We need a Linux-spirit-like SQL DB engine for God Sake!

  60. Re:Love the lack of Windows support ! by Fallingcow · · Score: 1

    On another note, what's with the lack of hosting services providing PostgreSQL? I would love to use it, at least for some projects, but the fact that it's not available on many hosts makes it quite a hard decision to make. I don't want to pick up another hosting provider, or switch over all my stuff just to use a different database.

    I know you said you don't want to switch, but:

    Lunarpages kicks ass.

    Not an employee, just a long-time, satisfied customer.

  61. I'm psychic. by Jester998 · · Score: 2, Funny

    I foresee many posts on thedailywtf about projects which implement this 'technology'...

  62. All you bitchers and whiners... by Anonymous Coward · · Score: 0

    If you don't like the feature set use the regular MySQL. This isn't meant to replace a general database, it's an architectural trade-off to solve a very specific high concurrency issue by optimizing both feature set, design, and code. If you don't like it or think you know better don't use it. Good Lord, they didn't take away your precious, just offered you another option.

  63. they should rename it "dribble" by timmarhy · · Score: 1
    because that's all this is. no views, triggers, stored procedures or ACL's??? this REEKS of a system that will have programmers doing all the work a database was made for in their code.

    and what the hell is the obsession with a "slimmed down" database for web apps? it's not like the client is downloading the database backend. make the database backend as feature full as you can to make your apps, you know, BETTER.

    my prediction is dribble will be used by a few nob headed php programmers, who will shortly post on /. how the dribble database is 10x faster than regular mysql. they will also forget to mention that it fails at anymore more complex than select *

    --
    If you mod me down, I will become more powerful than you can imagine....
  64. Drizzle will just rain 'em out by Anonymous Coward · · Score: 0

    Master Shake: Drizzle here.
    Meatwad: Yes, Drizzle? Violent criminals have put.. what did you..Fat Albert?
    Frylock: Prince Albert..
    Meatwad: ..have put Fat Albert in a can.
    Frylock: No, no. It's Prince. Prince Albert.
    Meatwad: Oh, okay. Hang on. ...Have put Fat Albert in a can..in your can.
    Master Shake: I'll need precise coordinates, ma'am.

  65. Re:Love the lack of Windows support ! by CyprusBlue113 · · Score: 1

    Unless you need partitioning support.

    --
    a handful of selfish greedy people are no match for millions of selfish, greedy people -u4ya
  66. Re:Love the lack of Windows support ! by speedtux · · Score: 0, Troll

    I'm guessing you're going for a "+5 Funny" here, right?

  67. Web?! by zarlino · · Score: 1

    The wiki says there is no FULLTEXT support. TFA says no Prepared statements and no query cache. How is this supposed to be good for a web application?

    --
    Check out my cross-platform apps
  68. Re:Love the lack of Windows support ! by Joe+U · · Score: 1

    Why would anyone in their right mind set up a Web/SQL platform using MS products?

    Because you always use the best tool for the task at hand? And there are many situations where IIS and MS-SQL do a damn fine job.

    To blindly use one OS or app just shows a lack of dicipline on the developer.

  69. Re:Love the lack of Windows support ! by GooberToo · · Score: 2, Informative

    Can you expand on what you mean? Some databases have a more expanded view of what partitioning means but PostgreSQL does support partitioning.

  70. Re:Love the lack of Windows support ! by timmarhy · · Score: 1
    no dude, what are YOU smoking?

    windows servers are very reliable, netcraft confirms it http://uptime.netcraft.com/up/today/top.avg.html. in fact linux isn't even in the top 50. put THAT in your pipe and smoke it

    windows is also by far the easiest platform to develop for. .net is a brillant product, sql server is also brillant to use and compared to oracle it's cheap as chips. it also comes with tools like reporting services which OSS simply has no answer to.

    i've developed under BSD and windows for years, and windows has by far had better tools for the last 3 years. i just get the feeling you don't know what your talking about....

    --
    If you mod me down, I will become more powerful than you can imagine....
  71. Re:Love the lack of Windows support ! by Anonymous Coward · · Score: 0

    Could you share some 'buzzwords' with us that require Active Directory, IIS, and other nonsense?

    It sounds to me like you had a bunch of Windows developers forced to use linux who didn't 'get' it and switched to Windows ASAP. But that's just a guess.

    I switched jobs and got stuck into an IIS+Windows+MSQL environment, and I've been truly stunned by how bad these tools are for web development.

    At least I've still got PHP, even though the Windows developer I'm stuck with thinks it's C and insists on hard-coding enums and shit like that, instead of letting us take advantage of loose typing and database-driven development...

  72. Re:Love the lack of Windows support ! by Anonymous Coward · · Score: 0

    hahaha ZING!!!

  73. Re:Love the lack of Windows support ! by ducomputergeek · · Score: 4, Interesting

    I used to do the same thing, reach for MySQL for web applications first simply because there are more hosting companies supporting MySQL for a large number of reasons. I reached for PostgreSQL for intranet or business application where clients could use the features, but maybe could not afford or wanted to spend the money on SQL Server or Oracle. But in the last couple years, I've noticed more hosting companies offering PG support as well. However this changed for me in the past six months when SUN purchased MySQL.

    But SUN buying MySQL and then not really having any what I would call "firm plans" on what they were going to do with it was enough for me to look at PostgreSQL as the db of choice for the latest application I was hired to develop. At this point, PG development seems to be more of a known quantity.

    I could be wrong and Sun might create something that is absolutely amazing and the best. thing. ever. But until then, I'll stick with what I know till something better comes along.

    --
    "The problem with socialism is eventually you run out of other people's money" - Thatcher.
  74. Re:Love the lack of Windows support ! by nixNscratches · · Score: 2, Insightful

    I use MySQL and PostgreSQL every day and whenever I have a choice, and if it makes sense for the project, I reach for Postgres. MySQL may have better GUI tools and I'm sure that's important for some people, but PostgreSQL just works more like I want / need a database to work. For the kind of work I do (non trivial queries with a significant degree of write operations), it's as fast or faster than MySQL in any area that matters. If you don't see any perceived benefit to using a more robust, more compatible SQL implementation, then you probably aren't using a lot of what most RDBMS systems have to offer. And that's fine! There are plenty of places where people are using a database as a glorified storage box for object persistence where any fancy SQL stuff is almost a waste and that's a place where something like Drizzle makes a lot of sense.

  75. Re:Love the lack of Windows support ! by Anonymous Coward · · Score: 0

    Woosh?

  76. Re:Love the lack of Windows support ! by ByOhTek · · Score: 1

    Actually, Windows + Apache + MySQL doesn't make a bad server. That's partially MS. I set one up for someone in my family also, and it's worked great for him. I'd rather have used FreeBSD, mostly for easy remote administration, but aside from the remote admin issues, this setup has worked very well.

    With a decent firewall, and keeping the system updated, Windows isn't a bad server operating system at all. The software you use on it may change the quality, but you can fix that by using good software.

    --
    Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
  77. Re:Love the lack of Windows support ! by Anonymous Coward · · Score: 2, Insightful

    Linux not being in the uptime listings is not because all those Linux machines are crashing, but because of the method used in Linux to measure uptime. In fact, NetCraft even has a FAQ on this here. It's pretty much common knowledge at this point that Linux servers have better uptimes than Windows servers, and that BSD rules the roost (and that absolutely every VAX machine that ever booted VMS is still running!).

    That said, .Net is brilliant, and really makes complicated programming accessible to idiots (you can argue about whether this is a good thing or not!). For me, it comes down to "do I spend the cash on keeping Windows Server licenses up to date, keeping SQL server licenses, keeping techs paid to do the routine Windows maintenance, etc, but get away with hiring a cheaper, less skilled programmer" or "do I lay out more cash on a better programmer who can handle developing under Linux, but save the costs of licenses, (some) maintenance, etc"? The decision depends on the situation.

  78. The Drizzle by Anonymous Coward · · Score: 0

    Shake: [Answering phone] Drizzle here.

    Meatwad: Hello, yes Drizzle. Violent criminals have put...Fat Albert, what, what it's...

    Frylock: No, no, it's Prince Albert.

    Meatwad: Oh, have put...Fat Albert in a can, in your can.

    Shake: I'll need precise coordinates maam.

    Meatwad: Oh okay, it's...it's in your butt, boy! It's in your butt! Did you hear me? It's in your butt.

    Shake: Pranksters! Sons of-

  79. Audit stuff by mgkimsal2 · · Score: 1

    But someone still has to write those sorts of triggers, for every database, every time the create one. Why isn't this sort of audit logging (changing, data changing, etc.) built in to the database engine automatically, with a few configuration options available?

    Data and table change logging 'by default' would be immensely useful, and if it's done optimally by the db authors, you're going to avoid issues of poorly written useland triggers and stored procedures by people who aren't as intimately familiar with the core engine.

    1. Re:Audit stuff by Electrum · · Score: 1

      Why isn't this sort of audit logging (changing, data changing, etc.) built in to the database engine automatically, with a few configuration options available?

      It is in Oracle:

      (you might need to create a free login to view these)

    2. Re:Audit stuff by abirdman · · Score: 1

      They don't build "this sort of audit logging (changing, data changing, etc.)" into the database because there are a million different types of audits that need to be done, depending on the situation, business requirements, programmer skills and requirements, management CYA, government regulation, accounting requirements, backups and data security, binary logging for replication, etc., etc., and no database could anticipate them all. Sorry, someone will always have to write database auditing if they need it-- there's no shortcut.

      --
      Everything I've ever learned the hard way was based on a statistically invalid sample.
  80. Re:Love the lack of Windows support ! by Blackknight · · Score: 1

    It's probably the fact that cPanel's support for postgres sucks, it only supports 7.4 and getting it to work right is a pain. Plesk is a bit better but you have to pay for extra licensing to use it.

  81. Learn to abstract by Anonymous Coward · · Score: 0

    It's hilarious how half the comments here are saying most of the processing should be done client-side for the sake of portability, and half are praising the merits of stored procedures and suchlike in the name of security and performance. If you understand abstraction, it's a painfully trivial matter to write your web app to support either method as the situation demands.

    C'mon guys, this is basic first year Comp Sci stuff. You *can* have it both ways.

  82. I thought MySQL was already stripped down... by afabbro · · Score: 2, Funny

    ...but then again, I work with Oracle.

    --
    Advice: on VPS providers
  83. Re:Love the lack of Windows support ! by godefroi · · Score: 1

    There isn't a better command line than PowerShell. If you're really hung up on bash, install SFU.

    As for repairing a registry, I've been running Windows clients and servers for >10 years, and I've never needed to. If something did get that broken, I'd just reimage the box, no big deal.

    --
    Karma: Poor (Mostly affected by lame karma-joke sigs)
  84. drizzle name is trademark of jay-z by mattwarden · · Score: 1
  85. Re:Love the lack of Windows support ! by FishWithAHammer · · Score: 2, Insightful

    Assorted points that indicate that you do not know what you're talking about--

    -Why are you installing software that could corrupt the registry on your server machines? Sounds like incompetence to me.

    -Do you really mean to say that OS X has better server management controls than Windows? Really? Because if you are, I would like to know what mystery world you live in where "bad" became "good."

    -Linux does not have anything that approaches ASP.NET in terms of functionality, ease of programming, and feature completeness. Java Server Pages are horrible. Mono (who I do some work for) is only at ASP.NET 2. PHP/Python/Ruby? Please.

    -The Windows command line is poor, yes--but if you're working according to the platform's paradigm, that weakness is avoided because you don't use it. Besides, cygwin works fine if you insist on it. (I've started to use PowerShell, which is also quite nice.)

    -SQL Server is significantly superior to MySQL, faster than PostgreSQL, and for most businesses is cheaper than Oracle.

    The only one smoking anything here is you.

    --
    "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
  86. Re:Love the lack of Windows support ! by FishWithAHammer · · Score: 1

    I think the GP is suggesting that there is rarely or never a business case or using Windows. I am not saying he is right, but that his argument need not be interpreted as zealotry.

    Sorry, but saying that there's never a business case for using Windows is zealotry.

    --
    "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
  87. It's the scalability, stupid by ClientNine · · Score: 2, Insightful

    The only time I have the database do the processing is when it's either vastly faster or vastly easier. To put it simply, it's cheap and easy to scale up my webserver farm, and difficult and expensive to scale up my database.

    In the real world, developer hours are the most expensive part of most IT projects. You are highly motivated to write code within your comfort zone that will not require heavy maintenance in the future. So yeah, that might mean doing a broad query and doing the sorting/filtering/analysis on the webserver. That puts the heavy lifting in Tomcat/Perl/PHP (and unlike SQL, those languages don't need to have their syntax extensively futzed with when the platform changes because this year's CTO is a Microsoft Fanboy and his predecessor was an Oracle Victim). If the webserver runs slow, fine-- I throw another webserver at it and check the "stateful http session" button on the load-balancer/firewall. Costs me about 5 grand and even gives me other bennies like redundancy. If that saves us a man-week of dev time over the next few years than it's a steal. (Infrastructure load? My boss doesn't care. That's the facilities budget, not IT, and the marginal cost of running one more PE1850 is negligible anyway.)

  88. I'm OLD and I'm NOT HAPPY by mw13068 · · Score: 2, Funny

    Oh Hi! I'm a database admin/weirdo/geek and I have "big issues" (TM) with any and all database technology, and related discussion that does not fit with my myopic view of the world! This Drizzle does not make me happy. You kids! GET OFF MY LAWN!

  89. Slashdot dyslexia by Anonymous Coward · · Score: 0

    Let me show you an approximation of what this article looks like to some Slashdot posters, in their hurry to be frist pots. . .

    "Builder AU reports that MySQL's director of architecture, has unveiled Drizzle, a database project. . .will have . . . code being removed from the Drizzle core. Akers has already selected particular functionality for removal: modes, views, triggers, prepared statements, stored procedures, query cache, data conversion inserts, access control lists and some data types."

    See, it all makes sense now.

  90. Btrieve? Is that you? by tgrigsby · · Score: 1

    modes, views, triggers, prepared statements, stored procedures, query cache, data conversion inserts, access control lists and some data types

    Views: Most commercial grade systems use them to denormalize collections of data for frequent data transformations and easy reporting. In my experience they're not needed on smaller, simpler, or less normalized databases, but on very complex databases they're essential.

    Stored procedures: Typically used to push the business rules for pure data manipulation into the server where they can be executed more efficiently. Again, smaller system don't need them, larger systems will scale better with the ability to put the processing where it can be done the quickest.

    Query cache: I can't imagine why you'd throw out the execution plans for frequently used queries. This is simply a performance issue, and high concurrency systems will drag without caching.

    And so on. And there's no support for a Windows version. In every instance, including the statement from the FAQ, "'This is not a SQL compliant relational...' Very true, and we do not aim to be that," it's obvious this isn't intended to be a commercial grade, common OS, broadly used, SQL compliant database engine. It's a hobby engine. While the author of the article lauds InnoDB, I honestly believe that the mindset is to produce a database engine microkernel, a la Linux, that will result in an organic, evolutionary model of distros, with various versions and feature sets arising with the fittest surviving.

    Which just means I'll be using MySQL.

    Sorry, but my software is database-agnostic, insofar as it expects SQL-92 compliance. I have no use for an extreme low end, non-scaleable out of the box, handicapped database engine. Why would I? MySQL gives me everything I need for doing any application I can come up with, and with the correct configuration it body-slams its best competitors.

    Thanks, but no thanks.

    --
    *** *** You're just jealous 'cause the voices talk to me... ***
  91. Re:Love the lack of Windows support ! by MHolmesIV · · Score: 1

    Better how? I admit I haven't used PG simply because MySQL is what I've always used, and it works perfectly for the tiny projects I tend to futz around with (like my jukebox and website driver etc). I don't use stored procedures, I don't use pretty much any of the "advanced features" like replication, transactions, or pretty much anything that appears to be marked for removal from the Drizzle core. The apps I use are designed to be write rarely, read often, and all I need is good performance on the read, a reasonable relational structure, and the ability to do reasonably complex SQL queries.

    So, how, exactly, is PG "much better" than MySQL for me? I've been tempted to switch a number of times, but I never found a reason why it would work better for me.

  92. Mod parent up! by skrolle2 · · Score: 1

    Argh, I had mod points yesterday, but not today when I needed them! :-(

    Yes, views and trigger and stored procedures are good, and if you have a really competent DBA that is part of the development team and can take responsibility for those parts, and if you're ok with being tightly tied to a certain DB, then fine.

    But most projects don't look like that, and most projects don't need that. If you want speed, then you want to hit the database as little as possible, and when you do, you want it to do as little as possible. Constraints, views, joins, transactions, all these things add up and you lose performance.

    Scaling a database is really, really, hard. Shifting the work to the web server and adding a bunch more web servers is easy.

  93. Ask yourself WHY, by encoderer · · Score: 3, Insightful

    It's funny how, 6-7 years ago people were talking about hitting 1 million hits per day. In 2008, with our quad-core Ghz-pounding monsters, most popular sites are actually serving less traffic per box than we did back in the day, because nobody cares to optimize anymore.

    Ask yourself WHY that is.

    It's simple: Hardware is MUCH cheaper today than it ever was before, and it'll be even cheaper tomorrow.

    You know what ISN'T cheaper? Software developers.

    It makes a lot more sense to optimize for the DEVELOPER than it does to optimize for the machine.

    I can add another web server for $5000. Adding a developer is at least an order of magnitude more expensive.

    1. Re:Ask yourself WHY, by XHIIHIIHX · · Score: 1

      Yeah, but try to scale it and tell me which is cheaper.

    2. Re:Ask yourself WHY, by marnues · · Score: 1

      You would make a good PHB. Pay that existing developer a little more and send them to some training so they code their SQL correctly the first time. Then there's less server complexity, fewer servers to maintain (which means fewer admins you have to pay), less server farm being used, less power and need for HVAC. Bloat is bloat, whether its code or hardware. Bloat also leads to more bloat.

    3. Re:Ask yourself WHY, by encoderer · · Score: 1

      And you would make a poor boss, pointy haired or otherwise.

      This is about turning a profit. I've been doing this for a long time. Optimizing for the developer is financially smart.

      This isn't about building the rare "100 year flood" of an application. You'd be dumb to assume any given app you're developing will reach a critical mass. It's a bad bet.

      Besides, it's not as if an app is slow so let's add a server. Clearly the first thing anybody would do is run it under a profiler and look for pinch points.

      But optimizing from the get just because of an off chance that the application somehow gains an audience larger than predicted at design time.

  94. Slimmed down version of MySQL by Frank+T.+Lofaro+Jr. · · Score: 1

    A alimmed down version of MySQL?

    Isn't that called Berkeley DB?

    --
    Just because it CAN be done, doesn't mean it should!
  95. Re:Love the lack of Windows support ! by smack.addict · · Score: 1

    System administration is where MySQL kills PostgreSQL.

    You have to have a DBA for PostgreSQL, you don't for MySQL.

  96. Read your code. by microbox · · Score: 1

    Sanitation is ridiculously easy. You just gotta - like - read your code. Or better yet, let your database driver do the sanitation for you.

    INSERT INTO foo (stuff, morestuff) VALUES ($1, $2)

    Piece of cake.

    --

    Like all pain, suffering is a signal that something isn't right
  97. views by microbox · · Score: 1

    Without stored procedures, to allow a program (or the programmer who wrote it) access to a given data set, you'd have to grant it SELECT privileges on the table(s) containing that data. With a stored procedure, you just grant it permission to run that procedure, which might only return a subset of the data in the table(s).

    Views solve that problem, and are easier to work with as things change over time.

    --

    Like all pain, suffering is a signal that something isn't right
  98. Re:Love the lack of Windows support ! by Bill,+Shooter+of+Bul · · Score: 1

    The thing is ACID, MVCC transactions are not being removed from Drizzle. Its going to be that way by default. They are just cutting out things like views, triggers, stored procedures and what not. Drizzle is for massively scaled web applications, not a MyIsam based Mysql 3.0 replacement.

    --
    Well.. maybe. Or Maybe not. But Definitely not sort of.
  99. Drizzle is for simplicity by Anonymous Coward · · Score: 0

    For those of us who write sites that need to be able to scale to hundreds of database servers, this is exactly what we want.

    When the database is very much behind a firewall on a tightly controlled set of servers, we don't care about access controls. Memcached is a good example of this: no username or password at all. It's not useful on a shared hosting system, but that isn't the goal.

    When you're trying to partition your data across multiple database servers, joins, views, and triggers are pretty much useless, since data may very well be on a physically different machine.

    When you're trying to do extensive caching (like with memcached) joins, views, triggers, and stored procedures are pretty useless, since you need to do it all client side anyway so you can keep your cache up to date. ORMs make this easier.

    When you've got a high write/read ratio (mine is 50/50), query caching is useless.

    For those of us writing code that does all the partitioning anyway, we care about speed and data consistency and little else. Everything else is bloat.
    There's a reason google released their patches for mysql 4.x instead of 5.0 which was long since used in production.

  100. Where is this world going? by paziek · · Score: 0, Troll

    Imagine this: Apache announces, that it will remove some of its features, like for example mod-php, mod-perl, mod-rewrite.. moved to modules! Gone - forever!

  101. Prepared Statements are a Must by Anonymous Coward · · Score: 1, Insightful

    I can live without all the items they've removed, except prepared statements. Without prepared statements most apps will accumulate massive parse-time waits for all their SQL.

    What do they gain by removing prepared statements?

  102. PostgreSQL Fluffery by EgoWumpus · · Score: 1

    Because people don't try it, you don't realize how much better PostgreSQL really is.

    If this were really true then a sufficient community of people looking to make it accessible would grow up around it. A common complaint is lack of easy tools to use with PostgreSQL - a reasonable complaint because there is no point in everyone wasting their time using backwards tools.

    The fact of the matter is that MySQL does what the vast majority wants it to do, and has better accessibility. Only functionality that is an order of magnitude better is going to overcome that - and while PostgreSQL may be better, it's simply not that much better.

    --

    [Ego]out

    1. Re:PostgreSQL Fluffery by jlarocco · · Score: 2, Interesting

      I think what drives everybody crazy are the people using MySQL who act like they're database experts because of it.

      Just because it does what most people want, doesn't mean it's a very good example of DBMS software.

    2. Re:PostgreSQL Fluffery by GooberToo · · Score: 1

      If this were really true then a sufficient community of people looking to make it accessible would grow up around it.

      You mean like what is already happening. You are also very confused with your position. Popularity is in no way a measure of merit or capability. Once you stop jumping off the bridge simply because that's what you've always done and that's what your friends tell you to do, you'll be happier for it.

      The fact of the matter is that MySQL does what the vast majority wants it to do, and has better accessibility.

      Hardly a fact. Have you tried it? It doesn't sound like you have.

      Only functionality that is an order of magnitude better is going to overcome that - and while PostgreSQL may be better, it's simply not that much better.

      It will likely take more than that because PostgreSQL, as is today, already exceeds your quantum. Maybe not in every area, but in most.

      Seriously, stop making up reasons to stay in your comfort zone and give it a real look with an open mind. You'll be happy you did.

  103. Re:huh? by mlwmohawk · · Score: 1

    I have never ran into a problem that Mysql couldn't handle.
    Nothing in my post wasn't about "not being able to do something" but that "real databases" are better at it.

    Your database elitism just makes you look like an asshole.

    I am amazed at the dumbing down of society. Did you know that "elite" means best choice. So my "best choice-ism" makes me look bad?

    How about either complimenting the project or just shut the fuck up and don't post? No one really cares what database you think is best.

    I offered a valid critique to a project and the basis of it.

    Nothing I have written is incorrect or can not be verified. So, rather than insult my "elitism" why not stay "on topic" and discuss the issues.

  104. Re:Shnizzle Put that on the To-Do list for those by davidsyes · · Score: 1

    patent trolls who try to 'drizzle in'....

    --
    Previously: "Linux... Toward the Sunrise..." Now: "Linux... Toward the-- No, now, part of Every Sunrise"
  105. Re:Love the lack of Windows support ! by CyprusBlue113 · · Score: 1
    --
    a handful of selfish greedy people are no match for millions of selfish, greedy people -u4ya
  106. Re:Love the lack of Windows support ! by mindstrm · · Score: 1

    Plenty of us realize hwat we are missing out on - but the bottom line is, if mysql does the job, using postgres doesn't buy me anything except less staff who can use it and slightly harder to find documentation.

  107. Re:Love the lack of Windows support ! by Anonymous Coward · · Score: 0

    HAHAHAHAHA

  108. It has nothing to do with "crappy" by KingSkippus · · Score: 1

    Ohh good, An argument that other databases are crappy so you should only program to that level.

    It has nothing to do with a DBMS being "crappy" and has everything to do with higher-end features being supported one way on one DBMS, another way on another DBMS, and/or not at all on yet another DBMS, and the real-world situation that some of your customers/users run Oracle, some run MS SQL Server, some run DB2, some run PostgreSQL, some run MySQL, etc.

    All of the above examples implement higher-end features differently. Even if two different DBMSes support some high-end feature, writing a stored procedure that works on Oracle is quite different than writing a stored procedure that works on MS SQL Server. Shoot, even something as stupidly simple as creating an auto incrementing column is implemented differently between Oracle and MS SQL Server, neither of which could be considered "crappy" in terms of high-end features.

    So think what you will, but out in the real world, if I can code to the lowest common denominator to avoid writing three, four, or five different versions of my application, unless there's some pretty extreme performance to be gained, that's what I'm going to do.

    Oh, and if I'm coding my application to work across MS SQL Server and Oracle without modification, there's a really good chance it will work on pretty much every DBMS, including MySQL.

    1. Re:It has nothing to do with "crappy" by grep_pdx · · Score: 1
      Thanks for taking my quote out of context and setting up your strawman.

      If you don't know that you're going to be hitting against a DMBS that provides true ACID compliance and that has powerful stored procedures, it's probably a good idea not to depend on those features for critical functionality.

      Ohh good, An argument that other databases are crappy so you should only program to that level.

      A DBMS that doesn't have minimal ACID compliance as default is crappy.

      Then you speak as though the problems of porting stored procedure and check constraints have not been solved a thousand times over. If your data is not important enough to ensure data integrity then why have it in the first place.

      Then couple that with a database that doesn't scale well and you have extra crappy.

  109. Re:huh? by Anonymous Coward · · Score: 0

    Arguing technical merit with a bunch of folks whose largest programming project is setting up some dumb ass blog or some shitty PHP website is pointless.

    Getting back to your points, The only reason mysquirrel is popular is that it's easy to get up and running. Let's face it, the majority of apps that use it are shitty blog or message board software. I read one that just to show the list of forums it needs to run 13 queries! The 'joins are hard' and 'transactions are slow' crowd are the ones that use it.

  110. Separate queries and data store by inKubus · · Score: 1

    I like the idea of just having a transparent layer in the language that wraps around whatever datastore you're using. I like the idea behind LINQ (Language Integrated Query), which is a Microsoft thing in C# 3.0 that basically lets you use SQL type queries on any "Set" of objects, be it a relational database table or tables, flat file or even arrays and data structures. Although it's kindof clunky, it might work for building prototypes because you don't have to worry about the data store, just the types. There is a similar project for Ruby called Ambition which looks pretty cool also.

    Now, I know ODBC was supposed to do abstraction to a pretty full level, but to add arrays is the kicker for me. It's not efficient at all, but it make sense from a human perspective. That means it's easier to write code. I know Drupal and a few other CMS systems use a database abstraction layer (sort of), that will translate queries into whatever database you're using. It's not perfect, though. I know I'm always writing tons of functions in PHP to get the SQL the hell offa my page. Prepared statements and procedures are ok for that also. And if I want a lightweight SQL server, there's SQL Lite already!

    Anyway, a better use of time would be to bring LINQ to this side of the street. I really think M$FT has something, for once. I mean, I saw a demo where they did a full AJAX app in about 10 minutes, you can run the query, joining a SQL query (adapter) with an array you already had, and maybe union that with an XML file and return the result as, well, you can return ANY data type you can bring in; so you could return a SQL resultset, or an array or XML or JSON or whatever you want. It handles MOST of the fuss for you. You have to do some mapping ahead of time but you can use XSD or a mapping array or a SQL JOIN table......... It's a universal adapter. BRING ONE TO PHP or at least RUBY. Or I could deal with a Python version.

    --
    Cool! Amazing Toys.
  111. Re:Love the lack of Windows support ! by GooberToo · · Score: 1

    The fact that PostgreSQL supports inheritance, a cool feature MySQL doesn't support, hardly makes it hackish. Likewise, different doesn't equate to bad.

  112. Re:Love the lack of Windows support ! by GooberToo · · Score: 1

    Better how?

    Given that tons of posts on PostgreSQL's merits over that MySQL every time MySQL is brought up, I'll not rehash the long list of merits and technical reasons. They are plenty easy to find and lengthy to boot. The fact that you ask really seems trollish at best. Nonetheless, I'll continue.

    The apps I use are designed to be write rarely, read often, and all I need is good performance on the read, a reasonable relational structure, and the

    This used to be MySQL's sweet spot over that of PostgreSQL and is no longer. This rational alone is no longer reason enough to justify use of MySQL. Of course there are other factors, such as comfort, but this is no longer a MySQL advantage.

    ability to do reasonably complex SQL queries.

    MySQL's query planner/optimizer is well known to be primitive at best. PostgreSQL on the other hand has a very advanced, mature, highly configurable, and capable query planner. If you're doing complex SQL queries, very likely you'll be far better off with PostgreSQL.

    As I originally said, unless you actually try PostgreSQL you'll never know what your missing out on. Ultimately your position is one of closing your eyes and humming so you don't have to leave your comfort zone. If you decide you want to expand your horizons and can approach it with an open mind, you'll very likely be kicking your self that you stayed with MySQL for so long.

  113. Re:Love the lack of Windows support ! by GooberToo · · Score: 1

    The documentation is readily available and of high quality. Books are available. Third party support is also available. Unlike MySQL, it's easy to actually speak with and exchange emails of the actual core developers. In other words, third tier support is fast, friendly, easy, and accessible.

    Thus far you seem to have made the case to try PostgreSQL.

  114. Re:Love the lack of Windows support ! by man_of_mr_e · · Score: 1

    Why would anyone in their right mind set up a Web/SQL platform using MS products?

    I don't know, maybe the fact that IIS hasn't had a single criticle security vulnerability in 5 years, compared to several in Apache? Maybe the fact that the asp.net is a feature rich and fast platform with lots of third party support? Maybe the fact that Millions of developers are already familiar with the platform, languages, and characteristics?

    Just a thought...

  115. Re:Love the lack of Windows support ! by man_of_mr_e · · Score: 1

    Actually, yes. Everybody needs a full ACID compliant transactional database, however, many people don't use those features (even though they should, and are complete morons for not doing so). So basically, Everyone needs it, not everyone wants it.

    Web apps in particular need concurrency, transactions, stored procedures to be robust and reliable (not to mention safe). Those people that don't use those features are creating unreliable, unstable, unsafe software that won't stand up to the issues faced by web apps. 90% of Web app developers don't take things like multiple concurrent record access into account when they write their code, then it crashes or corrupts data in weird ways when they least expect it.

  116. Re:Love the lack of Windows support ! by man_of_mr_e · · Score: 1

    Nothing without a decent command line is "easy to develop for in my book

    You might want to come into this century. http://en.wikipedia.org/wiki/Windows_PowerShell

    And yes, IIS and ASP.NET are very easy to develop for. You can download the free Visual Studio Express, Free Sql Server Express, and have web pages up and running in seconds after installation. This gives you the ability to use a debugger to debug web pages and many other features that are a real pain in the ass to get working in the patchwork tools required for PHP and JSP or even RoR. No configuration needed.

    Certainly, developing non-trivial web applications is just as difficult over the long haul, but the Microsoft tools make it VERY easy to get started.

  117. Re:Love the lack of Windows support ! by TheSunborn · · Score: 1

    Why?? Both PostgreSQL and MySQL are install and forget, unless you need absolute top performence in which case you might need to do special magic to spread the data and log files on different partitions.

  118. but with transactions by egghat · · Score: 1

    This time it's based on InnoDB

    --
    -- "As a human being I claim the right to be widely inconsistent", John Peel