Google Releases MySQL Enhancements 208
An anonymous reader noted that "Google has released its internally developed enhancements to MySQL to the open source community this week. Changes include improvements in replication, high availability configuration, and performance." It'll be interesting to see if the changes they made are of interest to other places using MySQL.
Great! (Score:5, Insightful)
(I'm not even trolling, I do want to know if they fixed that)
Re:Great! (Score:5, Insightful)
Re: (Score:3, Insightful)
According to the docs MyISAM is the default table format [mysql.com]. So how about "sacrifice by default." Sure, you can change the default to InnoDB but why isn't it set to InnoDB already? I find it strange that you have to enable data integrity features in a RDBMS.
Re: (Score:3, Funny)
Re: (Score:2)
Sure, you can change the default to InnoDB but why isn't it set to InnoDB already?
Why sacrifice performance by default for transactional integrity when most database applications require only statement atomicity?
My spam token DB, photo album manager and Wiki back-end simply don't have the ACID requirements of a bank, and I DO NOT want to pay the performance penalty for some theoretical need that I might have in the future. I'll happily lock when I need to, and track completion of complex actions. If I need true transactional integrity, I'll turn it on in a new table that I only use for
Re: (Score:3, Interesting)
Silly Question (Score:3, Informative)
It's a silly question, really. MySQL is about performance. If you can trade off integrity for speed, and you need speed, use MySQL with myASM tables. If you need that integrity and would benefit from MVCC [wikipedia.org] use PostgreSQL. If you need MySQL for some reason (web hoster, etc) and want the integrity, use InnoDB tables (for version 5 - something else for version 6), though there's a performance hit and you still don't get MVCC.
Re: (Score:2)
MySQL when used with InnoDB [7] or Falcon [8] storage engines.
Re: (Score:2)
Thanks for making me go look at this.
From the MySQL site:
Re:Hep Me Understand... (Score:5, Insightful)
If you have a read-only situation there's no need for full ACID compliance. I've seen some contrivances where MySQL reads happen from myASM databases, and the writes go into an InnoDB database, and something on the backend happens to replicates the changes into the 'read-only' databases reliably. I've just never had, myself, an application so speed critical that it was worth doing that instead of doing PostgreSQL for everything. But my use cases aren't everybody's use cases.
Re: (Score:3, Informative)
In this context, data integrity refers to mechanisms that prevent you from doing something bad. If you never do anything bad, these mechanisms aren't strictly necessary. It's analogous to the difference between dynamically and statically typed program languages.
What do I mean by "something bad"? Without referential integrity, you could have the database equivalent of dangling pointers. Without concurrency controls (either through locking or the previously mentio
Re: (Score:3, Informative)
Show me one programmer who hasn't done something 'bad' (i.e., made a mistake) and I'll say, "Just let him write his second line of code," just after I pry the delete, backspace and ctrl keys off his keyboard.
Re: (Score:2)
Huh? (Score:2)
All three of the issues you mentioned are fixed. And not in MySQL 5 which came out a year ago. No, they're fixed in MySQL 4.
All these complaints about MySQL data integrity as if it's a common occurance to lose or corrupt data in MyISAM tables are just ridiculous.
Go try all three of the items you've mentioned against a MySQL 4.x table with the default ISAM storage engine. The only one that MIGHT happe
Re: (Score:2)
I think
Re: (Score:2)
Slashdot is a perfect example of a loosey-goosey "good enough" MySQL application, where speed is important. The data accuracy isn't that important.
+1, Informative my foot. what about adwords [blogspot.com]? oh wait, you were talking out of your ass like all MySQL bashers.
OTOH you wouldn't want this behavior for your corporate accounting ledgers, so there you'd be safer using a "real" database
yadda-yadda-real see link.
Re:Great! (Score:5, Insightful)
- The database doesn't corrupt tables. Ever.
- If the power fails or the kernel goes away at an arbitrary instant, then when the database starts up again all of the data will be there, with committed transactions entirely present and uncommitted ones entirely gone.
Secondly, it's not justified to just assume that MySQL will be faster even with it's limits on data integrity. It depends on your workload. Consider differences in locking strategy and query plans, for example. There's a benchmark showing scaling behaviour in one particular set of circumstances here: http://tweakers.net/reviews/674/6 [tweakers.net] ; this shows a fairly striking difference in scaling with load on a specific machine.
Fit for duty? (Score:2, Funny)
Those Googlians are stupid, don't they read slashdot? If they did they'd know MySQL isn't fit for ANYTHING! Sheesh.
Re:Fit for duty? (Score:4, Insightful)
Now imagine them in Google's data centers.
Which, in fact, is where they are. Now do you see?
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Google-y goodness (Score:5, Insightful)
Ah, now this is how it's supposed to work. No bull like, "We're releasing improvements as MSN-SQL," or any other nonsense. Yay Google.
Wont be included in MYSQL... (Score:5, Insightful)
Re:Wont be included in MYSQL... (Score:5, Informative)
To suggest that the code can't be included because someone else owns copyright is just wrong - MySQL didn't develop the Innodb stuff, they license it. They could do the same here.
Re: (Score:3, Insightful)
Re: (Score:3, Insightful)
Re: (Score:3, Informative)
It will be interesting to see what happens with the patches.
Re:Wont be included in MYSQL... (Score:4, Informative)
4.0 is not actively developed at all, and lacks basic requirements such as subqueries, accurate math for DECIMAL or NUMERIC types (they're identical to FLOAT in 4.x so decimal errors for aggregate functions are common), and VIEWs. That's in addition to the normal flaws for data integrity in MySQL (MyISAM database engine, fsync disabled by default) that make it one of the least ACID compliant databases around that can still understand SQL.
This is like Google releasing patches for Apache 1.2.
Re:Wont be included in MYSQL... (Score:5, Informative)
Dual licensing hurting other projects too (Score:2)
Re: (Score:2)
Presuming that Google owns all the copyrights (which I would assume they do) to their changes, nothing prevents MySQL AB from negotiating a deal with Google to include the enhancements in the commercial distribution.
If there's enough value to MySQL that they can offer enough to Google to make it worthwhile, there is no reason for it not to happen.
Re: (Score:3, Insightful)
The patch... (Score:5, Informative)
Re: (Score:2)
Wireless Developers? (Score:2)
Re:Wireless Developers? (Score:5, Funny)
You just might be a consultant. (Score:2)
Re: (Score:2)
Re: (Score:2)
Comment removed (Score:5, Interesting)
Re:This illustrates a problem with commercial OSS (Score:5, Insightful)
I think this illustrates a problem with trying to sell OSS as if it were closed source software, instead of relying upon contract work for improvements, customizations, services, and other closed source add ons or using that OSS as a tool yourself for some other market.
Re: (Score:2)
Re: (Score:2)
But that has it's own share of problems... Namely make sure the software sucks so that there is a market for improvements, customizations, services and support.
No, that is the problem with relying upon support as your main revenue stream, not with any of the business methods I listed.
You can make money developing an OSS database by:
WTF? (Score:3, Interesting)
Re: (Score:3, Informative)
What they are talking about is counting Oracle Standard, Oracle Enterprise and other Oracle database editions as separate offerings to make MySQL look more important.
Re:WTF? (Score:4, Informative)
=Smidge=
Re: (Score:3, Insightful)
-Em
Oracle Rdb (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
In edition to a series of "editions" of the main Oracle Database engine product, Oracle has Oracle Berkeley DB and the TimesTen In-Memory Database, which are (certainly in the first case, and I believe also in the second) completely different systems, not just different versions of the core engine.
Re: (Score:2)
Middleware [oracle.com] and applications [oracle.com] like Oracle Fusion, Oracle E-Business Suite, Oracle On Demand, PeopleSoft Enterprise, Siebel, JD Edwards EnterpriseOne, JD Edwards World and so on.
Re: (Score:2)
What exactly does Oracle offer besides database offerings?
Three different widespread ERPs (Oracle E-Business, PeopleSoft and JDE,) Siebel, a Java IDE (at one time quite popular,) a database design platform, OLAP stuff (their own and now Hyperion) and application containers. They also have some not so widely used products including a collaboration system (email, etc.) and some sort of Oracle backed file system. They have a cluster file system for Linux that's gotten some play. Oh, and they're an OS vendor now with their 'Unbreakable Linux' thing.
Oracle is a mon
They differentiate between 9i and 10g (Score:3, Interesting)
The survey ``asked developers at 517 companies in its 2006 winter survey what database they developed with'' with developers allowed to give multiple answers. It isn't clear to me why Oracle was split between two versions while none of the other databases were.
InnoDB...? (Score:3, Interesting)
"In a perfect world, each feature would be provided as a separate patch and all code would be as portable as MySQL. We are not there yet. These have been implemented and deployed on Linux. Also, some of these features only work with InnoDB, because we use InnoDB."
InnoDB is the slower, but safer/transaction-able way to use MySQL. In an earlier blog entry "let's get a real database", Google revealed they run AdWords/AdSense on MySQL, and they rolled up their own transactions as they went for speed with MySQL. Now we see they changed their mind.
So I suppose that goes to show, never mind how limited your application, you better stay away from MyISAM: it'll bite you sooner or later.
Re: (Score:2, Redundant)
Re:InnoDB...? (Score:5, Informative)
Where did I say InnoDB wasn't MySQL
In fact the irony in your post is big, as the original post addresses just people like you who are very quick to decide what a "respected DBA" would do, or not (versus reality).
I'll quote one of the Google devs answering questions about it:
Q: holy crap, you ran adwords on a transactionless database?
A: Yep.
Q: you have balls. and you're lucky as hell nothing (else) went wrong.
A: Nope. Luck had nothing to do with it. If you don't have transactions you just roll your own. It's actually not hard at all.
Bottom line is, you use transactions as it easier to retain data integrity and makes for simpler code. You don't use transactions to be "respected DBA". Whatever reasons they had to use MyISAM was probably sound, but after certain level of sophistication, they switched to InnoDB to make things easier to manage.
Re: (Score:2)
I could definitely see a reason for running MyISAM in situations where you don't care about orphan records, or data integrity, I just didn't
Re: (Score:2)
"InnoDB is the slower, but safer/transaction-able way to use MySQL. In an earlier blog entry "let's get a real database", Google revealed they run AdWords/AdSense on MySQL, and they rolled up their own transactions as they went for speed with MySQL. Now we see they changed their mind."
You're right, the last one "MySQL" should've been "MyISAM".
Re: (Score:2)
People achieve (a form of) this by using table locks (which MyISAM supports). Of course, you can't really roll it back automatically.
Re: (Score:3, Interesting)
And, of course, it didn't crash all the time.
Re: (Score:2)
Just ask (Score:2)
Why don't you ask Jeeves [ask.com] then?
Obligatory sane link (Score:2, Offtopic)
http://www.informationweek.com/news/showArticle.j
Better replication is a start (Score:5, Interesting)
Unfortunately, the patches from Google don't really fix the basic problem. I think MySQL needs a complete redesign of the replication function. Oracle seems to handle this much better: the replication is controlled on the master, not the client, and it works in just about any combination you can imagine. That is not to say that the MySQL replication is not useful in certain situations (it fans better), but it is very much limited to one kind of application.
Way to go.
Re: (Score:2)
license incompatibility? (Score:2)
Re: (Score:3, Informative)
It seems to me that while their Python tools [google.com] are Apache-licensed, the actual MySQL patches are GPL.
Re: (Score:2)
Re: (Score:3, Informative)
but then the actual tools code page [google.com] lists :
as for the original question, the Apache FAQ [apache.org] for their license says they think that they're compatible but FSF does not:
What do they use for search? (Score:2)
Re:so... (Score:5, Interesting)
I'm a recent convert from SQL Server, and I love MySQL now.
The fact that I can download a copy and get it running in about 20 minutes is the best part. The fact that the admin is pretty damn good, and easy, is the part that keeps me using it.
Maybe there IS something to this whole open-source thing.
Re:so... (Score:5, Informative)
furthermore, the mysql query browser screws up when you paste a query containing tabs. this particular bug was reported to mysql over a year ago. it was somewhat fixed, but not really.
I really like mysql but claiming that the admin is better than sql server is well, pushing it.
Re: (Score:3, Interesting)
But I didn't claim that MySQL admin was better than SQL Server admin- I just said it was damn good.
I have had much better success with backup and restore on MySQL than I have had on SQL Server. I find the interface and functionality much easier to understand and much more obvious. The damn DTS in SQL Server is a black hole to me...admittedly I had a database replicate in the wrong direction about 4 years ago and I am still gun-shy when using it. Yes, it was my fault, but
Re:so... (Score:5, Insightful)
The management interface for PG is on-par with SQL Server Studio; I use both on a daily basis. It's also "20 minutes to set up and start populating data". As an added plus, Postgres has all of the "standard" syntax and referential data integrity turned on out of the box.
You use MySQL if: a) you're developing a LAMP app for an inexpensive webhost that only allows MySQL databases, or b) all of your developers cut their teeth on MySQL and therefore productivity will drop if you ask them to use standard compliant syntax, or c) You're using an app (like SugarCRM or WordPress), the developers of which insisted on using funky MySQL-only features (instead of standard portable syntax) and therefore it's too much work to port to a standard syntax.
In all other cases, you use Postgres or some other commercial database. Postgres scales much better than InnoDB on any combination of a) larger numbers of read-write transactions, b) larger numbers of connections, c) more processors, d) larger datasets (including and beyond 400-500GB).
Cheers, -J
Re: (Score:2)
Disclaimer: This is not meant to be trollish in any way.
Re:so... (Score:5, Funny)
Re: (Score:3, Insightful)
Re: (Score:2)
I've also had some serious problems with the ODBC client for Windows. There was one bug when accessing views on a MySQL > 5.0.10 server through ODBC that, as far as I know, has yet to be fixed. It has been open for over a year. And it is pretty serious. Basically you can't query a view from MS Access (didn't try from othe
Re: (Score:2)
http://sourceforge.net/projects/automysqlbackup/ [sourceforge.net]
Sure, it's a shell script, but it does what you want (in the list of databases, just type 'all').
Re: (Score:2, Informative)
Re:so... (Score:5, Insightful)
Sorry, we can't all be gurus, but I still need to back up my tables every so often.
Re:so... (Score:5, Insightful)
Re: (Score:3, Insightful)
I agree in general, because I'm in the same situation, being "Administrator of Computer Stuff". But come on, folks. Being an expert in mysql is one thing, but understanding how to write a shell script or use a simple command-line utility like mysqldump is pretty basic stuff that even "master of none" types like me are comfortable with.
There is a lot of reflexive elitism and egotism among techies, but if someone doesn't have a foundation of
Re: (Score:2)
Jason.
Re: (Score:2)
Gee, thanks. What about us jack-of-all-trade schmoes who only use the basics and aren't running company wide databases? The amount of data I use the database for is actually quite small, relatively speaking. I run (among all my other jobs) our internal webserver, which means I need to write all the code, including the presentation part, and administer the database. Sorry, we can't all be gurus, but I still need to back up my tables every so often.
Then you don't need to schedule the backup to dynamically
Re: (Score:2)
mysqldump --all-databases
Not sure how long we've had it, but it's been a while. I'm on 5.0.27.
Re: (Score:2, Informative)
Re:so... (Score:5, Interesting)
I use both MS SQL and MySQL in corporate environments for various purposes and have to say that I like both for different reasons. MySQL is "damned good" in its own right, but there are some ANSI features available in MSSQL I really have trouble living without (for example: DELETE FROM tblData WHERE fldValue = '3' OUTPUT INTO tblBackup). My thought would be to see what Google have to offer, if it helps me, then great, if it doesn't, it's great for the community, and in a few years time when MySQL has all the features I require I can finally throw out the MS SQL servers.
My $0.02 AU
Finding what's "under the covers" (Score:2, Informative)
You can use the SQL Server Profiler tool to capture the SQL that's run when you do something in Enterprise Manager. I've done this when I wanted to do something in my own admin tools that I know can be done in EM.
Re: (Score:2)
Also, installing SQL Server 2000 and/or 2005 is pretty effortless. Just run the installer and the basic defaults will do for most people. When y
Re: (Score:2)
I'm using the GUI tools from the MySQL site:
http://mysql.org/downloads/gui-tools/5.0.html [mysql.org]
I just assumed that most people- especially those familiar with SQL Server would be using the GUI.
Google's Not Evil Today (Score:2)
"GoogleIsGood"
Re: (Score:2, Funny)
No. Remember - Google uses open source but never gives anything back.
Nevermind - found the Wiki with more info... (Score:3, Informative)
http://code.google.com/p/google-mysql-tools/w/lis
Re: (Score:2)
Probably because that's the version of MySQL they wrote it for?
Re: (Score:2)
Re: (Score:2)
Because it's a niche problem that the majority of developers don't run into or work around. By the time you have an issue with table fragmentation affecting your reads, you're running multiple servers.
> Does mysql need vacuum?
That seems rhetorical. You're strongly implying it does. I'm weakly implying it does.
Everyone makes tradeoffs. MySQL has traditionally adapted common
Re: (Score:2)
Too long.