首页 > 数据库 >MySQL查看修改存储引擎总结

MySQL查看修改存储引擎总结

时间:2023-03-29 15:46:04浏览次数:48  
标签:engine 存储 DEFAULT MySQL storage 引擎 mysql TABLE

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

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

 1.1 使用show engines命令。

 

 

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为默认存储引擎了。

 

 

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

 

 

注意,这个系统变量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)

参考资料:

https://dev.mysql.com/doc/refman/5.6/en/storage-engine-setting.html

https://dev.mysql.com/doc/refman/5.7/en/storage-engine-setting.html

 

 

 

 

标签:engine,存储,DEFAULT,MySQL,storage,引擎,mysql,TABLE
From: https://www.cnblogs.com/libras/p/17269151.html

相关文章

  • 存储过程的创建和调用
           ......
  • docker外挂nfs存储
    一、nfs安装1、安装依赖yum-yinstallnfs-utilsrpcbind2、设定目录mkdir/nfs-pchmod777/nfs3、创建exports vi/etc/exports......
  • 在 Rainbond 上使用 Curve 云原生存储
    Curve是网易主导自研的现代化存储系统,目前支持文件存储(CurveFS)和块存储(CurveBS)。CurveBS的核心应用场景主要包括:虚拟机/容器的性能型、混合型、容量型云盘或持久......
  • 分布式技术原理与算法解析 04 - 存储&高可靠
    分布式存储分布式数据复制技术常用于数据备份同步复制技术注重一致性,用户请求更新数据库时,主数据库要同步到备数据库后才结束阻塞返回给用户异步复制技术注重可用......
  • MySQL之MHA高可用配置及故障切换实例
      一、MHA概述1.1MHA是什么MHA(MasterHighAvailability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。MHA的出现就是解决MySQL单点的问......
  • MySQL GTID主从复制
    MySQL在5.6的版本推出了GTID复制,相比传统的复制,GTID复制对于运维更加友好,这个事务是谁产⽣,产⽣多少事务,⾮常直接的标识出来,当然GTID也有限制,对于什么是GTID可以参考我之前......
  • MyCAT实现MySQL的读写分离
     在MySQL中间件出现之前,对于MySQL主从集群,如果要实现其读写分离,一般是在程序端实现,这样就带来一个问题,即数据库和程序的耦合度太高,如果我数据库的地址发生改变......
  • mysql结合binlog实现数据误删误改后的数据恢复
    mysql结合binlog实现数据误删误改后的数据恢复测试数据:建表CREATETABLE`student`(`id`intNOTNULLAUTO_INCREMENT,`name`varchar(255)COLLATEutf8mb4_gener......
  • MySQL高级语句(二)
     一、Mysql高阶语句1、别名字段别名、表格别名语法:SELECT“表格別名”.“字段1”[AS]“字段1別名”FROM“表格名”[AS]“表格別名”;123......
  • C# RulesEngine 规则引擎
    RulesEngine是C#写的一个规则引擎类库仓库地址:https://github.com/microsoft/RulesEngine使用方法:https://microsoft.github.io/RulesEngine文档地址:https://github.......