Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

High Performance MySQL

timothy posted about 10 years ago | from the turning-the-tables dept.

Data Storage 307

swsuehr (Steve Suehring) writes "Knowing that Jeremy Zawodny works with MySQL in a highly demanding environment at Yahoo! Finance, I have to admit that I was somewhat anxious to crack open a copy of the book High Performance MySQL published by O'Reilly and written by Jeremy and Derek J. Balling. With such high expectations, it would be easy to be disappointed with the content or level of the material in the book. Far from disappointing, High Performance MySQL was exactly what I had hoped it would be and more." Read on for the rest of Suehring's review.

With a title like High Performance MySQL, the reader should not expect assistance with tasks such as installation or the basics of SQL. The authors acknowledge that the book isn't meant for the MySQL beginner. Even so, the book does spend a little time going over a refresher of MySQL. If the reader is looking for a book on the basics of MySQL, though, I'd recommend picking up a different title. I might be so brazen as to suggest looking at the book on MySQL that I wrote a couple years ago, but I'll leave it for the reader to find an appropriate title for their level of knowledge with MySQL.

The book is broken out into ten chapters, beginning with a chapter on the basics of MySQL as seen from someone with some level of MySQL experience. (And since I am someone with some level of MySQL knowledge, this chapter didn't seem to be too painful of a read.) That statement begs for a further explanation. I find it painful to read books that claim to have advanced topics but find it necessary to spend (or waste) time by giving yet another explanation of how to type ./configure; make; make install in the beginning chapter. In this regard, I find High Performance MySQL to be quite good at providing the appropriate level of explanation for the audience.

The first pages alone are a great starting point for those who are wondering about the performance as it relates to the different versions of MySQL. A discussion of the binary versions of MySQL versus the source code versions gives the reader a good understanding of the implications of this important decision. Choosing correctly between the versions of MySQL can help to maximize performance.

Though only the first chapter is titled "Back to Basics," most chapters include some basic or background information pertinent to that chapter. For example, both the query and index performance-related chapters include sections with the word 'Basic' in their titles. These two chapters, "Index Performance" and "Query Performance," cover topics often misunderstood when considering performance on a database. Naturally, any database administrator worth their pay (insert your own joke here) will tell you that an index can help to improve performance. But High Performance MySQL takes it a step further by diving into why you might use a particular index given your database needs. This type of practical information is common throughout the book. Rather than just give the reader a listing of the indexes (which are mostly common among RDBMS anyway), the authors choose to tell you why you might choose one method over another.

Other chapters within High Performance MySQL include chapters on server performance tuning, replication, load balancing, and high-availability, backup and recovery, and security. I've followed MySQL forums and mailing lists over the years and some of the more common questions relate to MySQL security. The chapter on security gives the reader a great explanation of the MySQL GRANT tables and includes a sidebar on the significance of 'localhost' in MySQL which nearly always seems to be a source of confusion, though maybe not for the reader of this particular book. Like other chapters, the security chapter includes tips for the underlying environment upon which MySQL operates. For example, regardless of how good the MySQL database permissions are configured, if another piece of software on the server isn't kept up to date then the entire server, including the MySQL data, could be compromised.

Looking back at the book, I might have laid the chapters out in a different order or provided more structure through sections of the book. However, this can be dismissed as personal opinion and is non-substantive anyway. I believe High Performance MySQL is an excellent choice for the MySQL administrator or developer not only looking to improve their database performance but also to improve his knowledge of MySQL.


You can purchase High Performance MySQL from bn.com. (And the book that Suehring alludes to is the MySQL Bible . Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

Sorry! There are no comments related to the filter you selected.

No Thanks (4, Funny)

AKAImBatman (238306) | about 10 years ago | (#10578063)

You can keep "High Performance MySQL". I'm holding out for "Incredible Data Integrity Management with MySQL". :-D

Re:No Thanks (3, Insightful)

turboflux (781551) | about 10 years ago | (#10578151)

You would almost think that data inegrity would come before tuning for high performance wouldn't you?

Apples and oranges (4, Insightful)

Pan T. Hose (707794) | about 10 years ago | (#10578417)

You can keep "High Performance MySQL". I'm holding out for "Incredible Data Integrity Management with MySQL". :-D

High Performance and Incredible Data Integrity? You are comparing apples and oranges. Make up your mind. It's either "High Performance with MySQL" or "Incredible Data Integrity with PostgreSQL." You can't have your cake and eat it too. If you need real ACID (Atomicity, Consistency, Isolation, and Durability) then by all means have it, but realize that it isn't free. Please read about the relational model [wikipedia.org] and ACID [wikipedia.org] . Read about the set theory [wikipedia.org] and predicate calculus [wikipedia.org] , about tuple calculus [wikipedia.org] and relational algebra [wikipedia.org] . This is complicated stuff which it is not cheap algorithmically. Most of people don't need ACID and should not be penalized by the algorithms that implement it. Those who need it will have to pay with performance, because there is only this much you can do in one cycle. A pure ACID relational model is not for everyone, some people will only need a persistent object store instead of a relational database. The most important thing to realize is that databases are not magic. They implement complicated algorithms in code that have to be run by the CPU and by definition cannot be a one-size-fits-all solution. So please don't oversimplify it by saying "I want everything with no paying for anything, and also a pony." Use the right tool for the right job.

Re:Apples and oranges (4, Insightful)

AKAImBatman (238306) | about 10 years ago | (#10578500)

Touchy, aren't we? I think that most of us here understand core database concepts (including ACID) just fine. (At least, I hope most of us do.) The problem is that it has become all to common to use MySQL in situations were data-loss and data-integrity can be measured in real dollars. MySQL is completely the wrong tool for the job, and as such has been heavily criticized.

In fact, it is very difficult to understand where MySQL fits in today's technological environment. On one hand you have truly powerful database servers that guarantee data safety. On the other hand you have simple embedded databases that run much faster than MySQL. Where does this leave MySQL? With nothing more than a lot of "it's Open Source!" momentum.

High Performance and Incredible Data Integrity?

I never said that. Please don't act like I did.

Re:Apples and oranges (1, Interesting)

smclean (521851) | about 10 years ago | (#10578576)

I think that most of us here understand core database concepts (including ACID) just fine.
Oh? Read some of the other comments on this article and see :)

I agree that MySQL is overused. It's the M in LAMP, and so people assume its what they have to use for everything.

But what are these alternatives you mention that are so much better suited for every possible scenario? For me, MySQL is the perfect mix of speed and features. Give me some leads on other databases I should consider replacing it with, I'll check them out.

Re:Apples and oranges (3, Informative)

AKAImBatman (238306) | about 10 years ago | (#10578809)

But what are these alternatives you mention that are so much better suited for every possible scenario?

There is, of course, no tool that meets the needs of every possible scenario. Instead, there are tools that meet the needs of common scenarios. Most of what MySQL is being (improperly) used for could be easily replaced with PostgreSQL. Postgres offer similar performance, but takes a minor hit for data integrity. As a bonus, you gain sub-selects, stored procedures, SQL-92 compliance, and other features of a "real" SQL database.

MySQL is quite decent for something like a blog, but why even bother with a complete server in those cases? An embedded database such as Berkeley DB [sleepycat.com] or HSQL [sourceforge.net] (formerly Hypersonic) would provide better performance and would get rid of security issues inherent in running a complete database server.

In still other instances, SQL databases are misused for large object data storage. In many of these instances, an Object Database such as ObjectStore [objectstore.com] (or your favorite open source choice of the 1000+ options) will provide better performance, without sacrificing much in the way of database management. (Standard database management tools are usually insufficient for dealing with databases containing large amounts of LOBs.)

Basically, the choice in database and database technology should be carefully weighed against the application instead of saying "I know SQL and MySQL is 1337!"

Some other database options include:

DaffodilDB [daffodildb.com]
SAP DB [sapdb.org]
FireBird DB [sourceforge.net]
Cloudscape [cloudscape.com] (Soon to be open source)
Xindice [apache.org] (XML Database)
ObjectDB [objectdb.com]
DB4O [db4o.com]
Prevayler [prevayler.org]

Re:Apples and oranges (1)

yamla (136560) | about 10 years ago | (#10578729)

The reason I use it is that MySQL allows for easy master-master replication. PostGreSQL doesn't, though they are working on it. Looks like it may be a while before they get it working, though.

Re:Apples and oranges (2, Informative)

tzanger (1575) | about 10 years ago | (#10578788)

I guess it's kind of humorous then that PostgreSQL beats the pants off of MySQL in any kind of moderate DB usage. MySQL can do a damn fine job for simple INSERTs and SELECTs but throw a hundred users at it or a few WHERE or ORDER BY clauses (or all of the above) and MySQL shows its true colours: Made by Fischer-Price. Throw in complex queries including subselects or try using views and... oh right, I forgot... It's not got any kind of real relational power behind it... my mistake!

Re:Apples and oranges (0)

Anonymous Coward | about 10 years ago | (#10578799)

Really now, MUST your sig say, PhD?

Re:No Thanks (1, Flamebait)

gnuLNX (410742) | about 10 years ago | (#10578583)

Hum....I manage our companies 4.5 million compounds database which contains ~4.5 million rows, and about 250 collumns in the laregest table. The entire database has roughly 40 tables....I have never had an issue with data integrity...granted my experience certainly can not be extrapolated to all environemets, but I can say that if I was given the authority...our $100,000 oracle system would be gone in a heart beat....waste of money with something as nice as MySQL out there. IMO

Re:No Thanks (1)

turboflux (781551) | about 10 years ago | (#10578634)

I guess there is a reason you don't have the authority to do that then.

Re:No Thanks (2, Funny)

gnuLNX (410742) | about 10 years ago | (#10578742)

guess so. All us stupid mysql people...like the guy's running yahoo finance...must not have any clue what we are doing.

say what you will but for our companies needs I guarantee you that MySQL is more than suffecient...we don't have a lot of changes on the db....plain and simple...a waste of money!..

But then you propbably know more about my companies db than I do so I will shut up now.

Re:No Thanks (0)

Anonymous Coward | about 10 years ago | (#10578770)

If some data is lost at yahoo finance, it's ok -- nobody's paying them for it, no orders are being processed, etc. MySQL is great for that sort of thing.
If you need some real integrity, it just doesn't fit the bill.

Re:No Thanks (2, Insightful)

AKAImBatman (238306) | about 10 years ago | (#10578835)

For a moment there, I thought you meant that Yahoo was processing company financial data with MySQL. Then I realized [mysql.com] that they use it just for displaying market data and the like.

Give me a heart attack, why don't you?!

Re:No Thanks (2, Insightful)

fitten (521191) | about 10 years ago | (#10578836)

Unfortunately, a lot of folks who think they know a lot about databases really don't. They don't know when MySQL is sufficient or not because they don't understand what databases need to do and/or provide. Most wouldn't know the difference between MySQL, a big honkin text file, and a real RDBMS like Oracle. To them, they are jsut all places to fling a bunch of data to query back later. Most wouldn't know what transactions really are or when you should use them, although if you ask them, they'll assure you that they don't need that "overhead" in their problem.

High Performance? (1, Funny)

Anonymous Coward | about 10 years ago | (#10578066)

High Performance MySQL, published by Oxymoron Press, Inc.

Re:High Performance? (0, Redundant)

Ulic (6715) | about 10 years ago | (#10578085)

HA

Re:High Performance? (4, Insightful)

JAgostoni (685117) | about 10 years ago | (#10578201)

I find MySql to be very high in performance when queries are written concisely and correctly. Heck, I have seen (and written) some Oralce PL/SQL that has horrific performance just to rewrite it concisely and correctly and have it perform very well indeed.

The engine is only going to run as good as the crap you (developers) put into it. I would go so far as to say the simply due to the pervasiveness of MySql there are for more horrible script examples out there than for PostgreSQL.

Personally, I use to correct tool for the job. BLOG? Hell ya use MySql. OLAP? Hell no. But you could make it work and work well if you wanted to.

Re:High Performance? (1)

JAgostoni (685117) | about 10 years ago | (#10578472)

-1 Overrated? You, Mr. Moderator, must have been offended by "writing bad SQL" remark...

Re:High Performance? (1)

Ulic (6715) | about 10 years ago | (#10578563)

Yes, but I'm an old, third post troll. Check out that user number!

Re:High Performance? (2, Funny)

JAgostoni (685117) | about 10 years ago | (#10578700)

In this case you're a third reply troll. Ha ... ha ... ha... but seriously folks, I'm here all night. Try the veal.

I would never use MySQL for anything (0, Flamebait)

Anonymous Coward | about 10 years ago | (#10578089)

Except maybe for throwaway blog sites. If my blog site crashes, so what?

MySQL - I smell flames? (5, Funny)

strictfoo (805322) | about 10 years ago | (#10578099)

I'm going all out here.

MySQL is better than PostgreSQL
Redhat is better than Debian
Windows XP is better than MAC OS X
Bush is better than Kerry
Conservatives are beter than Liberals
Americans are better than Europeans

etc. etc. etc.

Re:MySQL - I smell flames? (1, Interesting)

Anonymous Coward | about 10 years ago | (#10578169)

Really, either the fourth or fifth item on the list would, with VERY high probability, imply all the rest but the first.

Your list has an actual information content of roughly 2.4 items, as opposed to 6.

Re:MySQL - I smell flames? (4, Funny)

LoveMuscle (42428) | about 10 years ago | (#10578386)

Bah.. You forgot..

Emacs is better than vi
Abortion is a woman's right
Gun control means using both hands
Christianity sucks, the bible is just a book

Re:MySQL - I smell flames? (0)

Anonymous Coward | about 10 years ago | (#10578643)

The last three items are 100% correct (especially the last one), the first three are 100% wrong.

Oh I've heard of this (4, Funny)

Exmet Paff Daxx (535601) | about 10 years ago | (#10578102)

Indeed, PostgreSQL is awesome.

GNAA announces victory over mbonig (-1, Troll)

Anonymous Coward | about 10 years ago | (#10578124)

GNAA announces victory over mbonig

GNAA freedom fighters attack mbonig into submission

Cakedrink KillsPics - Sinclair Broadcasting Correspondent

In the GNAA's continued effort to combat mindless idiocy, blogging, and bigoted oppression of gay nigger rights, GNAA member Penisbird has announced victory over mindless slashbot and blogger [blogspot.com] mbonig.

In true Hitlerian fashion, mbonig wanted to deny freedom speech to gay black men under the guise of his own nazi-esque values of censorship. "Gasgaynigs", mbonig was quoted as saying to a swooning crowd of neo-nazis ready for a golden shower of his drivel.

GNAA member Penisbird, who is considered of one of the most gifted and intelligent members, according to the GNAT or Gay Nigger Aptitude Test, excellently crafted his arguments against the nazi, as shown here [slashdot.org] , and was able to counter every point with concise and irrefutable facts. In the usual Slashdot hypocrisy, anyone who fights for the legitimate rights of the unpopular is considered a troll and this thread was no different.

The tragic defeat on Slashdot forced mbonig to retreat to his blog [blogspot.com] and admit that the GNAA's posts are free speech (unlike what he said earlier) while at the same time slandering Penisbird's impeccable character. Penisbird does not tolerate such insolence and proceeded to attack his wretched blog.

In the most skilled fashion, Penisbird proceeded to flood his blog as a form of legitimate protest. Like an relentless flood of nigger cocks, Mbonig (which is an intentional slur against niggers) tried to squelch the massive flood of protest posts by deleting hundreds of comments but could not keep up. His next step was to disable commenting for a couple of days. The very morning he restored comments and declared that by requiring logins, the attacks would cease. Wrong. Penisbird was on the attack and continued the assault.

After the morning offensive, mbonig quickly and embarrassingly disabled comments, declaring that "script kiddies" (the scripts in question consist of Microsoft Internet Explorer and the refresh button) do not deserve the same free speech rights he enjoys. However, Penisbird was victorious in that he caused mbonig to permanently disable comments. Penisbird vows to keep up the assault on his Slashdot posts and anywhere else he tries to oppress free speech rights online.

mbonig claims that he is not hiding who he is. Really? What is your last name? Where do you live? Oh, it seems that you are hiding who you are. Hypocrite.

About mbonig:

mbonig is a mindless Slashbot and blogger [blogspot.com] who constantly tries to oppress free speech online. He is a known neo-Nazi and supports the gassing of Gay Men of African Descent.

Mbonig is currently offering gmail invites, You may partake his invitation below:
https://gmail.google.com/gmail/a-b0ab39f1a8-51723 [google.com]

About GNAA:

GNAA
(GAY NIGGER ASSOCIATION OF AMERICA) is the first organization which
gathers GAY NIGGERS from all over America and abroad for one common goal - being GAY NIGGERS.

Are you GAY [dickcream.com] ?
Are you a NIGGER [mugshots.org] ?
Are you a GAY NIGGER [gay-sex-access.com] ?

If you answered "Yes" to all of the above questions, then GNAA (GAY NIGGER ASSOCIATION OF AMERICA) might be exactly what you've been looking for!
Join GNAA (GAY NIGGER ASSOCIATION OF AMERICA) today, and enjoy all the benefits of being a full-time GNAA member.
GNAA (GAY NIGGER ASSOCIATION OF AMERICA) is the fastest-growing GAY NIGGER community with THOUSANDS of members all over United States of America. You, too, can be a part of GNAA if you join today!

Why not? It's quick and easy - only 3 simple steps!

  • First, you have to obtain a copy of GAY NIGGERS FROM OUTER SPACE THE MOVIE [imdb.com] and watch it. (You can download the movie (~130mb) using BitTorrent, by clicking here [idge.net] .
  • Second, you need to succeed in posting a GNAA "first post" on slashdot.org [slashdot.org] , a popular "news for trolls" website
  • Third, you need to join the official GNAA irc channel #GNAA on irc.gnaa.us, and apply for membership.
Talk to one of the ops or any of the other members in the channel to sign up today!

If you are having trouble locating #GNAA, the official GAY NIGGER ASSOCIATION OF AMERICA irc channel, you might be on a wrong irc network. The correct network is Niggernet, and you can connect to irc.gnaa.us as our official server.

If you have mod points and would like to support GNAA, please moderate this post up.

.________________________________________________. fucking
| ______________________________________._a,____ | CmdrTaco
| _______a_._______a_______aj#0s_____aWY!400.___ | will
| __ad#7!!*P____a.d#0a____#!-_#0i___.#!__W#0#___ | he ever learn that
| _j#'_.00#,___4#dP_"#,__j#,__0#Wi___*00P!_"#L,_ | GNAA is totally
| _"#ga#9!01___"#01__40,_"4Lj#!_4#g_________"01_ | unstoppable? Teamed
| ________"#,___*@`__-N#____`___-!^_____________ | up with the other troll groups,
| _________#1__________?________________________ | GNAA will absolutely own
| _________j1___________________________________ | the shitty place that is slashdot.
| ____a,___jk_GAY_NIGGER_ASSOCIATION_OF_AMERICA_ | Just remember, the longer the lines are,
| ____!4yaa#l___________________________________ | the smaller CmdrTaco's penis.
| ______-"!^____________________________________ | This logo is (C) 2003, 2004 GNAA [idge.net]
` _______________________________________________'

(C) GNAA 2004

Sometimes MySQL indexes are bad... (2, Interesting)

xxxJonBoyxxx (565205) | about 10 years ago | (#10578136)

Sometimes MySQL indexes are bad. For example, if you infrequently do lookups based on an index but you often add or remove many records from a database, an MySQL index can actually hurt performance.

I hope there's something about that in the book...but then again, this is 2004. Who still reads (non-electronic) books about technical topics?

Re:Sometimes MySQL indexes are bad... (5, Insightful)

Atzanteol (99067) | about 10 years ago | (#10578175)

That's true of all databases (not just MySQL). Inserting to a table that has an index requires a cost to index the new data.

Re:Sometimes MySQL indexes are bad... (0)

Anonymous Coward | about 10 years ago | (#10578200)

"if you infrequently do lookups based on an index"

Umm, why would you do this? That's what indexes are FOR, goofball.

Re:Sometimes MySQL indexes are bad... (2, Informative)

InsaneCreator (209742) | about 10 years ago | (#10578444)

Umm, why would you do this?

Because using an index requires random data access which is more expensive than sequential access. There is a point where doing an index scan takes more time than just going over all the records in a table (example: small tables, condition matches many rows, etc). Any sane query planner should/will choose the faster method.

Re:Sometimes MySQL indexes are bad... (1)

smclean (521851) | about 10 years ago | (#10578206)

If the book addresses topics so severely obvious (and covered in the MySQL documentation) as this, I would be pretty disappointed.

Of course indexes can hurt performance. If not, you would just make every field in a table an index.

Hopefully this book is made for people who know this already...

Re:Sometimes MySQL indexes are bad... (-1, Troll)

Anonymous Coward | about 10 years ago | (#10578232)

I would like to kick you in the testes.

Re:Sometimes MySQL indexes are bad... (1)

KenBot_314 (744719) | about 10 years ago | (#10578223)

This doesn't just apply to MySQL. This is actually how indexes work. More work for adds/deletes, but less work for querys using the indexes.

Your scenario would cause performance problems in any database.

Re:Sometimes MySQL indexes are bad... (0)

Anonymous Coward | about 10 years ago | (#10578226)

congrats, you just covered day 3 of a begining database design class.

that is true of all databases, if you tell it to index something you don't use, it is just unwanted overhead.

much like how Windows indexes your files for you, but if you don't use their search feature much, it's just something your computer wastes time doing (usually during disk defrag or scan disk if your like me)
or Linux/Unix's locate
i imaging MacOSX does something like it too, but i don't know.

Re:Sometimes MySQL indexes are bad... (1)

kylector (650096) | about 10 years ago | (#10578749)

MacOS X has locate just like Unix. And a content-indexer for their content searching, but I've never used it since they introduced it about 5?? years ago in OS 8, I think.

It Sounds Pretty Basic (3, Insightful)

cowgoesmoo2004 (762366) | about 10 years ago | (#10578174)

Okay, as an industry professional, I tire of books calling themselves "for professionals". Don't most professionals already know about index types and choosing their usage? If they don't, why are they calling themselves professionals.

The important thing is, does it tell you how to set up and manage highly distributed system managing gigabytes of data under high transaction volumes?

If it doesn't, and just discusses the general issues to consider under such conditions, it is worthless for those that are already professionals. Professionals know how to consider these things, they just want concrete examples so they don't have to spend months of reading and tinkering to figure it out on their own.

Unfortunately, reading the review above doesn't even let me know whether or not the book has anything in it at a level that I might want. However, if I was writing the review I'd probably order the paragraphs differently and use some different words. That might just be personal preference.... :p

Re:It Sounds Pretty Basic (2, Interesting)

smclean (521851) | about 10 years ago | (#10578256)

The important thing is, does it tell you how to set up and manage highly distributed system managing gigabytes of data under high transaction volumes?
The article did mention that it covers some related issues: "Other chapters within High Performance MySQL include chapters on server performance tuning, replication, load balancing, and high-availability, backup and recovery, and security."

But I agree, the review doesn't give any indication whether the book spends all its time repeating whats already available in the MySQL manual, or giving the reader new ideas and insight into 'professional' MySQL optimization.

Re:It Sounds Pretty Basic (5, Interesting)

Anonymous Coward | about 10 years ago | (#10578270)

Maybe, but understand that some of us who are MySQL admins may have been thrust into that position as a result of our jobs and not necessarily because we were trained on databases.

My background is in Electrical Engineering, but as part of my duty I am in charge of maintaining our company's data base. I'm probably the most qualified person here to do it too; but my knowledge of databases doesn't extend much farther than select/insert/update. Sound to me like this book could help me learn a thing or two about what I'm "administrating".

Re:It Sounds Pretty Basic (1, Funny)

amorsen (7485) | about 10 years ago | (#10578273)

The important thing is, does it tell you how to set up and manage highly distributed system managing gigabytes of data under high transaction volumes?

I believe you missed something. The book is about MySQL.

Re:It Sounds Pretty Basic (1, Interesting)

AKAImBatman (238306) | about 10 years ago | (#10578379)

Okay, as an industry professional, I tire of books calling themselves "for professionals". Don't most professionals already know about index types and choosing their usage?

More importantly, what self-respecting professional would be caught dead using MySQL?

No data integrity
Completely non-standard SQL
No extensibility in the engine (functions, stored procedures, etc.)
No subselects
Weird handling of '0' vs. null
etc.

Back when MySQL was created, it was a great option for when you needed a simple database to store non-critical data. But then everyone decided that MySQL was super-1337 and that all other databases were simply part of "the evil empire".

As a result, REAL alternatives like PostgreSQL were just ignored when they came on the scene. After all, you have to perform *gasp* maintenance on Postgres! *sigh*

Re:It Sounds Pretty Basic (1)

coene (554338) | about 10 years ago | (#10578456)

I don't use MySQL for valuable data. But I do consider myself a professional, and I do use MySQL for "convenience records" - data that is merely a cache, or set of aggregate data that can be regenerated easily, and has to be queried a LOT (thousands of times per second). MySQL fits the bill here. Postgres, the database we use for the rest of our needs, couldn't handle so many queries without having locking issues.

Sometimes the lack of caring about data integrity (and therefore using less locks on a high-UPDATE table) can be good. To each their own.

Re:It Sounds Pretty Basic (3, Informative)

ViolentGreen (704134) | about 10 years ago | (#10578504)

No subselects

That is huge. I used MySQL about 6 months ago (though it wasn't the most recent version.) I was very disappointed. I use subqueries extensively. Since these were not available, I ended up with messy and slow joins.

The non-standard SQL isn't too bad to figure out as long as you have google. There needs to be a SQL translator java applet or something.

In addition, the version that I used didn't support views. Is this fixed now?

Regardless, I gave it a chance. The next time I need database services for personal use I'm going with PostgreSQL.

Re:It Sounds Pretty Basic (0)

Anonymous Coward | about 10 years ago | (#10578640)

Stored Procedures and subselects are both addressed in later versions.

Re:It Sounds Pretty Basic (4, Informative)

ca1v1n (135902) | about 10 years ago | (#10578688)

Sounds like you've been using PostgreSQL for quite a while, since your criticisms generally apply to rather old versions of MySQL. I hate all databases with equal passion, so I figured I ought to set the record straight.

No data integrity

MySQL has a modular design, allowing you to use any of several database backends, each with different design priorities. If data integrity is a priority for you, RTFM and pick the right backend.

Completely non-standard SQL

This is true of pretty much all DBMS's. MySQL's development cycle is quite delightfully quick, meaning that if people want certain features added, it doesn't take long to get them added.

No extensibility in the engine (functions, stored procedures, etc.)

Ummm... MySQL has those.

No subselects

Yes it does, as of version 4.1. It's not their fault if you're more than a full release behind.

Weird handling of '0' vs. null

The special handling of null forces you to write slightly less braindead code. This kind of handholding is becoming popular in the design of modern programming languages like Java and C#, with the recognition that the later in your development cycle you find a bug, the more it costs to fix it. Of course, there are still times when the programmer needs very explicit control, like when writing an OS kernel or a device driver. If you're writing an OS kernel or a device driver in MySQL, you've got bigger problems.

Re:It Sounds Pretty Basic (2, Insightful)

cft_128 (650084) | about 10 years ago | (#10578725)

Those who have no choice and use open source projects that use it (e.g. www.ensembl.org) and/or those who deal with mostly read-only databases. Its not as bad as you make it out to be, and is good for some projects.

It is generally faster than Postgres,

It handles large datatypes more easily than Postgres (although Postgres, while odd, has some more flexibility)

Postgres has an odd 8k limit per row (probably fixed by now though)

Supports selects across databases.

It has good replication support (with 4.x and later)

Comes with some good admin tools in the normal distro.

Decent full text indexing out of the box

It is really about choosing the right tool for the job, each has their advantages and disadvantages.

Re:It Sounds Pretty Basic (2, Insightful)

fatboy (6851) | about 10 years ago | (#10578805)

As a result, REAL alternatives like PostgreSQL were just ignored when they came on the scene. After all, you have to perform *gasp* maintenance on Postgres! *sigh*

When PostreSQL came on the scene I attempted to use it, but there was little in the way of documentation. I went the MySQL route for my little database projects because it had better docs at the time. I never decided MySQL was "1337" and that all other databases were "evil".

It had good docs, was cheap, and was good enough to get the job done.

MySQL, if you can read this, your using it right now.

Re:It Sounds Pretty Basic (1)

tijnbraun (226978) | about 10 years ago | (#10578851)

Just curious. What kind of maintenance do you on your Postgresql database?

I have (I think) put the following things in cron:
Vacuum full in the weekend.
Analyze every night.
Reindex once a week.
Cluster every night.
And I have the vacuum daemon Running.
(And a backup every night)

Are there any things I should do manually?

I can't find any good postgres books about these issues. Ok, the newsgroups are ok, but a book would be still welcomed.

(I have two postgresql books, but both of them don't really tell things I'm think are interesting (specially the oreilly really stinks)

Re:It Sounds Pretty Basic (4, Informative)

shirai (42309) | about 10 years ago | (#10578413)

The answer is yes it does show you how to setup massive high transaction systems.

Up until I picked up this book, I was not comfortable with using MySQL for the extremely high performance apps I have to write. Yes, they are web-based (meaning they fit into the MySQL appropriateness factor) but things like backups and scalability really scared me off of it.

This book talks about indexes but doesn't focus on them as the magic bullet. Rather it is very specific with lots of need to know items of importance.

Some things that it covers are:

1. How to setup replication with different architectures including master/slave, master/slave/slave (another level), replication rings, dual master replication with slaves and more.

2. RAID (software vs. hardware), RAID types, IDE vs. SCSI. I know. I'm sure you've thought of these things already but most people will find something new here because there is a lot on it. It is quite dense.

3. Selection of an OS. Seriously. It actually compares threading models on OSes compared to performance with MySQL. This is great stuff.

4. Selection of a filesystem on an OS. Yes, nitty gritty. Includes talk about journaling vs non-journaling benefits and warnings.

5. Load balancing mySQL. How to do this through a load balancer. Why and how it's different than load balancing web servers.

6. How to backup live using replication.

7. I love this: Detailed information on how the replication system actually works. I love understanding the inner workings because then I know how/why things went wrong.

8. The benefits of myISAM/InnoDB table types including how they store/retrieve data, the features available, etc.

I've been optimizing databases for web use for some time and this isn't a book you should be tired of because it claims "high performance." Okay, maybe I'm a geek, but this book kept me up at night figuring out how I should be architecting a system.

Re:It Sounds Pretty Basic (1)

cowgoesmoo2004 (762366) | about 10 years ago | (#10578516)

Perhaps you should consider writing a book review... especially if you could whip this reply off in a matter of minutes.

I can only imagine if you spent the time to fill out some detail for each of the "bullets" you raised. Then it would be easy for a prospective purchaser to know if the book had something to offer to them.

Re:It Sounds Pretty Basic (1)

shirai (42309) | about 10 years ago | (#10578802)

Well since you asked for it and it was a nice comment, here are some more bits (but regrettably no full review).

1. Comparison of storage engine features (e.g. myISAM, InnoDB, BDB and Heap) including lock granularity, file split-up, referential integrity, caching, compression, etc.

2. RAID MyIsam Table for overcoming OS file size limitations.

3. Benchmarking strategies including how to write custom benchmarks useful to you.

4. Indexing structures: B-tree, vs. hash vs. the geographic R-tree indexes. Of course info on the MyISAM only Full-text indexes and its limitations (e.g. no stemming). Talks about how indexes are selected for use and how statistics comes into play for how they are selected and what you have to watch out for. Also how to reword queries to take advantage of indexes that might not otherwise be used.

5. Some great stuff like how the Query Cache works. For example, it only looks at the first characters first. So if you have lots of whitespace before your "SELECT", it won't use the query cache. Good stuff to know.

6. How to use hinting for indexes.

7. How to buy hardware. CPU, memory, RAID, etc. ... Ah crud. I have to go but there is actually more. Anyways, worth picking up.

Re:It Sounds Pretty Basic (1)

boaworm (180781) | about 10 years ago | (#10578843)

1. How to setup replication with different architectures including master/slave, master/slave/slave (another level), replication rings, dual master replication with slaves and more.

Simple, just read a few pages on the MySQL documentation. [mysql.com]

2. RAID (software vs. hardware), RAID types, IDE vs. SCSI. I know. I'm sure you've thought of these things already but most people will find something new here because there is a lot on it. It is quite dense.

What on earth does this have to do with MySQL specifically? And furthermore, if you dont know about _RAID_, and need to be told the benefits of SCSI/Raid, do you really think you need MySQL clustering ? Any PC/Server with enough ram will push queries like a maniac. Also, check #4...

3. Selection of an OS. Seriously. It actually compares threading models on OSes compared to performance with MySQL. This is great stuff.

Great, now that i've bought this book, i'm supposed to _CHANGE_ OS in my server farm, just to gain a few more queries/sec ?

4. Selection of a filesystem on an OS. Yes, nitty gritty. Includes talk about journaling vs non-journaling benefits and warnings.

Filesystems? Oboy, anyone who knows about SQL performance knows that if you access _DISK_ during execution, you are screwed anyway.

5. Load balancing mySQL. How to do this through a load balancer. Why and how it's different than load balancing web servers.

This seems like a decent chapter.

6. How to backup live using replication.

DOH! We are talking backup here, right? Backup means archiving a copy of the database. MySQL allows you to use the magic command "cp" (or scp, or rsync, or..) Best # so far ...

7. I love this: Detailed information on how the replication system actually works. I love understanding the inner workings because then I know how/why things went wrong.

The updated node sends commands to the other machines to update as well. If something goes wrong, you could rollback the transaction.

8. The benefits of myISAM/InnoDB table types including how they store/retrieve data, the features available, etc.

This one could be interesting as well.

I dont mean to troll here, but most of those #s are either offtopic or irrelevant. To create a high-performance *SQL database, just have enough ram, ie, _NO_ disc access except for sporadic logging etc. Furthermore, it's title is "High Performance MySQL", so what we are interested in are what bottlenecks we might run into with MySQL specifically, not stuff like disc/raid. Tell me about some of the quirks with indexing, tell me how to tune threads, how to determine good from bad queries, how to monitor performance.

If you need clustering for some reason, just create a low latency backbone for master/slave connections. It's easy to configure, just read the docs.

Re:It Sounds Pretty Basic (0, Flamebait)

kfg (145172) | about 10 years ago | (#10578416)

If they don't, why are they calling themselves professionals.

Because they get paid for their misinformation.

KFG

Re:It Sounds Pretty Basic (1)

Godeke (32895) | about 10 years ago | (#10578429)

As someone who hires "industry professionals" I have to say that I'm not surprised that there are people out there claiming to be such and not knowing about index types. Heck, a good number of programmers think data storage equals flat files or if they are trendy XML DOM dumps. I have a friend graduating (BS) this year, with a whopping single database class under his belt, so the schools aren't teaching databases. I have had interviews with people who answer "how would you implement a many to many join in ANSI-SQL" with a blank stare (for a DATABASE position, mind you).

No, I don't feel these people are professionals, but they insist upon calling themselves such and prefer to purchase books that say "for professionals" rather than "for dummies".

Re:It Sounds Pretty Basic (2, Informative)

dprust (316840) | about 10 years ago | (#10578602)

Let's be fair -- technology is a very broad subject and nobody can know everything. A lot has to do with how a professional programs with a database. For example, a person may write applications that use an existing database for years, learning all kinds of complex queries and techniques without ever having the access to create an index. A professional is really one who gets paid to do something. I think a person who knows at least 80% of everything there is to know about a specific topic like MySQL would be called an "expert" instead.

I totally agree on those books. When I'm going to look for a book and see the word "For Dummies", I think, "Hey, I'd be a dummy if I /wasn't/ looking to learn!"

Check your SQL.... (4, Informative)

tcopeland (32225) | about 10 years ago | (#10578207)

...before blaming MySQL! Ha ha!

Er, anyhow, as an apology, here's an open source SQL analyzer [postgresql.org] .

Re:Check your SQL.... (1)

JAgostoni (685117) | about 10 years ago | (#10578228)

I actually just submitted a comment in total agreement. Same goes for PHP or any other script/programming language out there that is widespread. People can write some scary code and then just blame it on the engine.

Re:Check your SQL.... (4, Informative)

tcopeland (32225) | about 10 years ago | (#10578488)

> People can write some scary code and then
> just blame it on the engine.

Yup. There's a really good article by Stephane Faroult on OnLamp about writing better SQL... it's right here [onlamp.com] .

After reading that article, I went through some code I'd written and found some places where I was using DISTINCT incorrectly in exactly the way he described.

Re:Check your SQL.... (1)

JAgostoni (685117) | about 10 years ago | (#10578668)

I cannot count the number of times a DISTINCT has burried a flaw in some SQL of mine and developers on my TEAM. Now I give people a slap on the wrist during code reviews for using DISTINCT when not absolutely necessary.

Nearly worthless review (2, Informative)

stevewz (192317) | about 10 years ago | (#10578277)

This review didn't really tell me anything that I couldn't have gleened by simply reading the Table of Contents. I get the impression the author either didn't actually read the book or he was too lazy to write more detail.

Having said that, I'm intrigued by the title and will probably investigate the book anyway simply because it's a topic that directly pertains to some upcoming projects on my calendar.

mysql backup (4, Interesting)

InsaneCreator (209742) | about 10 years ago | (#10578284)

I see one of the topics covered is backing up data. Would somebody care to explain how to make a consistent backup of a mysql database?

Plain mysqldump does not export consistent data across tables. While you could lock all tables for the duration of backup, that's not likely going to be possible if you're aiming for "high performance". Mysqlhotcopy only works for myisam tables and simply tar-ing up data files is just asking for a disaster to happen. So how do you make a consistent backup without setting up a dedicated replication slave for this purpose?

(No, this is not a troll; I am in fact looking for a good way to back up mysql data on my server)

Re:mysql backup (2, Informative)

smclean (521851) | about 10 years ago | (#10578412)

I'm stepping out on a limb here, but I think you will end up having to lock all tables to make a real consistent backup of your database where all tables relational data is gauranteed intact.

I've never had to do this but your problem interested me. Think about it, how could you possibly make the database spit out a perfectly frozen-in-time set of tables without actually freezing in order to make the set?

It's not like you'd be able to tell the database "Make me a backup of the database as it was at is right now, at 12:45:23.183848!" and the database could continue modifying the content of the tables while still producing for you a perfect backup. Even things programmed into the database to perform an action like this would take as much overhead as locking the tables first anyway, right?

The replication slave would work, though.

Re:mysql backup (1, Informative)

Anonymous Coward | about 10 years ago | (#10578520)

It's called Multi Version Concurrency Control. It's what databases like PostgreSQL and Oracle use to do just this.

Most databases do this one way or another. Those that don't have MVCC use the transaction log to achieve the same result, though you can (AFAIK) onlyl do a binary dump of the pages in the database in that case. Wherease MVCC lets you do a logiacal dump.

Re:mysql backup (1)

smclean (521851) | about 10 years ago | (#10578690)

*limb breaks*

Yeah, you are right, I've never heard of MVCC, but the transaction thing makes perfect sense to me.

I should have realized we'd left my area of expertise when the guy said he wasn't using MyISAM tables.

Re:mysql backup (1)

phobonetik (522196) | about 10 years ago | (#10578448)

Know what you mean. We just do the 'fastest' options for mysqldump for a database, and given our systems (content managed sites) are (almost exclusively) used by businesses within a single country, this happening at 5am has proved to work, without hiccups, for several years. Given the backups occur on a daily basis, it doesn't seem to be much different that you've come up with a bit of data that is inconsistent amoung tables to where we've plain lost a several hours data,it now being half way through the day. Our "important" data (bookings, payments, sign-ups) etc are emailed as a backup to general disaster, and are useful in this case. Obviously this doesn't scale, but we don't need it to currently.

Re:mysql backup (1)

ArsonSmith (13997) | about 10 years ago | (#10578521)

What we have started doing was using netfilers and putting the dbs in hotbackup mode and snap shotting them. then do what ever kind of backups we need on the snapshot. Linux LVM now supports snapshot so I am looking into doing this locally as well.

Re:mysql backup (4, Informative)

fingon (114710) | about 10 years ago | (#10578544)

Check out LVM2 and snapshots.

In principle, using LVM 2 system it's easy. Get database to consistent state on disk, take LVM snapshot of the logical volume involved, resume database, run dump on the snapshot, take out the snapshot when no longer needed.

Beauty is that the size of snapshot is size of delta that is caused during the backup; therefore, this is practical for almost any sized database.

Re:mysql backup (5, Informative)

shirai (42309) | about 10 years ago | (#10578561)

Actually, lack of live backups was one of my biggest fears with using MySQL as well and the book actually does address this.

The caveat: You need to set up replication. This is a good idea anyways for a high performance system in case the master crashes and you need another system available quickly.

It works like this:

1. Set up replication.
2. Do a locked table backup on the slave.

The nice things are the details like how the new version of MySQL uses two threads on the slave. One to copy the transactions to the local drive and the other to apply the transactions. Because of this, your local transaction log is up to date even if the transactions haven't been applied which subsequently means you don't have missing transactions if there is a crash on the master during the backup.

This is seriously a good book. Okay, you might want to use PostgreSQL for its feature set but if you are doing write few read mostly with the web as the application, this book seriously gives you the confidence to use MySQL. Up until I read this book, I didn't know enough about MySQL performance implications to trust it for scalability. Now I know what I need to do to get it.

Move the problem away (3, Informative)

wowbagger (69688) | about 10 years ago | (#10578653)

Just as in maths transforming the problem to a new domain might make it easier to solve, perhaps there is an easier way for you to solve this problem:

Put your MySQL data onto a Logical Volume Manager volume. Use the LVM snapshot mechanism to insure a consistent view of the data during backup. Here's how:

Create an LVM physical group with enough space to contain all your database, plus enough overcapacity to store any changes during the backup proceedure. So, let us say your database contains 10G of data, will take 10 hours to back up, and will, during that time, undergo revision to about 1G of that data - you create a PV of 11G or more.

Next, create a logical volume big enough to store your data - in the case of the numbers above, create a 10G logical volume. In that volume create your file system, and set up your database.

Now, when you wish to do a backup, lock out access to the database, and do a snapshot of the logical volume it is on. Then restore access to the database. This won't take very long at all.

Mount the snapshot read-only and back it up. If you need to back up through the MySQL, bind a server onto the read-only data.

Then release the snapshot.

During the time the snapshot exists (in this example, the 10 hours to do the backup), the real, live read/write file system may be updated as desired, as long as the total differences between it and the snapshot do not exceed the reserve capacity of the physical group - in the case of the example numbers above that would be 1G of total differences (NOT 1G of writes - change the same 1k record a billion times and it is still a 1K change).

That's one of the reasons the Big Boys (like Sun) pooh-poohed Linux - it did not have LVM. Now it does.

Re:Move the problem away (1)

InsaneCreator (209742) | about 10 years ago | (#10578764)

Interesting stuff. I wasn't aware of such functionality being available under Linux. Thanks to everyone who suggested LVM.

Re:mysql backup (1)

itchomatic (591733) | about 10 years ago | (#10578726)

For our InnoDB stuff, InnoDB Hot Backup (http://www.innodb.com/order.php [innodb.com] ) was the only thing I could find that seemed to fit the bill.

It's not perfect (it does lock the tables for a few seconds at the tail end of the backup), and it costs money... but I guess it all depends on how important that consistent backup is for you.

We actually ended up doing both a hot backup and a replicated copy to another server. We use mysqldump on the replicated copy to produce a consistent dump file that can be used in the event that anything happens to our binary backup. It's also nice having a server we can quickly failover to in case the core one blows up.

Re:mysql backup (1)

perler (80090) | about 10 years ago | (#10578838)

i do it with replication. i have another server connected to the main server and changed 3 lines in each servers my.cnf according to http://dev.mysql.com/doc/mysql/en/Replication.html - it takes minutes and afterward you can easily shut down and restart the backup mysql server to backup things the way you like..

PAT

How does Yahoo! Finance use MySQL? (5, Interesting)

HerculesMO (693085) | about 10 years ago | (#10578291)

In what type of application do they use it? I would not imagine as a primary database, do they?

Re:How does Yahoo! Finance use MySQL? (5, Informative)

Anonymous Coward | about 10 years ago | (#10578394)

Why not? Yahoo finance has been using MySQL for the last four years [mysql.com] .

"Yahoo! uses the MySQL database to power many of the services on Yahoo! Finance (finance.yahoo.com), a popular web site that provides the full spectrum of financial services and information. MySQL is behind Yahoo! Finance's high-traffic area of news headlines, which is aggregated from over 100 sources worldwide, as well as its stock charts, insider trading, SEC filings, conference calls and earnings reports, among others. "

"Prior to its switch to MySQL in 2000, Yahoo! Finance managed its database needs through homegrown flat files and Berkeley DB databases. But those solutions proved to be inflexible and not scalable enough for their needs, with the volume of data nearly doubling every few months. "Our needs vary considerably, and that is one reason that MySQL works well with us. It handles the high-volume, 260 million record tables just as well as the small, low-volume ones. One of our servers handled over a quarter of a billion queries in a month-and-a-half, and it still has capacity to spare.""

"Since Yahoo! Finance started using MySQL, the database's popularity has grown within the company, and many of Yahoo's other world-wide properties are now using MySQL too. "We have used MySQL far more than anyone expected," stated Zawodny. "We went from experimental to mission-critical in a couple of months. Once others saw it, they jumped on board.""
---

I wonder why many people here hate MySQL even when it has been proven to be a very competitive database. Is it because MySQL is a foreign product?

Re:How does Yahoo! Finance use MySQL? (1)

HerculesMO (693085) | about 10 years ago | (#10578577)

Hey, I was just curious :)

I am not one to judge whether MySQL is inferior or superior to any given database.. all I know is that for my needs (my website) it's free, it works, and doesn't seem slow but then again, I only get ~5-7 million hits a month... not daily :)

Re:How does Yahoo! Finance use MySQL? (1, Insightful)

Anonymous Coward | about 10 years ago | (#10578578)

Its because it has proven to be very competitive compared to text files and berkeley DB. Mysql is great at exactly this, replacing simple text based data management with basically the same thing only with an SQL interface. It doesn't compare to actual databases though, like oracle, db2, mssql and pgsql.

Re:How does Yahoo! Finance use MySQL? (1)

gnuLNX (410742) | about 10 years ago | (#10578612)

I agree totally....MySQl certinaly works well in our small pharmaceutical company...manages a 4.5 millionm compound database flawlessly.

Re:How does Yahoo! Finance use MySQL? (3, Insightful)

Lazy Jones (8403) | about 10 years ago | (#10578762)

One of our servers handled over a quarter of a billion queries in a month-and-a-half, and it still has capacity to spare.

OK, that explains a lot. 250 mil. queries in 45 days is normal for a small company like us and definetely peanuts for Yahoo - i.e. I'd say that this allows the conclusion that nothing particularly important or demanding (i.e. heavily used compared to Yahoo's overall traffic) is built using MySQL at Yahoo. Just to put this into perspective, a little dual Xeon box here does more than 5 million *INSERTs* every day and a large number of SELECTs (we update each of our currently 2.4 million product prices at between 1 and 20 times per day - the exact number of INSERTs per day is currently unknown to me). We use PostgreSQL 7.4.5 though, so we don't consider this a particularly impressive feat ;-)

Re:How does Yahoo! Finance use MySQL? (0)

Anonymous Coward | about 10 years ago | (#10578841)

I wonder why many people here hate MySQL even when it has been proven to be a very competitive database. Is it because MySQL is a foreign product?

Are you f*cking kidding me? You posted as AC, so I suspect so, but I'll bite...

Of course, we all know that Linus is an red-blooded gun-totin' pure-bred Southerner. Yes indeed... Linux was coded from scratch in the back woods of Alabammer.

Re:How does Yahoo! Finance use MySQL? (0)

Anonymous Coward | about 10 years ago | (#10578494)

In what type of application do they use it? I would not imagine as a primary database, do they?

Translation: "OMGZOR!@!* PoStGrESQL is SOOOOOOO mUcH BeTtEr!@(*) MySqL SuXXorS!!!! I 4m l337!"

Re:How does Yahoo! Finance use MySQL? (1)

phobonetik (522196) | about 10 years ago | (#10578496)

I think a new segment should form on Slashdot, formed by a band of people whose only relation is the fact they oppose MySQL. They can then limit "feedback" by appointing a single person from the segment, as a spokesperson, so that the rest of us can divulge in useful conversations whenever MySQL hits the press on here, and continue to use MySQL happily where it is appropriate (which, is "most of the time") :P

Re:How does Yahoo! Finance use MySQL? (0)

Anonymous Coward | about 10 years ago | (#10578595)

I've read somewhere that they had all but eliminated the use of mysql and went back to using in house developed apps, because it didn't fit their needs.

They're still using it, mind you, but only enough for that press release somebody else posted below to stay on mysql's site.

Unfortunately I can't remember where I've read it or even if that source is to be trusted. :(

I bought it 3 weeks ago... (4, Informative)

ttys00 (235472) | about 10 years ago | (#10578378)

...and was surprised at a two things:

1) The number of typos in the book. Didn't anyone proofread it before it went to print?
2) How many features MySQL lacks. Don't get me wrong, I like it as its fast and easy to work with for web stuff, but I was surprised at how often I read "MySQL doesn't do x yet, but will in version y".

The chapter on replication was worth the cost of the book for me, but I suggest people considering buying the book should wait until the 2nd edition.

Re:I bought it 3 weeks ago... (1)

kannibal_klown (531544) | about 10 years ago | (#10578735)

Yeh,

I've been waiting for VIEWS since forever. It's supposedly in the 5.0.1 Alpha, but I don't install MySQL on my development box unless it's Gamma or higher.

MySQL may lack a lot, but just about the only thing I need that it doesn't have is views.

./Configure (3, Interesting)

tokenhillbilly (311564) | about 10 years ago | (#10578419)

Actually, I would have thought that a section on how to best configure MySQL for particular performance situations would have been very helpful. I have not read the book, so it may very well have such a section, but this posting implied that configuration was assumed to be a non-advanced topic.

Performance Dropoff (1, Interesting)

Anonymous Coward | about 10 years ago | (#10578420)

I'm currently working on a web based intranet app that could most likely contain a lot of data (but only used by a small number of people).

I'm thinking about buying this book (although a professional book with typos worries me).. but it does me no good if running these performance enhancements mean squat once the DB gets over a gig or something. Anyone know where the performance dropoff is?

Re:Performance Dropoff (0)

Anonymous Coward | about 10 years ago | (#10578511)

Anyone know where the performance dropoff is?


Just after installation.

Re:Performance Dropoff (0)

Anonymous Coward | about 10 years ago | (#10578532)

Now how did I know I'd get a poor ass response like this?

Is it April already? (0, Redundant)

eXoXe (157466) | about 10 years ago | (#10578442)

April fools jokes aren't due out for another 6 months!

Read only MySQL, right? (3, Insightful)

esconsult1 (203878) | about 10 years ago | (#10578452)

Is this high performance read only MySQL installations?

The authors certainly could not be referring to a system that has medium to high levels of inserts or updates.

While MySQL is great for reads, it sucks balls with inserts and updates... even with InnoDB, even with gobs of RAM and 15K SCSI hard drives in Raid 0 configurations on Quad Opteron systems.

And what a sucky review too... Nothing about what the book addresses.

My company implemented mysql clustering and failed (3, Interesting)

Serveert (102805) | about 10 years ago | (#10578502)

The read only slave got corrupt and in order to create the replica apparantly you have to pretty much disable the master while it creates a new replica so it was unacceptable.

A deal with the devil? (3, Funny)

ShatteredDream (636520) | about 10 years ago | (#10578525)

In recent news MySQL has defied all industry expectations in its latest performance tests. For the first time, MySQL wrote data faster than a second grader learning to write in cursive.

Industry insiders have hinted that an organization known as Infernal Industries has become a major investor in MySQL. Headed by one Baal Diablos II, this rising star has come to challenge Microsoft and Oracle for the title of most evil corporate entity.

When asked for comment, Mr. Diablos replied "we have 6,000 years of investment experience. We created the modern labor market with our first employees, Adam and Eve. Today, we are becoming the biggest player in IT products thanks to our efforts to bring this formidible experience to the table."

The new, high performance MySQL preemptively versioned at 6.66 comes with a complimentary familiar with no less than 20 years of SQL experience. When asked whether this new round of investment would cause the Roman Catholic Church to divest itself of MySQL products, the Holy See responded that it is strongly looking into PostegreSQL.

Safari Rules (2, Informative)

NardofDoom (821951) | about 10 years ago | (#10578542)

I was just about to run out and buy this, but then I realized that my safari subscription will get me the book for only $20/month.

Best $120/year I've ever spent, that. And it's a tax write-off.

Re:Safari Rules (0)

Kethinov (636034) | about 10 years ago | (#10578659)

I can get free books for using Safari in Mac OS X? Cool!

Re:Safari Rules (0)

Anonymous Coward | about 10 years ago | (#10578704)

Yeah, I made my company buy me one. Had it for a couple years. Fuckers let it lapse though, and now I miss it ever so much.

MySQL Performance (4, Interesting)

rodrigo.avila (797846) | about 10 years ago | (#10578683)

If you need extreme performance in small commercial site, why you need an great and cpu-expensive Referential Integrity? In my opinion, in this case, MySQL is better. Comments?

WhySQL (0)

Anonymous Coward | about 10 years ago | (#10578868)

SQL is generally overkill for a small commercial site in the first place, as is the whole EJB thing, but like Y2K, if it keeps people employed, who am I to argue.

Visual Tools and Algorithms (0)

Anonymous Coward | about 10 years ago | (#10578736)

I came across the replication chapter online, and was pleased with the author's writing style.
Although there are now many visual tools available for MySQL (Query Browser etc) the book explains all the concepts with traditional mysql> command line commands.
This is fine, although I am a big fan of the new visual tools. The authors mention that they will put some chapters in the future versions of this book to show some advanced concepts with these tools.
As far as database performance goes .. I think there are many developers out there who don't have a fundamental understanding of how data structures work. As much as it was a dreaded computer science course, The Analysis of Algorithms and Data Structures has served me extremely well in my professional career. Unfortunately, (or fortunately for me) I have encountered many database architectures and data access strategies which don't take advantage of the organization of the data itself. Even though it is common sense most of the time such as O(log n) access instead of O(n^2) I think a chapter which covers these simple concepts would be in order...

His blog (2, Interesting)

Anonymous Coward | about 10 years ago | (#10578882)

Jeremy has a blog at http://jeremy.zawodny.com/blog/
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?