mysql如何查询表类型

59次阅读
没有评论

共计 2442 个字符,预计需要花费 7 分钟才能阅读完成。

这篇文章将为大家详细讲解有关 mysql 如何查询表类型,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

查询方法:1、使用“SHOW TABLE STATUS FROM ` 数据库名 `;”语句,可列出指定数据库中所有表的信息,包括表类型;2、使用“SHOW CREATE TABLE ` 数据表名 `;”语句,可列出指定数据表的信息,包括表类型。

本教程操作环境:windows7 系统、mysql8 版本、Dell G3 电脑。

MySQL 数据表主要支持六种类型,分别是:BDB、HEAP、ISAM、MERGE、MYISAM、InnoBDB。

这六种又分为两类,一类是”事务安全型”(transaction-safe),包括 BDB 和 InnoDB;其余都属于第二类,称为”非事务安全型”(non-transaction-safe)。

BDB 全称是”Brekeley DB”, 它是 Mysql 最早的具有事务能力的表的类型,由 Sleepycat Software(http://www.sleepycat.com)开发。它提供了事务控制能力功能,它确保一组命令全部执行成功,或者当任何一个命令出现错误时所有命令的结果都被回退,可以想像在电子银行中事务控制能力是非常重要的。支持 COMMIT、ROLLBACK 和其他事务特性。最新版本的 Mysql 已经计划移除对 BDB 的支持,转而全力发展 InnoDB。

InnoDB 是较新的事务安全型存储引擎,用于事务处理应用程序,支持 BDB 的几乎所有特性,并具有众多新特性,包括 ACID 事务支持。

特性:

事务处理机制

支持外链

崩溃后能立即恢复

支持外键功能,级联删除

支持并发能力

在硬盘上的存储方式:InnoBDB frm

最新版本的 Mysql 已经计划移除对 BDB 的支持,转而全力发展 InnoDB。InnoDB 对 Mysql 有更好的特性支持,而且开发社区活跃。

MyISAM 默认的 MySQL 插件式存储引擎,它是基于 ISAM 类型,但它增加了许多有用的扩展,它是在 Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意,通过更改 STORAGE_ENGINE 配置变量,能够方便地更改 MySQL 服务器的默认存储引擎。
优点:

1. 比 ISAM 表更小,所占资源更少

2. 可以在不同平台间二进制移植表的类型在创建表时指定。

ISAM 是 MyISAM 类型出现之前 MySQL 表使用的默认类型,现在已经被 MyISAM 代替。

Memory(HEAP)是 MySQL 表中访问最快的表,将所有数据保存在 RAM 中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。注意,这种类型下数据是非持久化设计的,它一般适应于临时表,如果 MySQL 或者服务器崩溃,表中数据全部丢失。

Merge 是一种值得关注的新式表,它是由一组 MyISAM 表组成,之所合并主要出于性能上考虑,因为它能够提高搜索速度,提高修复效率,节省磁盘空 间。允许 MySQL DBA 或开发人员将一系列等同的 MyISAM 表以逻辑方式组合在一起,并作为 1 个对象引用它们。对于诸如数据仓储等 VLDB 环境十分适合。有时它以 MRG_MYISAM 名称出现。

Archive 为大量很少引用的历史、归档、或安全审计信息的存储和检索提供了完美的解决方案。

Federated 能够将多个分离的 MySQL 服务器链接起来,从多个物理服务器创建一个逻辑数据库。十分适合于分布式环境或数据集市环境。

NDBCluster/Cluster/NDB MySQL 的簇式数据库引擎,尤其适合于具有高性能查找要求的应用程序,这类查找需求还要求具有最高的正常工作时间和可用性。

CSV 使用标准的 CSV 格式,由逗号隔开的文本文件,适应于外部数据交换

Blackhole 它会接受数据但不保存,而且对任何检索请求返回一个空集。它一般适应于数据会被自动复制并不进行本地保存的分布式数据库设计。(不确定的)似乎也可以用于临时禁止 / 忽略对数据库的应用程序输入。

Example 这是一个测试引擎,你可以创建一个这样的表,但既不能写入数据,也不能检索数据。它似乎是一个针对 MySql 开发者提供的示例引擎。

有关操作和查看表类型的命令语法如下

--
--  创建表时指定表类型的方法
CREATE TABLE `message` (`id` int(11) NOT NULL auto_increment,
`sender` varchar(255) default NULL,
`receiver` varchar(255) default NULL,
`content` text,
`is_read` char(1) default  N ,
`send_time` datetime default NULL,
`del_flag` tinyint(4) default  0 ,
PRIMARY KEY (`id`)
) ENGINE=MYISAM;
 
--  也可以创建后更改:ALTER TABLE `message` ENGINE = INNODB;

查看表类型

方法 1:

--  查看表类型(存储引擎)SHOW TABLE STATUS FROM `test`;

结果为数据库 test 中所有表的信息,其中第二项 type 即是表的类型。

方法 2:

 --  查看表类型(存储引擎)2
SHOW CREATE TABLE `message`;

结果为表 message 创建时的信息,其中有 TYPE 或 ENGINE 一项,指定了表的类型(存储引擎)。

注意:老版本的 MySQL 使用 TYPE 而不是 ENGINE(例如,TYPE = MYISAM)。MySQL 5.1 为向下兼容而支持这个语法,但 TYPE 现在被轻视,而 ENGINE 是首先的用法。一般地,ENGINE 选项是不必要的;除非默认已经被改变了,MyISAM 是默认存储引擎。

关于“mysql 如何查询表类型”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-15发表,共计2442字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)