Chapter 5. Configuration Variables
Much can be learned about the internal workings of MySQL server by
studying its configuration variables. In some cases, the very existence of
a variable with a certain name tells a story. For example, key_buffer_size
reveals that MySQL uses a
key cache
. query_cache_size
suggests that the server can
cache the results of a query to avoid unnecessary work when it is run
repeatedly without any modifications to the tables that it references.
innodb_flush_log_at_trx_commit
suggests
that the InnoDB storage engine supports transactions, and may optionally
not write out its transaction log to disk on every commit. slave_compressed_protocol
reveals that MySQL
supports replication with a slave that can request that the data transfer
be compressed.
Other option names are perhaps not as self-explanatory, but you will learn a lot by asking yourself why that option exists, and studying the source to find out how the different settings affect the behavior.
MySQL has over 200 different options. Every one of them tells a story. Some reveal the presence of a feature. Some show the richness of MySQL optimization algorithms. Some demonstrate MySQL’s ability to self-administer. Some are there because some platform-specific bug needed to be tracked down or worked around at some point. Others exist just to allow the user to choose a file or a directory used for some internal operation, but their very existence permits us to take a peek at what MySQL is doing behind the ...
Get Understanding MySQL Internals now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.