MySql中常用的引擎有哪些

72次阅读
没有评论

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

自动写代码机器人,免费开通

这篇文章给大家分享的是有关 MySql 中常用的引擎有哪些的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考。一起跟随丸趣 TV 小编过来看看吧。

数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。

现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySql 的核心就是存储引擎。

存储引擎查看

MySQL 给开发者提供了查询存储引擎的功能,我这里使用的是 MySQL5.1,可以在命令行窗口使用:

SHOW ENGINES

命令来查看 MySQL 使用的引擎,命令的输出为(我用的 Navicat Premium):

MySql 中常用的引擎有哪些

看到 MySQL 给用户提供了这么多存储引擎,包括处理事务安全表的引擎和出来了非事物安全表的引擎。

如果要想查看数据库默认使用哪个引擎,可以通过使用命令:

SHOW VARIABLES LIKE storage_engine

来查看,查询结果为:

MySql 中常用的引擎有哪些

在 MySQL 中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎。Support 列的值表示某种引擎是否能使用:YES 表示可以使用、NO 表示不能使用、DEFAULT 表示该引擎为当前默认的存储引擎。

下面来看一下其中几种常用的引擎。

一、Innodb

支持事务,是事务安全的,提供行级锁与外键约束,有缓冲池,用于缓冲数据和索引。

适用场景:用于事务处理,具有 ACID 事物支持,应用于执行大量的 insert 和 update 操作的表。

二、MyISAM  

不支持事务,不支持外键约束,不支持行级锁,操作时需要锁定整张表,不过会保存表的行数,所以当执行 select count(*) from tablename 时执行特别快。

适用场景:用于管理非事务表,提供高速检索及全文检索能力,适用于有大量的 select 操作的表,如 日志表

三、MEMORY    

使用存在于内存中的内容创建表,每一个 memory 只实际对应一个磁盘文件。因为是存在内存中的,所以 memory 访问速度非常快,而且该引擎使用 hash 索引,可以一次定位,不需要像 B 树一样从根节点查找到支节点,所以精确查询时访问速度特别快,但是非精确查找时,比如 like,这种范围查找,hash 就起不到作用了。另外一旦服务关闭,表中的数据就会丢失,因为没有存到磁盘中。

适用场景:主要用于内容变化不频繁的表,或者作为中间的查找表。对表的更新要谨慎因为数据没有被写入到磁盘中,服务关闭前要考虑好数据的存储

四、MERGE

MERGE 存储引擎把一组 MyISAM 数据表当做一个逻辑单元来对待,让我们可以同时对他们进行查询。构成一个 MERGE 数据表结构的各成员 MyISAM 数据表必须具有完全一样的结构。每一个成员数据表的数据列必须按照同样的顺序定义同样的名字和类型,索引也必须按照同样的顺序和同样的方式定义。

除了便于同时引用多个数据表而无需发出多条查询,MERGE 数据表还提供了以下一些便利。

MERGE 数据表可以用来创建一个尺寸超过各个 MyISAM 数据表所允许的最大长度逻辑单元

你看一把经过压缩的数据表包括到 MERGE 数据表里。比如说,在某一年结束之后,你应该不会再往相应的日志文件里添加记录,所以你可以用 myisampack 工具压缩它以节省空间,而 MERGE 数据表仍可以像往常那样工作

感谢各位的阅读!关于 MySql 中常用的引擎有哪些就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

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