MySQL soon to store system tables in InnoDB_MySQL
Looking at this historically:
- MyISAM was the default storage engine up until MySQL 5.5.
- In 5.5 almost 4 years ago, the default storage engine changed to InnoDB, however system tables used for features such as storing privileges and timezones remained as MyISAM.
Unlike MyISAM, InnoDB is an ACID compliant storage engine, with the behaviour that once a transaction commits, modifications are able to survive power-loss or other failures. This is a solid foundation to build applications on, since developers will need to handle fewer failures. To use an example:
- Customer places an order
- A confirmation email is sent
- Power is lost
Without durability, (2) could occur with no record of (1) occurring!Durabilityis a great feature. However, we do not currently offer this for the system tables which use MyISAM. To use an example:
- A DBA revokes a user's privilege to MySQL (the command returns success)
- Power loss occurs
- Upon restore, the revoke never applied.
By switching to InnoDB we are improving the experience of system-related tasks by ensuring durability that ACID provides.
This change will have the effect that InnoDB will be required for all MySQL installations, and the configuration setting--skip-innodbwill no longer make sense. Users will still be able to use the MyISAM storage engine, and MyISAM-heavy installations can continue to configure the InnoDB buffer pool toas low as 5MB- taking up very little memory.
This is a great step forward for MySQL, and I am personally very excited to see this change. Many in the MySQL community have been requesting this change for years, and we're happy to now be working on it. If you have any thoughts, please leave a comment, oremail me!
上一篇: MySQL入门之C语言操作MySQL
下一篇: MySQL日期时间函数