http://tikiwiki.svn.sourceforge.net/viewvc/tikiwiki/branches/experimental/innodb/
The plan is to add InnoDB support in Tiki.
This will be done keeping MyISAM as the default engine, with minimal impact on today's implementation and update practices.
The advantages of InnoDB are
- Crash proof. The database will automatically recover errors upon restart
- Row level locking, i.e. updates, inserts and deletes will no longer lock the whole file/table.
InnoDB also supports referential integrity by the use of foreign key and (multi-statment) transactions, but these features will not be included in the initial integration.
Rules for the installer scripts
- No FKs will be allowed in the tiki.sql script.
- Fulltext index definitions are placed in the tiki_myisam.sql file. InnoDB specific definitions are placed in the tiki_innodb.sql file.
- The word MyISAM must only be used in the engine specification and is not allowed in attribute names or other definitions.
The installer will
- GUI will get an option so the user can choose which engine type to install. MyISAM is pre-selected
- Check if InnoDB is available and only present the option if it is.
- Replace "MyISAM" strings in the installer script with "InnoDB".
Thus the tiki.sql script must (keep on) specifying MyISAM as the engine. It is important that all table definitions include the engine statement.
- After the main install script (tiki.sql), run tiki_myisam.sql or tiki_innodb.sql for the respective installation. tiki_myisam.sql installs the fulltext indexes. tiki_innodb.sql is empty, but added for completeness.
- Updates will use the same replace procedure. Will not check for FULLTEXT index definitions and possible other incompatibilities. MyISAM specific features must be added to the tiki_myisam.sql file.
The application will
- If the current MySQL engine does not support fulltext search (i.e. InnoDB is used), the section "MySQL Search (legacy)" in the search admin panel will display "Your MySQL engine does not support MySQL fulltext search" instead of the options.
The InnoDB integration is complete, i.e. all known changes have been added.
Further checking that should however be done in both the installer and the application.
There is no built-in procedure to migrate an existing Tiki database from MyISAM to InnoDB in the Tiki GUI. However such a migration is possible.
Procedure coming...