History: Migrate from MyISAM to InnoDB
Source of version: 6 (current)
Copy to clipboard
Context: ((InnoDB)) and ((MyISAM)) are [https://en.wikipedia.org/wiki/Database_engine|storage engines] for the databases supported by Tiki: ((MariaDB)), ((MySQL)) and ((Percona Server for MySQL)). Tiki uses the database for two types of data: # The actual data: wiki pages, blog posts, files (unless you configure to store in filesystem) etc. ** For Tiki data, MyISAM has been used since the beginning of Tiki (2002). In 2017, the default storage engine became ((InnoDB)). # The ((Unified Index Comparison|Unified Index)): a copy of your data in a format optimized for search ** For the unified index, MyISAM has been used since the beginning of Tiki (2002). In 2024 ((Tiki28)), it becomes((InnoDB)). As a user, you don't need to configure anything. It is all automatic. MyISAM still works just fine and will for many years. And you can easily convert later. Migration steps: # Make sure you are not using the deprecated tiki-searchresults.php feature (preference name feature_search_fulltext and removed after ((Tiki26))), but instead use tiki-searchindex.php (preference name: feature_search) # Do a full backup of your current database/installation # Alter the database engine for all tables to InnoDB using db/tiki_convert_myisam_to_innodb.sql Performing the conversion with phpMyAdmin may cause a PHP timeout. Running the script with the mysql command avoids that: {CODE(colors="shell" theme="default")}mysql -u userName -p databaseName < db\tiki_convert_myisam_to_innodb.sql{CODE} Nevertheless, step 4 may fail converting the tiki_files table if innodb_log_file_size is not high enough. In one case, 25 MB was insufficient (80 MB sufficed). The source code lives here: https://gitlab.com/tikiwiki/tiki/-/blob/master/db/tiki_convert_myisam_to_innodb.sql (This is for master, so you may want to look for corresponding file for your Tiki version) In a future version, we will have a ((Console)) script: https://gitlab.com/tikiwiki/tiki/-/merge_requests/4915