Posted
by
Hemoson Tuesday April 25, 2000 @10:53AM
from the sturgeon's-law-need-not-apply dept.

chromatic, lord of many reviews, has come up with a review of MySQL, from the folks at New Riders.
Author Paul DuBois has gone beyond the technically comprehensive MySQL documentation to produce an informative and entertaining compendium of MySQL knowledge. Requiring little prior experience ("What is a database and why should I care?"), he explains general SQL and RDBMSs, as well as the peculiarities of MySQL.

The Scoop

Paul DuBois has gone beyond the technically comprehensive MySQL documentation to produce an informative and entertaining compendium of MySQL knowledge. Requiring little prior experience ("What is a database and why should I care?"), he explains general SQL and RDBMSs as well as the peculiarities of MySQL.

What's to Like?

The prose is clear and readable. At the start, DuBois walks the reader through designing two very different database projects. After the first chapter, a normal user will be proficient at manipulating the client and issuing basic commands -- even designing her own tables. From there, the rest of the MySQL world opens up as more detail emerges. The sections on optimizing queries and table indexes will prove particularly valuable as the database grows from a hobby into a valuable project of its own.

Almost anyone working with MySQL will find appropriate information, no matter his approach. While the standard client receives ample attention, Perl and PHP Web interfaces are developed and explained in later chapters. After explaining the general ideas of the particular interface, DuBois walks through the design and evolution of programs to fill specific tasks. These programs start with basic functionality and gradually add more features until the original goal is met.

Though the book explicitly covers stable version 3.22 and development version 3.23, features introduced in newer versions are marked and features on the roadmap are mentioned. Deprecated functions and replacements are labeled, too. As well, the section on "missing features" is useful, giving suggested workarounds, when present. (Examples include subselects and transactions.) ANSI SQL receives plenty of attention -- even where the MySQL implementation strays. It's an honest approach.

DB administrators aren't left out -- a full section is dedicated to their own issues. Security and permissions receive due treatment, as does performance tuning. The section on maintenance and database relocation was particularly interesting. There's even a treatise on the structure of the database files (notable for the differences between the ISAM and MyISAM formats).

Finally, the included appendices are well-selected. Weighing in at slightly less than a third of the pages, this tome will not have time to gather dust on my bookshelf. Most pertain to programmers, but having a physical guide to the built-in MySQL functions has a certain appeal.

What's to Consider?

While filed with useful information and clear examples, the Perl chapter had a distinctive C flavor to it. As the corresponding C chapter assumes familiarity with that language and the PHP discussion starts with an introduction to PHP, the author assumedly addresses potential MySQL programmers in three categories: C programmers, Perl dabblers, and PHP initiates. While this likely reflects the makeup of his intended audience, it may also prove distracting to more experienced users. (Suggestion for these folks: read the example code and skip to the API appendix.)

A minor nitpick is the binding and cover of the book. My review copy managed to attract lots of dirt on the nice cover, and it developed a serious crack in the spine, in the middle of the Perl DBI chapter. Some of the affected pages are coming loose, after moderate usage. Hopefully this is just a defect in my copy.

Be aware that much of the example prose has a touch of free-Unix to it. Nearly all options will work on the Windows platform, but users unaccustomed to extended command line forays may feel uncomfortable. (Since this also applies to the database, it's barely worth mentioning.)

The Summary

MySQL is an excellent book, with a good balance of database introduction, believably practical examples, and technical information. Want to program, set up, or administer a MySQL system? You won't go wrong here.

Reading technical books before going to sleep has some strange effects on me. One day I was reading 'Learning the Bash shell (ORA)' before sleeping.. and that night I dreamt that I met a beautiful young and willing girl... who thought me how to write shellscripts for bash!

and it is great. I am familiar with databases to an extent and recently started working on a web based PHP project that would be helped along with a database. I chose mySQL for many reasons and was able to finish my project. I then bought the book to expand my mySQL knowlege and it was great. Very easy to understand and full of information. I would recommend this book to anyone who would like to learn about mySQL including people that have used other RDBMS. As a side note this is my 2nd book from New Riders and both have been great. If I get a couple more this good they are going to be my new favorite publisher. Gary

The O'Reilly book works well enough for Python use and is a fairly good book overall. The bigger problem is Python's database unification is still pending which leaves it at a disadvantage for database work. The "official" MySQL module for Python is woefully outdated, unfortunately.

Still, much of this book's MySQL reference material can be applied to the Python module which makes it all the more useful - and the administrator stuff is priceless. I highly recommend it.

I'll agree that as a general rule, O'Reilly books are more informative than, oh, just about everything else out there. (Not counting my K&R, of course.)

However, there are always exceptions to rules,(1) and this is one of them. I avoided the O'Reilly mSQL & mySQL book after seeing it panned at their own web site in the reader reviews section, and, at the advice of my co-workers, picked up the New Riders book instead.

It's definitely money well spent. It's an interesting read, it's an informative read, and hasn't left my side for the last two weeks, which makes showering a little awkward.

Brand loyalty can be helpful sometimes, but don't let it blind you.

(1) Well, there might not always be an exception to a rule... I bet there's an exception to that rule as well. (Uh-oh, I've gone cross-eyed.)

The iChoose Online Savings Alert(TM) is not available for use with Netscape browsers.

The iChoose Savings Alert(TM) is currently available for computers running Windows 95/98/NT and Microsoft Internet Explorer 4.0 or later. Our development team is working on a version for Netscape browsers.

Where do any of you Australian residents out there buy your tech books? When I was buying some O'Reilly books last time (3 books, about $120 US) the cheapest (including 7-21 day shipping) was Amazon. It worked out to about A$220.. buying it at Angus & Robertson (a physical bookstore) would have cost close to A$300. I also checked ozbooks.com and I think it was thinkgeek.com but they were more expensive.

So is there any obscure little site i've missed that will get me books in Australia faster and cheaper than Amazon?:)

Are there any books on Postgres in the pipeline? A brief search on Amazon does not list any publications in print at the moment. Postgres is (in my opinion) a far more capable and much more complicated database and "needs" some dead tree documentation.

It is also properly free (last time I looked, MySQL cost money if you made money with it, or used it on Windows), Postgres on the other handis free beer and speech.

I hope, for the sake of your immortal soul, that wasn't a reference to Lord Chroma of Andy and the Airwave Rangers [imdb.com], which is the worst film EVER. I mean EVER. If you have the opportunity to see this film, just stab yourself in the eye instead. You'll find it a vastly more pleasurable experience.--

The big Java book (Industrial Strength Java) was the best thing on the market when I was looking for Java books. Every other book out there at the time showed how to write a hello world application. Industrial Strength showed how to write threaded servers.

Maybe if you don't know what a database is, then you shouldn't care...

Avoid New Riders books! While I haven't read the one in question, I've had numberous BAD experiences with the quality of their writing in the past (Anyone remember those horrible Java books?).

O'Reilly offers an excellent series for learning MySQL. I recommend that anyone interested get one of those, first - at least you won't be looking at an expensive pile of crap when you're done, and believe you me, at least you can sell the O'Reilly books.

While I can say that I have found valuable information in the ORA book, I have to say that I enjoy & have found MUCH MORE of what I'm looking for in the book by Paul DuBois. The Ora book gives a good background on DB in general, however it is more aimed at Admins, not people actually trying to use MySQL.

Let me put it this way, I open mSQL/MySQL about twice a week... I open and read Paul's book, everyday.

Having purchased both MySQL and the O'Reilly MySQL & mSQL book, I just have to say...

I come from a somewhat limited programming background. The MySQL book not only takes you step by step through dealing with MySQL, it also provides well thought out and nice documentation for the various ways to program apps to use it. I'd used PHP before, but have started playing with Perl, and I have to say...of the two books, MySQL gets picked up daily for reference, and the O'Reilly book just sits on my shelf unused.

Definitely a book you'll want in your collection. Now if MySQL would just do things like subselects, I'd be a really happy camper. Oy. Patience, I guess. Although I do see why, in retrospect, all my friends suggested I start with another DB system as I learn more and more.

Still, pick up this book. You won't be sorry. Friendly enough for the newbie, good enough for my perl programmer that he is always borrowing my copy to look up how to do stuff. A well done book.

MySQL excels in heavy read environments. Web content management for example. No other database can compare to it.

Oh, really? Do you mean it's silly to use Oracle 8i Enterprise Server for managing data warehouses with more than 500 million rows; since no other database compares to MySQL?

MySQL is a good, free RDBMS without any of the nifty features that come with the likes of Oracle. It's very good for a lot of purposes, but claiming that "no other database compares to it" will be, umm, unintelligent. Did you spend any time with a real RDBMS, say, Oracle? Feel free to download and install it on a Linux box, and marvel at the cost based optimizer, materialized views, snapshots, and a host of other features that MySQL does not, and most probably will never have.--

Before you go labeling a whole publishers books "horrible" you might want to read more than a couple.

I've only had the oppurtunity to read two of thier books (linux firewalls, MySQL), but I've found the quality of these two books to be a step above the rest. I'm sure that New Riders has put out a few books that aren't up to par, but as far as my experiences go they're great.

I'm quite fond of Orielly's books. Don't get me wrong. However most often I have a hard time reading them from front to back. More often than not, they work best as a reference. Whereas with both of the New Riders books I've read, I found it very easy and entertaining to lay down and read for a couple of hours.

I develope stuff on the pc for that other (too popular) operating system. I have looking in to switching to and developing on Linux. Is there there an ODBC equivalent for Linux? I like the idea of write code in C++ once and not having to worry a lot about a particular version or implementation.

It's no contest. The New Riders book is a five star book. ORA's book sells well, but it has a pitiful three star Amazon rating. However, don't just look at the pretty stars. Read some of the comments - insightful!

I bought it just a couple weeks ago, and I'm already pleased as punch with it. Paged through the O'Reilly ("mSQL and MySQL" or vice versa) and didn't like it a bit. However, the cover on my "MySQL" book has also rapidly picked up a sheet of grime (but then, that happens to all the books I read on the subway).

You did not really read my post at all did you? You just figure you'd pull out the flame gun for the fun of it? MySQL excels in heavy read environments like Web content management. No other database is capable of coming close to matching its performance. I did not suggest or imply that performance was the only metric for chosing a database engine. Of course, if you have a datawarehouse where the scalability and data analysis tools are an issue, then you are talking about a different beast. Get a fucking clue and put your flamethrower away.

You can get by without transaction control if your database is essentially static. However, if all you are doing is doing lookups against a static list, you could just as easily work from flat files and avoid the overhead of using any database. If there is any structure to your data at all, this is patently false. Relational databases exist because complex data relationships cannot be represented well in flat files or hierarchical databases. MySQL excels in heavy read environments. Web content management for example. No other database can compare to it. That does not imply no writes. It implies only that your writes are well isolated with little complexity.

Don't try to get too fancy with mySQL, though. It has no concept of a foreign key, so referential integrity (RI) has to be enforced by your code. This is listed as a feature, not a bug. They claim that it gives them a tremendous speed boost not to have to check RI. A simple trial will prove that having the RDBMS suppport RI is almost always going to outperform enforcing it through PERL code, even though the PERL code is pretty darn quick. Also, you have to lock the whole table for updates that risk violating RI or simultaneous queries can execute in parallel (mySQL is very nicely multithreaded) and screw RI even when enforced on the query level. mySQL is great for databases that don't ever delete records on the fly, though. Then RI isn't an issue.

DISCLAIMER: I use mySQL extensively and am very happy with its performance capabilities. I just want everyone to be aware that there are certain design requirements that occur with mySQL that don't happen with RDBMS's that conform to standard SQL (99 or older).

I feel this is an excellent book! All I knew about mySQL is that was open source and one of the many weapons in the MS Smackdown. But as far as actual SQL queries I knew not one thing. I couldn't find a good resource online for mySQL so I picked this book up and was very happy. The step by step approach to thgins int he book is nice too. But what I favor is the appendix for the SQL commands. Of course the examples are nice too. This book shows you everything, from just gettign data to administering the database. A book that comes highly recommended to anyone wanting t learn mySQL!

Umm, it also has the amazing ability to soak up RAM by the *gigabytes*! I administer Solaris boxes that run Oracle 8.x & 8.1.x and I have never witnessed a more bloated and buggy application in my life! Oracle has an amazing propensity to "runaway" when a developer discovers one of the many bugs, processes then use enourmous amounts of CPU and gobble up RAM often exhausting all RAM and swap on the machine. (Yes, my swap partitions total 3x the amount of RAM, 6GB)

Fortunately shipping seems to stay fairly level even if you pack a few more things on. Sure, 18-ish-percent shipping is steep. But buy one o' them Perl shirts, some caffeinated mints, and maybe a sticker or two, and suddenly your shipping is a mere 5% of your bill.

It's main focus is PHP 4.0, but incompatibilities with 3.0 are always explained. The example scripts are provided as separate 3.0 and 4.0 versions, if needed. The only exception is the Extending PHP chapter, which deals with extending PHP 4.0 exclusively.

The announced publication date for Web Application Development With PHP is May 31st, but it may be delayed to early June - we're still in the process of finishing the official documentation on Extending PHP, which will be a major chapter in our book.

Anyway, thanks for your support, and you can get more information about this book at http://phpWizard.net [phpwizard.net] RSN.

As an owner of both books, I'd have to say that the MySQL book is far better than the OReilly version.

I've only had a chance to flip through the MySQL book, but just in that, far more has been covered than in the OReilly one. Not only that, but it seems to be missing the technical and grammatical flaws of the My&m.

This is a strange feeling, but for once I will have to recommend the non-oreilly version of a book.

The VPN book by O'Reilly, http://www.amazon.com/exec/obidos/ASIN/1565925297/ , is really quite mediocre - while some of the conceptual discussion is OK, it fails to cover IPSec properly (which is now the industry standard for crypto based VPNs) and is not a patch on Dan Harkin's IPSec book.

I do generally like O'Reilly books, but this is full of errors and fails to address the most important issues.

Excellent -- pretty much exactly what I was hoping for. If I can make a suggestion, you might want to have your publisher add that as an item on the book's feature list, because that'll be a very attractive selling point for people thinking about buying the book. Thanks again!

I'm getting a quote of $34.00 at ThinkGeek for the mySQL book when I follow the link in your post. Is there a code I can enter to get some kind of discount, which would explain the $29 that you two are talking about? I'm not looking to buy this book, 'cause I already own it, but having the discount in the future would be nice. I didn't, like, insult Slashdot one too many times in my youth to recieve the discount or something, did I?;)

I have been an avid O'Reilly supporter since the beginning. I have so many first printing O'Reilly books, I can't count them all. I suffered through the O'Reilly binding-testing phase (and am quite pleased with the results). I swear by O'Reilly books. I recommend them to everyone who asks.

However, IMHO, the New Riders MySQL book is light years better than the O'Reilly book. Everyone in my group now owns the New Riders MySQL book, and all comments I've heard have been favorable... sometimes wildly so.

I also agree that the Linux Firewalls book is a good book. I have not read any other New Riders books, so I can not speak to them, but I will vouch for the quality of these two books.

I'm one of the biggest ORA fans out there. Their books are superb. They tend to present twice as much information in half the space and far more clearly than anyone else out there. I have a huge O'Reilly library and they're all show much wear. The small bookshelf next to my desk is almost exclusively inhabited by O'Reilly. The huge bookshelves I keep in the next room is where I keep other technical publishers (along with 10 years of novels). O'Reilly books are the best, bar none.

Except for _mSQL and MySQL_.

This book was a dog. A major disappointment. In trying to cover both DBs, they managed to cover neither. It was all over the map, and while the first two chapters have some nice general db-design theory, they aren't worth the price of admission.

I haven't read the DuBois book, so it wouldn't be appropriate to comment on it specifically. When looking it up, however, I did find a few other books in the pipeline that might be worth saving your money for...

You can get by without transaction control if your database is essentially static. However, if all you are doing is doing lookups against a static list, you could just as easily work from flat files and avoid the overhead of using any database.

A lot of people seem to use MySQL, so maybe it has some advantage that I'm missing. Or then again, maybe the people who are using MySQL just don't grok true relational databases.

If someone wants to knock this book, fine, but to moderate someone up when they admit they haven't even read the book is silly, especially when they offer no more detailed criticism than some vague "BAD experiences."

I read O'Reilly's mSQL and mySQL when it came out. Say what you want about their other books, this was not their finest hour. The New Riders books, which I read about three months ago, is a great book on its own -- in comparision to the O'Reilly book, however, it's simply outstanding. If you want to get one book on mySQL, the New Riders one is unquestionably the book to get.

Oh, and I have no connection with New Riders -- I own a lot of O'Reilly books, and the mySQL book is the only tech book of New Riders that I own so far. So far. I'm really looking forward to their Web Application Development with PHP, which I ordered a couple of weeks ago.

Oh yeah, and as for the info that I mentioned in the subject line. I just noticed that ComputerBookstore.com [computerbookstore.com] just extended their 41% off sale on all New Riders books until April 30. (The deadline had been April 16th, but I got inundated with tax-paying and forgot to order my books.) Heh, and as I check the above link to make sure it works, I noticed that they've also now got a 41% off sale on all Wrox books, too. Argh, pity me and my credit card....

This is scary. As I lay in bed last night I was reading the book in question. After bieng sucked into the book for over an hour I finally put it down to sleep. Hmm, maybe Slashdot would be interested in a review when I finish. Doh! Oh well.

Anyways, I can't comment too extensivly on the book, I've only made it through a couple chapters.

So far this has got to be the best technical book I've ever read. Paul DuBois's writing style fit me perfect. I often have a hard time reading technical books. My mind starts to wonder and I lose track of the trail most tech books seem to lead you down.

With MySQL is was different. Everytime I started thinking about a "whatif" scenario Paul DuBois was there explaining the answer. It sort of startled me as I found my own logic following the books.

Too often I find myself struggling to keep up with some of the Orielly books. Most of thier books seem to already assume some level of proficiency with the topic on hand. I love they're books, I just have to read them a couple of times. Once to get an overview and once to put it all together.

So far I'm only a couple chapters deep in MySQL. I bought this book because it had some good reviews at Amazon (I bought it local) and I literaly had no experiences with databases. Withing this first couple chapters I find myself understanding the concept fairly good (IMO). Unless this book takes a drastic turn for the worse I can't imagine not getting my money's worth (I paid retail $59.95).

While I can't guarantee your train of thought will follow the authors like mine did. I still highly recommend this book to anyone with an interest in MySQL. Even if you have no experience with databases Paul makes it easy to start off and learn the basics.

and on other subjects but the mySQL book and the Linux firewalls book I purchase from new riders were excellent. I got the Linux Firewalls book for a reference when changing to ipchains. I'm a Systems Administrator and I have MANY O'Reilly books that are great. I would recomment AGAINST getting the O'Reilly mySQL book ( a friend of mine has both and I've taken a look at the O'Reilly book ) it does not cover as much information and the information it does cover is not done as well. Anyone reading this should seriously consider this New Rider Title. Especially since xtal didn't read it and I did. Gary

I have copies of both O'Reilly's mSQL/MySQL book and the New Riders' MySQL book. Had I not acquired them in that order, I would have never purchased the former.

The latter is much more comprehensive than the first especially with regard to examples. I consider it the essential reference for MySQL while the O'Reilly book is more of an introduction to MySQL. My O'Reilly book is now a loaner for folks in my department who have a passing interest in MySQL, however, I keep a short leash on the New Riders' book because it is an indispensable resource.

I picked up the Oreilly book just after it came out last summer. It disappointed me. While I really enjoyed the "intro-to-databases" chapters in the ORA book, I thought that it was much more of a "here's how to program databases; by the way we are gonna talk about MySQL some." The coverage of database programming in many different languages was a defintie plus, though some chapters, notably rhe Java chapter, were really sparse (even if you don't count the missing Guestbook example!)

The problem with the ORA book was that it didn't get into MySQL enough. It certainly got me to a point where I could start doing good database programming, but it didn't accelerate me to being really good with MySQL.

The NewRiders book does just that. I picked it up last week and I just love it. It has a weak introduction to database design; if you don't know how to design a database, you'll want to pick up something else first. However, if you are already familiar with designing databases, this book simply shines.

The first section is simply marvelous. It does a good bit of hand holding, getting you used to using MySQL and its utilities. Chapter 3 is really good; it goes into detail about some of the MySQL language extensions, and how and why you use them. Chapter 4 is a plus also; while MySQL is already fast, optimization of your queries is important for any database application.

The second section is quite good also, giving an indepth review of how to program the engine with 3 popular languages. DuBois' treatment of C is refreshing; too often the old-standby language is ignored, with all the hype of the RAD/Web languages. However, the omission of Java and Python (as other/.ers have noted) is disappointing.

The third section is astonishing. FINALLY someone explained how to use the goofy user management scheme in MySQL! I also really enjoyed the mention of database administration, including the hows and whys of isamchk. DuBois points out a lot of subtle gotchas or hangups; a real plus to someone who has never administered anything like a RDMBS before.

All in all, this is a great book to buy. It gets you to understand just about everything there is to know about MySQL. The ORA book is good if you need reference for more languages and want a simple introduction to database design, but the NewRiders book can't be beat for breadth of topics and accuracy. Having Monty as the technical reviewer surely helped!

If you are currently programming MySQL, or are thinking about it, you will want this book. I know I'm glad I purchased it.