This document discusses some idiosyncrasies in MySQL that can cause issues if not properly understood. It covers three main topics:
1. Data integrity - MySQL does not enforce data integrity by default like other RDBMS. Values outside ranges are inserted with warnings instead of errors. Settings like STRICT_ALL_TABLES can help enforce integrity.
2. Transactions - Non-transactional storage engines like MyISAM do not support transactions fully. Changes may not roll back as expected. InnoDB is recommended.
3. Variable scope - Changing global variables like storage_engine does not affect existing tables. New tables will still use prior default unless DB is restarted. Variable changes only affect new connections.