Hi. ----- Original Message ----- From: "Hans-Peter Grimm" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Friday, May 14, 2004 2:53 AM Subject: Comments/questions on "High Performance MySQL"
> > Hi, > > 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" ;-) > > There are some items in the book I'd like to comment or ask questions > about. I hope the list is a right place to do so. > > > page 12/13: > On p.12, the output of "SHOW PROCESSLIST" is shown. In the "Command" > column, the value is "Query". However, table 1-1 on p.13 indicates that > the "Command" column would display "Processlist" when the client is > running "SHOW PROCESSLIST". With 4.0.17, I verified that the output is > indeed "Query". Is it a MySQL or a documentation bug? On my 4.0 and 4.1 installations, I get "Query" > > > page 68: > Quote: "[...], a NULL value may appear only once as a primary key." > What's the meaning of this - all columns of a PRIMARY KEY in MySQL are > forced to be NOT NULL, aren't they? No, they can be NULL. This is a new concept to me, but I actually hit a case the other day where it seemed useful. I posted this query for another user who was trying to find all users without a computer: select * from users left join computers on (users.user_id = computers.user_id) where computers.user_id is NULL; user_id was his PK, but in order for the WHERE clause to work properly, it had to be null (http://dev.mysql.com/doc/mysql/en/LEFT_JOIN_optimisation.html). I suppose you could rebuild the table with a different (perhaps auto_increment) PK to avoid this. But to set up this test, I made it the PK and made it to allow NULLs, so MySQL does allow you to do it. > > > page 125: > I'd like to know whether it's recommended to include > "myisam_sort_buffer" in the computation of the minimum memory needed? > > In the my-medium.cnf configuration, for instance, myisam_sort_buffer is > clearly the largest of all thread buffers (8M vs. 512K for the > second-largest buffer). In my-(large|huge).cnf, it's even 64M. > > The MySQL manual on myisam_sort_buffer_size says: "The buffer that is > allocated when sorting the index when doing a REPAIR or when creating > indexes with CREATE INDEX or ALTER TABLE." To me, these seem rather rare > operations that won't be performed by most of the clients. It makes a > big difference, however, whether I use 9M or 1M per client in the > computation of required memory (or even >64M per client with > my-(large|huge).cnf). Do I miss something here? > > > page 211: > The username and hostname combination listing contains, in that order: > @%.example.com > [EMAIL PROTECTED] > Since the second user entry is more specific (the MySQL manual says an > empty user is least specific), shouldn't these entries be sorted in the > reverse order? Also, the text following the listing explains: "When jane > connects from web.example.com, she'll receive the privileges granted to > [EMAIL PROTECTED]". With a first-match rule, this makes sense only if > [EMAIL PROTECTED] appears first. > > > Thank you, > Hans-Peter > > > -- > MySQL General Mailing List > For list archives: http://lists.mysql.com/mysql > To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED] > -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]