摘要:在本教程中,您将了解如何表正在使用哪种存储引擎以及如何将表的存储引擎更改为不同的存储引擎。
MySQL支持多种存储引擎,这些引擎提供不同的功能和特性。例如,InnoDB表支持事务,而MyISAM则不支持。
查询表当前存储引擎
有多种方法可以获取表的当前存储引擎。
检查表当前存储引擎的第一种方法是从information_schema
数据库中的tables
表中查询数据。
例如,要获取 classicmodels示例数据库中offices
表的当前存储引擎,请使用以下查询:
SELECT
engine
FROM
information_schema.tables
WHERE
table_schema = 'classicmodels'
AND table_name = 'offices';
Code language: SQL (Structured Query Language) (sql)
查询表的存储引擎的第二种方法是使用SHOW TABLE STATUS
语句,如下所示:
SHOW TABLE STATUS LIKE 'offices';
Code language: SQL (Structured Query Language) (sql)
获取表的存储引擎的第三种方法是使用SHOW CREATE TABLE
语句。
SHOW CREATE TABLE offices;
Code language: SQL (Structured Query Language) (sql)
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>
Code language: SQL (Structured Query Language) (sql)
MySQL显示offices
表使用InnoDB存储引擎。
MySQL改变存储引擎
一旦获得表的存储引擎信息,就可以使用ALTER TABLE语句更改它,如下所示:
ALTER TABLE table_name ENGINE engine_name;
Code language: SQL (Structured Query Language) (sql)
要检查您的 MySQL 服务器当前支持哪种存储引擎,请使用 SHOW ENGINES 语句,如下所示:
SHOW ENGINES;
Code language: SQL (Structured Query Language) (sql)
例如,要将offices
表的存储引擎从InnoDB更改为MyISAM,可以使用以下语句:
ALTER TABLE offices ENGINE = 'MYISAM';
Code language: SQL (Structured Query Language) (sql)
在本教程中,我们向您展示了如何查询表的当前存储引擎以及如何使用ALTER TABLE
语句将其更改为不同的存储引擎。
本教程有帮助吗?