User Tools

Site Tools


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