Hi,
Sasha Pachev wrote:
Hans-Peter Grimm wrote:I just finished reading "High Performance MySQL". Congratulations to the authors, it's a great book and I enjoyed reading it. Would be great if someone now started to write "MySQL Internals" ;-)
I actually do have a fairly long chapter on that subject in "MySQL Enterprise Solutions". Additionally, I wrote the optimizer discussion while periodically peeking at the code. But I agree, having a dedicated book on it would be nice. The biggest problem I see is that it is so much easier to sell a book that talks about MySQL from the DBA or application programmer's point of view than the one that would go into the details of how things work inside. So I imagine it would be difficult to get a publisher interested. But as far as I am concerned, I would be willing if the opportunity presented itself. If somebody could find a good way to sell it, I would write it.
I see your point. When I think about it, it's actually not all the details I'd be interested in, but rather a practical guide that helps to understand MySQL's internals in order to use it to full advantage.
Below find a sample TOC which might give you an idea of what I mean. I'm aware that you can find information on some of the items in the manual but I'm sure having a guide with some examples could speed up the process of learning. I'll also try to have a look at your book (which I wasn't aware of thus far).
Hans-Peter
TOC
- MySQL source code layout organization, directory contents
- Processes and threads mysqld, connections, replication threads, ...
- Memory usage memory allocation functions, buffers, shared memory, ...
- A journey through query processing lex/yacc, parse tree, optimization, disk access, sending the result
- Implementing feature X
Let's say I want to implement a "CREATE CRONJOB (interval, cmd)" command. What steps will have to be taken to achieve that?
- Patches and Bitkeeper repositories
How do I maintain a specific feature (not in the official MySQL tree) but stay aligned with recent MySQL versions?
- How does MySQL achieve portability, how do you keep your code portable Thread creation, network functions, what functions to avoid, ...
- Writing (portable) UDF functions
Is there a difference between built-in functions and UDF functions? How do I implement REGEXP_REPLACE? ...
- Best practices
Things like: if you create your own thread, is there some registry in MySQL where you should register it? How do you avoid memory leaks? ...
- 2 or 3 case studies for the above tasks
-- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]