The following is my default production MySQL configuration file (my.cnf
) for a pure UTF-8 setup with InnoDB as the default storage engine.
[server]
bind-address=127.0.0.1
innodb_file_per_table
default-character-set=utf8
default-storage-engine=innodb
The setup does the following:
- Binds to localhost:3306 (loopback) instead of the default *:3306 (all interfaces). Done to increase security.
- Sets up one table space per table. Done to increase maintainability.
- Sets the default character set to UTF-8. Done to allow for easy internationalization by default.
- Sets the default storage engine to InnoDB. Done to allow for row-level-locking by default.
Assume that you could further improve the setup by adding a maximum of three (3) configuration parameters. Which would you add and why?
An improvement would in this context mean either a performance improvement, a reliability improvement or ease-of-use/ease-of-maintainability increase. You can assume that the machine running the MySQL instance will have 1000 MB of RAM.