如何更改MySQL存储引擎

时间:2019-11-20 08:52:29  来源:igfitidea点击:

简介:在本教程中,您将学习如何使用表的存储引擎以及如何将表的存储引擎更改为其他存储引擎。

MySQL支持提供不同功能和特性的多种存储引擎。
例如,InnoDB表支持事务,而MyISAM不支持事务。

查询表的当前存储引擎

有几种获取表的当前存储引擎的方法。

检查表的当前存储引擎的第一种方法是从information_schema数据库中的表表查询数据。

例如,要获取classicmodels示例数据库中office表的当前存储引擎,请使用以下查询:

SELECT 
    engine
FROM
    information_schema.tables
WHERE
    table_schema = 'classicmodels'
        AND table_name = 'offices';

查询表的存储引擎的第二种方法是使用SHOW TABLE STATUS语句,如下所示:

SHOW TABLE STATUS LIKE 'offices';

获取表的存储引擎的第三种方法是使用SHOW CREATE TABLE语句。

SHOW CREATE TABLE offices;
mysql> SHOW CREATE TABLE offices\G;
*************************** 1. row ***************************
       Table: offices
Create Table: CREATE TABLE `offices` (
  `officeCode` varchar(10) NOT NULL,
  `city` varchar(50) NOT NULL,
  `phone` varchar(50) NOT NULL,
  `addressLine1` varchar(50) NOT NULL,
  `addressLine2` varchar(50) DEFAULT NULL,
  `state` varchar(50) DEFAULT NULL,
  `country` varchar(50) NOT NULL,
  `postalCode` varchar(15) NOT NULL,
  `territory` varchar(10) NOT NULL,
  PRIMARY KEY (`officeCode`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
mysql>

MySQL显示offices表使用了InnoDB存储引擎。

MySQL更改存储引擎

一旦获得了表的存储引擎的信息,就可以使用ALTER TABLE语句对其进行更改,如下所示:

ALTER TABLE table_name ENGINE engine_name;

要检查您的MySQL服务器当前支持哪种存储引擎,请使用SHOW ENGINES语句,如下所示:

SHOW ENGINES;

例如,要将office表的存储引擎从InnoDB更改为MyISAM,请使用以下语句:

ALTER TABLE offices ENGINE = 'MYISAM';

在本教程中,我们向您展示了如何查询表的当前存储引擎以及如何使用ALTER TABLE语句将其更改为其他存储引擎。