| Pro MySQL | |
| author | Michael Kruckenberg and Jay Pipes |
| pages | 734 |
| publisher | Apress |
| rating | 9 |
| reviewer | Rob Lanphier |
| ISBN | 1-59059-505-X |
| summary | MySQL overview for more advanced users |
All trademarks and copyrights on this page are owned by their respective owners. Comments are owned by the Poster. The Rest © 1997-2009 Geeknet, Inc.
Getting the trolling out of the way (Score:5, Funny)
Re: (Score:1, Funny)
So tag the article "oxymoron"
Re: (Score:2)
And its Oracle 8.1
Pro Advanced Hints (Score:3, Interesting)
Re:Pro Advanced Hints (Score:4, Insightful)
I believe it's in the 5.1 betas though.
A lot of the talks at this year's UC related to the storage engine agnostic behavior (backups, FT).
Parent
Where there's fire... (Score:4, Funny)
Re: (Score:3, Funny)
see also the canonical text on the subject (Score:4, Informative)
Zawodny's "High Performance MySQL", from O'Reilly. Highly recommended for DBAs and sysadmins looking to design, build and operate MySQL clusters, do backups and replication, and generally squeeze the most performance they can out of MySQL (and to a lesser degree, out of LAMP in general).
Re: (Score:2)
One of the better things about the book is it does explain how the underlying engines store and retrieve data, which gives good insight into performance problems and how to tune databases and requests for proper and efficient execution.
DBA, please. "unique pluggable"? (Score:5, Informative)
Re: (Score:2, Informative)
Re:DBA, please. "unique pluggable"? (Score:5, Informative)
What you can tweak on locking level (table-level, page-level, row-level, MVCC, etc) in table/schema settings in other database products you pick by chosing engines in MySQL.
You can see it in a way as setting groups of settings that will be a good fit for the workload of your environment.
Jack-of-all-trades, master-of-none concept, I guess.
MyISAM - Data warehousing/DSS/Read only archives optimized for bulk operations (big scans, flexible index formats, small disk footprint for data/index) but will not do well in a typical OLTP application because of table-level locking, bad crash durability and lack of ACID in general.
InnoDB - Typical traditional OLTP, row level locking, MVCC, Clustered PK w/ using B+tree with savepoints within transactions and other features for typical OLTP applications
Memory - No disk footprint, extremely fast - for summary tables, simulations, temporary operations (, session handling?).
NDB - Typical telcom, small rows, quite a few of them and high concurrency/throughput with automatic failover in the case of node failure. Slow for big scans and joins, but great for key lookups on single tables, but with transaction volumes and throughput you can't reach with the others for this niche usage.
Falcon - Jim Starkey's [wikipedia.org] new engine with some cool new things (see this link [kruckenberg.com] for a presentation)
Arhive - On-insert compression of rows for dump-archive-forget style data.
You can achieve lots of those things with normal settings, but to optimize on a storage level for cecertain operations can give you quite a boost for some things.
There are some cool aspects to this when it comes to proprietary formats, though. You can create engines for reading log files so you can access log data with SQL commands (there are engines for reading CSV files, apache log files, etc - think I even saw someone working on reading MS Access
Sure, it would be cool to have this one perfect storage system doing everything, but I guess you can use file systems in operating systems as an example, why doesn't all operating systems only use EXT3, Reiser, UFS, XFS, JFS, NTFS, etc? There are pros and cons to everything, just pick whatever fits your need, just like you would pick the programming language and database that would fit your application project the best.
If your database happens to be MySQL, you can go another step to pick the engine that will perform better or have the functionality you're looking for (or scalability or whatever you want).
Maybe not an acceptable reason for you, but I hope you at least understand the concept better...
cheers,
Parent
Re:DBA, please. "unique pluggable"? (Score:5, Interesting)
I understand why MySQL supports so many different table engines. What I don't understand is why MySQL supports (or doesn't support) different SQL features for each engine. Why should I (as an application developer) need to know whether a table was built using MyISAM or InnoDB when I write MySQL queries? Oracle has a number of different ways to optimize tables and indexes, but all of those optimizations are transparent to the application code and queries (but not to overall application performancen at runtime). I've done application development on a dozen different relational databases over the last 20 years, and MySQL is the only database engine (since DBase, and DBase wasn't really an RDBMS) where the database didn't abstract these differences away from the developer.
To use your filesystem metaphor, all of the filesystem implementations use the same VFS API -- I don't have to recode my application because I'm using ReiserFS today, when I wrote it using ext3.
Parent
Re: (Score:2)
Re: (Score:2)
Re: (Score:2, Informative)
Re:DBA, please. "unique pluggable"? (Score:4, Interesting)
I think of MySQL as tradeoff-DB. Usually it's bad tradeoffs that you don't have to make in any other database.
In my opinion, it's a great marketing ploy. People pay attention to claims, not caveats. Shout loud that you have a feature X, Y, and Z. That will work, even if the small print says you can't use X and Y simultaneously, and Z has some huge drawback. Nobody can ever "win" an argument against MySQL because the person you're arguing with can always claim features X, and downplay the importance of Y. Then, when you point out the importance of Y, someone else claims that it supports Y, and downplays X. And then they claim Z is just an extra feature for special use, and there's no really logical way to argue against including an option. MySQL is horribly misleading in its advertising.
Parent
SQL book recommendation? (Score:1, Interesting)
Re: (Score:3, Interesting)
If you mean MySQL, the topic at hand, I have nothing for you. However, if you meant exactly what you wrote, I picked up Sams Teach Yourself SQL in 10 Minutes [amazon.com] from my local library last fall, and loved it. Learned a lot, quickly.
Re: (Score:2)
Was it the best book for the time? Not really but the price was right and it helped introduce me to other DB concepts that would become more important the more I worked with Informix.
Re: (Score:2)
O'Reilly pocket mysql. Or just read MYSQL docs.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
I actually misspelled, the book name is "pocket sql" or something like that, it describes sql syntax specific to sql server, oracle, db2 and mysql.
As for "low end" this is very relative. I am crunching through .7 TB of data sitting in MySQL right now and it is quite efficient. In particular, if one were to construct a metric like databas
Re: (Score:2)
Re: (Score:3, Informative)
The best book I've found for that is "Database in Depth" by Chris Date. Very short, less than 300 pages. In fact the relational model is pretty simple, you could explain it succinctly in a page or two, but amazingly, so few people bo
Re: (Score:3, Interesting)
Re:SQL book recommendation? (Score:4, Informative)
An introduction to database systems - C.J. Date [amazon.com]
Covers the relational model, quite heavy on theory, but gives an excellent walkthrough of the fundamentals.
SQL For Smarties - Joe Celko [amazon.com]
A good SQL Programming book, covers normalization and most features found in databases, anyone programming databases should read this one
SQL 1999 Complete, REALLY - P. Gulutzan, T. Pelzer [amazon.com]
Good coverage of what's included in the 1999 SQL standard and some examples and discussions around this.
Translucent Databases - P. Wayner [amazon.com]
Covers how to handle sensitive data in databases, letting users use data, but not be able to fetch or abuse it
The two MySQL books I'd recommend are "High Performance MySQL" by J.Zawodny and D.Bailing and "MySQL" by Paul Dubois.
Another good database book for performance tuning is "SQL Performance Tuning" by P.Gulutzan/T.Pelzer
Hope this helps...
cheers,
Parent
I never program against! (Score:5, Funny)
Re:I never program against! (Score:4, Funny)
Parent
shocked (Score:1)
Me, Myself & I (Score:3, Informative)
I see too many people, including the submitter, use myself where me or I should be used. Hey, you don't sound more professional when you use myself in places it doesn't belong, you actually sound like a moron.
Here [wsu.edu] are [uwf.edu] some [writing911.com]resources [blogspot.com] for anyone still confused about this.
</RANT>Re:Me, Myself & I (Score:2)
Spelling? (Score:4, Funny)
-ch
Great book (Score:3, Interesting)
Rather than what the blurb said regarding audiences, I'd say it's geared towards developers and dbas or system administrators - not people migrating from another db vendor.
It does show some common pitfalls; some unique to mysql, some to sql in general.
I definitely liked the in-depth chapters regarding the way the core engine and various storage engines work, and all in all I'd have to say it's probably the best book about mysql I've read.
A few glaring omissions are in it, but I'm sure there'll be a new revision in a few months' time.
MySQL 5 (Score:4, Interesting)
Some of the "advanced" features of MySQL 5 make it more palatable to me. (I have a hard time triggers or views advanced when SQLite and every other SQL db supports them.)
A lot of open source development web apps are targetted towards the lowest common denominator -- shared hosts that still use MySQL 4 -- so the adoption has been kind of slow. I have a couple GPL webapps which don't support MySQL due to the lack of triggers and views. Sure, you can fake it on the client side, but then again, you can fake an orgasm. I'd rather do it the proper way.
This book was actually a great help for us. (Score:4, Insightful)
What was best about this book is that it did cover fairly advanced topics. And that was helpful, as we could clearly see what features MySQL did not offer. Unfortunately for MySQL, it did not offer all of the features we wanted, and thus we instead went with PostgreSQL.
Re: (Score:2)
easy to use as people claim?
Friend don't let friends use MySQL (Score:4, Insightful)
If all you want to do is "select * from mytable where col='foo'" you are wasting your time.
My bigest beef with MySQL isn't its limitations, but the people who learn these limitations and never realize a relational database and query language is SO POWERFUL.
So, they get an order of magnitude more data than needed from MySQL, process it in some scripting language, take the reduced data set, make another query to get what they wanted. In a *real* database, you'ld just construct the query correctly.
Every time I see a MySQL cconnection error on a web site, and you see them every day, I just think the designer is a moron.
Re: (Score:3, Insightful)
What is the point of using MySQL? If cost is an issue, PostgreSQL is free. IMHO PostgreSQL is, by far, easier to use than is MySQL. PostgreSQL scales better and by providing extensive SQL support, allows for more efficient and faster queries than MySQL ever could.
If you need a banking quality database, then use Oracle or D2
If you have two or more servers, use PostgreSQL
If you have one server, use SQLite or PostgreSQL
MySQL is just a mediocre da
don't use mysql for professional projects! (Score:5, Insightful)
don't even consider using MySQL 5 for at least another four years, for such projects, until it matures - and by that time, PostgreSQL, an already mature product that has had Views, Triggers etc. right from the start, will have had even more rigorous testing.
see http://advogato.org/article/894.html [advogato.org] for details.
A GUI? really... (Score:2)
Yeah, I heard there was some fancy-GUI interface to it...personally I like doing it all by hand, at least after the initial layout is set. I've been doing that since around 2002 though, so I'm pretty us
Re:Could we not talk about postgresql please? (Score:5, Funny)
Parent
Re: (Score:2)
The default apache is installed with MaxClients at a pathetic 150.. it's obviously not suitable for serious web serving.
Sheesh.. boost the number of connections on mysql.
Re: (Score:2)
Re: (Score:3, Funny)
Re:Impressive (Score:5, Funny)
Parent
Shit Happens (Score:3, Funny)
WIFE: "Honey you stepped in dog poop again. "
ME: "Trolls on a Thread..."
DOCTOR: "Your cholesterol is 290. Perhaps you want to mix in a walk once in a while."
ME: "Trolls on a Thread..."
WIFE: "Honey while you were on your cholesterol walk you stepped in dog poop again."
ME: "Trolls on a Thread..."
Are you astroturf? (Score:2)
To counter you, I have to plug my favorite alternative PostgreSQL [postgresql.org].
Re: (Score:2)
postgresql doesn't support it yet, on the basis that if it doesn't
even have a year, they ain't gonna add it