mysql_storageengine
Storage Engines - InnoDB/myISAM
mysql > 5.5 the default is INNODB
mysql < 5.5 the default engine is MyISAM
Before we convert tables we can first view the table engine with:
Note: Change 'db_name' to your database
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'db_engine';Now we have viewed the table engine we can go ahead and convert the tables.
Example: Changing MyISAM tables to InnoDB
Note: Change 'db_name' to the database you wish to change the engine of
SET @DATABASE_NAME = 'db_name'; SELECT CONCAT('ALTER TABLE `', table_name, '` ENGINE=InnoDB;') AS sql_statements FROM information_schema.tables AS tb WHERE table_schema = @DATABASE_NAME AND `ENGINE` = 'MyISAM' AND `TABLE_TYPE` = 'BASE TABLE' ORDER BY table_name DESC;An example of this being run is:
mysql> SET @DATABASE_NAME = 'table_engine'; Query OK, 0 rows affected (0.00 sec) mysql> mysql> SELECT CONCAT('ALTER TABLE `', table_name, '` ENGINE=InnoDB;') AS sql_statements -> FROM information_schema.tables AS tb -> WHERE table_schema = @DATABASE_NAME -> AND `ENGINE` = 'MyISAM' -> AND `TABLE_TYPE` = 'BASE TABLE' -> ORDER BY table_name DESC; +-----------------------------------------------------+ | sql_statements | +-----------------------------------------------------+ | ALTER TABLE `wp_users` ENGINE=InnoDB; | | ALTER TABLE `wp_usermeta` ENGINE=InnoDB; | | ALTER TABLE `wp_term_taxonomy` ENGINE=InnoDB; | | ALTER TABLE `wp_term_relationships` ENGINE=InnoDB; | | ALTER TABLE `wp_terms` ENGINE=InnoDB; | | ALTER TABLE `wp_posts` ENGINE=InnoDB; | | ALTER TABLE `wp_postmeta` ENGINE=InnoDB; | | ALTER TABLE `wp_popularpostssummary` ENGINE=InnoDB; | | ALTER TABLE `wp_popularpostsdata` ENGINE=InnoDB; | | ALTER TABLE `wp_options` ENGINE=InnoDB; | | ALTER TABLE `wp_links` ENGINE=InnoDB; | | ALTER TABLE `wp_comments` ENGINE=InnoDB; | +-----------------------------------------------------+ 12 rows in set (0.00 sec)
mysql_storageengine.txt · Last modified: 2024/05/23 07:26 by 127.0.0.1