Loading...
 
Skip to main content

History: Migrate from MyISAM to InnoDB

Source of version: 3

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, blob posts, 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)): a copy of your data in format optimized for search
** For the unified index, MyISAM has been used since the beginning of Tiki (2002). In 2024 ((Tiki28)), it becomes((InnoDB)). It's not optional.


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
        

History

Information Version
Marc Laporte 6
Marc Laporte 5
Marc Laporte 4
Marc Laporte 3
Marc Laporte 2
Marc Laporte Copy-paste from https://doc.tiki.org/InnoDB 1