Errata

High Performance MySQL

Errata for High Performance MySQL, Third Edition

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted By Date submitted Date corrected
Printed
Page 75
Paragraph "Buried details"

In the paragraph "12,773" (and "12,771") queries are mentioned, referring to the profile on page 72. There it says 78,069 queries.

Note from the Author or Editor:
This is a misunderstanding, not a typo. If it needs to be clarified, it should be changed to:

What if item #1 in the profile we showed earlier had instead been composed of two queries...

Jens Dietze  Jul 23, 2013  May 08, 2015
Printed, PDF
Page 135
Middle of the page, 1st SQL command, 4th line of the SQL command

The 1st SQL command there is a single quote missing on line 4 after the word premium. The error in the PDF version is different from the error in the printed version.

Printed version
mysql> SELECT message_text, user_name
-> FROM message
-> INNER JOIN user ON message.user_id=user.id
-> WHERE user.account_type='premium /* ERROR: single quote missing after the word premium */
-> ORDER BY message.published DESC LIMIT 10;

PDF version:
mysql> SELECT message_text, user_name
-> FROM message
-> INNER JOIN user ON message.user_id=user.id
-> WHERE user.account_type='premiumv /* ERROR: the letter v in the word premiumv should be replaced with a single quote */
-> ORDER BY message.published DESC LIMIT 10;

Note from the Author or Editor:
This is likely a problem with a character. Perhaps a special character like a curly quote was in the final manuscript.

Klemen Tušar  Apr 28, 2017 
Printed
Page 150
Figure 5-2, and top paragraph of page 151

The lowermost leaf page in the diagram has a break between the two "Basinger, Viven" entries, indicating there are many entries between them, but the top paragraph of page 151 refers to those entries as the "last two entries" and at least implies that they are adjacent entries.

The graphic should be amended such that the break is between "Barrymore, Julia" and the leftmost "Basinger, Vivien", so as to be less potentially confusing.

Joel Bradshaw  Feb 11, 2013  May 08, 2015
Printed
Page 179
last paragraph

Indexed fields are wrong - it says "We can extend this index to cover (artist, title, prod_id) - but this should be (actor, title, prod_id)

Graeme Kelly  Sep 19, 2013  May 08, 2015
PDF
Page 343
Config file

The book recommends 'log_slow_queries'.

Result: "[Warning] '--log_slow_queries' is deprecated and will be removed in a future release. Please use ''--slow_query_log'/'--slow_query_log_file'' instead."

Changing it to 'slow_query_log' as suggested eliminates the warning for me.

Note from the Author or Editor:
Please add a footnote after "good starting point" in the first para. The footnote should read:

Please note that newer versions of MySQL remove, deprecate, and change some options; check the docs for details.

Justin Honold  Aug 01, 2012  May 08, 2015
Printed
Page 451
Mysql Command

Trailing comma before semi-colon to end statement.

...IDENTIFIED BY 'p4ssword',;

should be

...IDENTIFIED BY 'p4ssword';

Jamie Kahgee  Sep 09, 2013  May 08, 2015
Printed
Page 458
2nd code block

The recommended options for use in replication on an InnoDB database includes the line "innodb_flush_logs_at_trx_commit=1 #Flush every log write".

This should be innodb_flush_log_at_trx_commit as documented on MySQL.

http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html


DippieTheHam  Sep 28, 2012  May 08, 2015
PDF
Page 490
step 6 in detailed steps

The command "CHANGE MASTER TO MASTER_HOST=''" will throw the error: "Incorrect arguments to MASTER_HOST" for MySQL versions after 5.5. This is by design, and documented on the MySQL online documentation. For 5.5 versions starting 5.5.16, it is recommended to use 'reset slave all' to perform this step. For 5.5 earlier than 5.5.16, there's another way to perform this (see link). So, there are three ways to perform step 6 depending on the version running.
link: http://dev.mysql.com/doc/refman/5.5/en/reset-slave.html

Note from the Author or Editor:
I suggest that we change the 3rd para to

The devil is in the details, however. Several scenarios are possible, depending on your replication topology. For example, the steps are slightly different in a master-master topology than in a master-replica setup, and future server versions will likely behave differently.

Gert van Dijk  Oct 15, 2012  May 08, 2015
Printed
Page 517
4th paragraph ("This process..."), 2nd sentence

"In particular, Tungsten Replicator was the first to offer parallel replication apply for MySQL." Seems like some words are missing. Should it be "In particular, Tungsten Replicator was the first product to offer parallel replication to apply for MySQL certification"? Or "...was the first product to offer parallel processing in replication for MySQL."?

Note from the Author or Editor:
Change it to:

In particular, Tungsten Replicator was the first product to offer parallel replication apply for MySQL

Anonymous  Jun 20, 2012  May 08, 2015
547
1st paragraph after "Scaling by Consolidation"

There is a statement that MySQL efficiency will level off beyond 128MB (megabyte) of RAM. Is this correct or should it be GB?

Note from the Author or Editor:
In "Scaling by Consolidation", change

to level off. A similar thing happens beyond 128 MB of memory, and MySQL can’t even

to

to level off. A similar thing happens beyond 128 GB of memory, and MySQL can’t even

Adrian Rudnik  Sep 06, 2012  May 08, 2015
9999
3rd paragraph of page - URL for page in Detailed description

URL for the page is:

http://proquest.safaribooksonline.com/book/databases/mysql/9781449332471/6dot-query-performance-optimization/id3662101?uicode=califa

Chapter 06

Section: Limitations of the MySQL Query Optimizer

Sub-section: Correlated Subqueries

1st sentence of 2nd paragraph of the sub-section says:

It�s tempting to think that MySQL will execute this query from the inside out, by finding a list of actor_id values and substituting them into the IN() list.

It should say:

It�s tempting to think that MySQL will execute this query from the inside out, by finding a list of [film_id] values and substituting them into the IN() list.

Note from the Author or Editor:
The exact wording of the text should be

It’s tempting to think that MySQL will execute this query from the inside out, by finding a list of film_id values and substituting them into the IN() list.

pob  May 28, 2014  May 08, 2015
PDF, ePub, Mobi,
Page 9999
SQL after 3rd paragraph of sub-section

URL for the page is:

http://proquest.safaribooksonline.com/book/databases/mysql/9781449332471/4dot-optimizing-schema-and-data-types/id3233727?uicode=califa

Chapter 04

Section: Normalization and Denormalization

Sub-section: Pros and Cons of a Denormalized Schema

The error is a one-letter typo in the following SQL:

mysql> SELECT message_text, user_name
-> FROM message
-> INNER JOIN user ON message.user_id=user.id
-> WHERE user.account_type='premiumv
-> ORDER BY message.published DESC LIMIT 10;

Change 'premiumv to 'premium' in the 4th line of the SQL above

pob  May 29, 2014  May 08, 2015