zoukankan      html  css  js  c++  java
  • MySQL查看修改存储引擎总结

    本文总结了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> 

    clip_image001

     

    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> 

    clip_image003

     

    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> 

    clip_image004

     

    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

     

  • 相关阅读:
    java将一个或者多个空格进行分割
    Oracle decode()函数
    javascript 匿名函数和模块化
    javascript Math函数
    javascript 数组Array排序
    jQuery 获取屏幕高度、宽度
    fastJson 转换日期格式
    QNX Development Tools Based on Eclipse IDE
    Eclipse equinox implementation of OSGi
    Eclipse SWT
  • 原文地址:https://www.cnblogs.com/kerrycode/p/6571868.html
Copyright © 2011-2022 走看看