我是靠谱客的博主 爱听歌红酒,最近开发中收集的这篇文章主要介绍MySQL 查看某表的存储引擎_查看mysql当前表使用的存储引擎(转),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

说明:

当我们创建表 “test”表时

CREATE TABLE test (id INT(11)default NULL auto_increment,s char(60)default NULL,PRIMARY KEY(id)ENGINE=InnoDB;

一般情况这样没任何问题。但是,如果MySQL服务器配置中未启用InnoDB存储引擎。则在创建表 test 时,MySQL还是会自动选择默认的存储引擎MyISAM来创建test表。因为通过SHOW CREATE TABLE 表名 来查看表使用的mysql存储引擎是不准确的。

实例:

mysql服务器未启用InnoDB存储引擎;

库名:mytest;

表名:test(mytest.test);

帐号:root;

密码:mypassword;

列 “Engine” 下显示的值表示表正在使用的 MySQL 存储引擎。

1.确认 MySQL 服务器 是否启用InnoDB存储引擎

mysql>SHOW ENGINES;+------------+---------+----------------------------------------------------------+|Engine|Support|Comment|+------------+---------+----------------------------------------------------------+|InnoDB|NO |Supportstransactions,row-level locking,andforeign keys||MRG_MYISAM |YES |Collectionof identical MyISAMtables ||BLACKHOLE |YES |/dev/nullstorage engine (anything you write to it disa

|CSV |YES |CSV storage engine ||MEMORY |YES |Hashbased,stored inmemory,useful fortemporary tables||FEDERATED |NO |FederatedMySQLstorage engine ||ARCHIVE |YES |Archivestorage engine ||MyISAM|DEFAULT |Defaultengine asof MySQL3.23withgreat performance|+------------+---------+----------------------------------------------------------+8rows inset(0.00sec)

返回结果是:InnoDB对应的Support为NO,表示未启用InnoDB存储引擎。

2.创建表 “test”

mysql>create database mytest;QueryOK,1row affected (0.02sec)mysql>usemytest;Databasechanged

mysql>CREATE TABLE test (->id INT(11)defaultNULL auto_increment,->s char(60)defaultNULL,->PRIMARY KEY (id)->)ENGINE=InnoDB;QueryOK,0rows affected,2warnings (0.06sec)mysql>

3.使用“SHOW CREATE TABLE 表名” 来查看,这种方式是不准确的

mysql>SHOW CREATE TABLE test;+-------+----------------------------------------------------------------------------+|Table|CreateTable|+-------+----------------------------------------------------------------------------+|test |CREATE TABLE `test`(`id`int(11)NOT NULL AUTO_INCREMENT,`s`char(60)DEFAULT NULL,PRIMARY KEY (`id`)ENGINE=InnoDBDEFAULT CHARSET=latin1 |+-------+----------------------------------------------------------------------------+1row inset(0.00sec)

可以看到test表还是InnoDB引擎!!

4.使用SHOW TABLE STATUS from 数据库库名 where Name=’表名’;这是正确的方式

# mysql -uroot -p'mypassword'Welcometo the MySQLmonitor.Commandsendwith;org.YourMySQLconnection id is221Serverversion:5.1.41-3ubuntu12.7(Ubuntu)Type'help;'or'h'forhelp.Type'c'to clear the current input statement.mysql>SHOW TABLE STATUS frommytest whereName='test';+------------+--------+---------+------------+------+----------------+-------------+|Name|Engine|Version|Row_format|Rows|Avg_row_length|Data_length|+------------+--------+---------+------------+------+----------------+-------------+|test |MyISAM|10|Fixed|0|0|0|+------------+--------+---------+------------+------+----------------+-------------+1row inset(0.02sec)mysql>

5.mysqlshow -u 数据库登录帐号 -p ‘数据库登录帐号密码’ – -status 数据库库名 表名,这也是正确的方式

# mysqlshow -uroot -p'mypassword' --status mytest testDatabase:mytest Wildcard:test

+------------+--------+---------+------------+------+----------------+-------------+|Name|Engine|Version|Row_format|Rows|Avg_row_length|Data_length|+------------+--------+---------+------------+------+----------------+-------------+|test |MyISAM|10|Fixed|0|0|0|+------------+--------+---------+------------+------+----------------+-------------+

最后:

可以看出,在未启用InnoDB存储引擎的情况下,我们发现4,5步返回的结果是正确的,列Engine为MyISAM而不是InnoDB存储引擎。而第3步使用 “SHOW CREATE TABLE 表名” 来查看表使用的mysql存储引擎是不准确的。

http://coolnull.com/2759.html

最后

以上就是爱听歌红酒为你收集整理的MySQL 查看某表的存储引擎_查看mysql当前表使用的存储引擎(转)的全部内容,希望文章能够帮你解决MySQL 查看某表的存储引擎_查看mysql当前表使用的存储引擎(转)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部