mysql5.7修改存储引擎_MySQL查看修改存储引擎总结

本文总结了MySQL下查看、修改存储引擎的一些方法。测试、验证环境为MySQL 5.6 ,如有差异,请以实际版本为准

1:查看MySQL的存储引擎信息

1.1 使用show engines命令。

c54141d7bbb1c88f54d4fbec55dedbdd.png

Support列, YES表示当前版本支持这个存储引擎, DEFAULT表示该引擎是默认的引擎。NO表示不支持该存储引擎。如下所示,InnoDB是默认的存储引擎。

1.2 可以查看系统变量default_storage_engine或storage_engine

1:default_storage_engine 表示永久表(permanent tables)的默认存储引擎。

2:default_tmp_storage_engine 表示临时表的默认存储引擎。

storage_engine这个系统变量不推荐使用,它已经被系统变量default_storage_engine替代了。

mysql> show variables like '%storage_engine%';

+----------------------------+--------+

| Variable_name              | Value  |

+----------------------------+--------+

| default_storage_engine     | InnoDB |

| default_tmp_storage_engine | InnoDB |

| storage_engine             | InnoDB |

+----------------------------+--------+

3 rows in set (0.01 sec)

mysql>

2:如何修改MySQL的默认存储引擎?

2.1 修改my.cnf,在配置文件里面增加参数default-storage-engine,然后重启数据库服务。

[mysqld]

default-storage-engine=MyISAM

然后检查默认存储引擎,就会看到MyISAM为默认存储引擎了。

d5ec4876b2ff395e1283ca50a6a656a9.png

2.2 使用命令修改系统变量(system variables)

5cee1032e6c3788c346bd7bea0aabc46.png

注意,这个系统变量default_storage_engine是BOTH(全局和临时),而且可以动态修改。但是要注意,即使你修改了系统变量default_storage_engine,重启过后就会失效,如果你要永久修改,最好在my.cnf配置文件里面也设置default-storage-engine的值。

3:如何查看表使用的存储引擎?

查看表所用的存储引擎,有下面几种方法:

3.1 查询information_schema.TABLES

mysql> SELECT TABLE_SCHEMA,

->        TABLE_NAME,

->        TABLE_TYPE,

->        ENGINE

-> FROM   information_schema.TABLES

-> WHERE  TABLE_NAME = 'TEST';

+--------------+------------+------------+--------+

| TABLE_SCHEMA | TABLE_NAME | TABLE_TYPE | ENGINE |

+--------------+------------+------------+--------+

| gsp          | TEST       | BASE TABLE | InnoDB |

+--------------+------------+------------+--------+

1 row in set (0.00 sec)

mysql>

3.2 使用SHOW CREATE TABLE TEST \G命令。

mysql> SHOW CREATE TABLE TEST \G;

*************************** 1. row ***************************

Table: TEST

Create Table: CREATE TABLE `TEST` (

`ID` int(11) DEFAULT NULL,

`COL1` varchar(6) DEFAULT NULL,

`COL2` varchar(6) DEFAULT NULL,

`COL3` varchar(6) DEFAULT NULL,

`COL4` varchar(6) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1

1 row in set (0.00 sec)

ERROR:

No query specified

mysql>

3.3 SHOW TABLE STATUS

mysql> SHOW TABLE STATUS WHERE Name='TEST';

ERROR 1046 (3D000): No database selected

mysql>

mysql>

mysql> use gsp;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> SHOW TABLE STATUS WHERE Name='TEST';

如上所示,这种写法必须制定数据库,否则,你只能使用下面语法

SHOW TABLE STATUS [{FROM | IN} db_name]

[LIKE 'pattern' | WHERE expr]

mysql> SHOW TABLE STATUS FROM gsp WHERE Name='TEST';

4:如何修改相关表的存储引擎?

修改表的存储引擎非常简单,语法如下所示

ALTER TABLE my_table ENGINE = InnoDB;

mysql> ALTER TABLE TEST ENGINE=MyISAM;

Query OK, 0 rows affected (0.02 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> SHOW CREATE TABLE TEST \G;

*************************** 1. row ***************************

Table: TEST

Create Table: CREATE TABLE `TEST` (

`ID` int(11) DEFAULT NULL,

`COL1` varchar(6) DEFAULT NULL,

`COL2` varchar(6) DEFAULT NULL,

`COL3` varchar(6) DEFAULT NULL,

`COL4` varchar(6) DEFAULT NULL

) ENGINE=MyISAM DEFAULT CHARSET=latin1

1 row in set (0.00 sec)

ERROR:

No query specified

mysql>

5:创建表的时候如何指定存储引擎。

创建表的时候,如果要指定存储引擎,只需要设置参数ENGINE即可。非常简单。

mysql> CREATE TABLE TEST1 (ID INT) ENGINE=InnoDB;

Query OK, 0 rows affected (0.02 sec)

mysql>  CREATE TABLE TEST2 (ID INT) ENGINE=MyISAM;

Query OK, 0 rows affected (0.00 sec)

参考资料:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值