Green 发表于 2021-7-4 10:46:47

如何查看mysql中表的存储引擎类型

  

  mysql支持多种存储引擎,在处理不同类型的应用时,可以通过选择使用不同的存储引擎提高应用的效率,或者提供灵活的存储。
  mysql的存储引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中InnoDB和BDB提供事务安全表,其它存储引擎都是非事务安全表。
  查看mysql中表的存储引擎类型有几个方法,具体如下:
  

  1.show table status from 数据库库名 where name='表名',例:
  mysql> SHOW TABLE STATUS from mytest where Name='test';
  +------------+--------+---------+------------+------+----------------+-------------+(省略部分结果)
  | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length |(省略部分结果)
  +------------+--------+---------+------------+------+----------------+-------------+(省略部分结果)
  | test | MyISAM |      10 | Fixed      |    0 |            0 |         0 |(省略部分结果)
  +------------+--------+---------+------------+------+----------------+-------------+(省略部分结果)
  1 row in set (0.02 sec)
  mysql>
  

  看到Engine对应的值是MyISAM
  

  2.mysqlshow -u 数据库登录账号用户名 -p'数据库登录账号密码' --status 数据库库名 表名
  
   mysqlshow-uroot -p'mypassword'   --status mytest test
  Database:mytestWildcard: test
  +------------+--------+---------+------------+------+----------------+-------------+(省略部分结果)
  | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length |(省略部分结果)
  +------------+--------+---------+------------+------+----------------+-------------+(省略部分结果)
  | test | MyISAM |      10 | Fixed      |    0 |            0 |         0 |(省略部分结果)
  +------------+--------+---------+------------+------+----------------+-------------+(省略部分结果)
  

  可以看到Engine对应的值是MyISAM
  

  3.show create table 表名
  这种方法有时候是不准确的,例:
  服务器配置没有启用InnoDB存储引擎,在创建表的时候设置的是InnoDB存储引擎,创建表时的命令:
mysql> create database mytest;
  Query OK, 1 row affected (0.02 sec)
  mysql> use mytest;
  Database changed
  mysql> CREATE TABLE test (
  -> id INT(11) default NULL auto_increment,
  -> s char(60) default NULL,
  -> PRIMARY KEY (id)
  -> ) ENGINE=InnoDB;
  Query OK, 0 rows affected, 2 warnings (0.06 sec)
  mysql>
  

  此时使用上面的方法1和2查看会看到test表使用的引擎是MyISAM,但是使用3查看会看到如上的结果。而实际上test表使用的存储引擎是MyISAM的。
  

  4.查看mysql服务器是否启用InnoDB存储引擎:
返回结果是:"InnoDB"   对应的"Support"等于 “NO”,表示未启用InnoDB存储引擎。
  mysql> SHOWENGINES;
  +------------+---------+----------------------------------------------------------+(省略部分结果)
  | Engine   | Support | Comment                                                |(省略部分结果)
  +------------+---------+----------------------------------------------------------+(省略部分结果)
  | InnoDB   | NO      | Supports transactions, row-level locking, and foreign keys|(省略部分结果)
  | MRG_MYISAM | YES   | Collection of identical MyISAM tables                  |(省略部分结果)
  | BLACKHOLE| YES   | /dev/null storage engine (anything you write to it disa(省略部分结果)
  | CSV      | YES   | CSV storage engine                                       |(省略部分结果)
  | MEMORY   | YES   | Hash based, stored in memory, useful for temporary tables|(省略部分结果)
  | FEDERATED| NO      | Federated MySQL storage engine                           |(省略部分结果)
  | ARCHIVE    | YES   | Archive storage engine                                 |(省略部分结果)
  | MyISAM   | DEFAULT | Default engine as of MySQL 3.23 with great performance|(省略部分结果)
  +------------+---------+----------------------------------------------------------+(省略部分结果)
  8 rows in set (0.00 sec)
  mysql>

  

  


  
页: [1]
查看完整版本: 如何查看mysql中表的存储引擎类型