前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql存储引擎总结

Mysql存储引擎总结

作者头像
海盗船长
发布2023-10-11 09:31:11
1890
发布2023-10-11 09:31:11
举报
文章被收录于专栏:基础知识文章

一、MySQL体系结构

  • 连接层 最上层是一些客户端和链接服务,主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限。
  • 服务层 第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化,部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如过程、函数等。
  • 引擎层 存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API和存储引擎进行通信。不同的存储引擎具有不同的功能,这样我们可以根据自己的需要,来选取合适的存储引擎。
  • 存储层 主要是将数据存储在文件系统之上,并完成与存储引擎的交互。

二、存储引擎简介

存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。

1.在创建表时,指定存储引擎

代码语言:javascript
复制
CREATE TABLE表名(
字段1 字段1类型 [COMMENT 字段1注释],
字段n 字段n类型 COMMENT 字段n注释
)ENGINE=INNODB [COMMENT表注释];

2.查看当前数据库支持的存储引擎

代码语言:javascript
复制
SHOW ENGINES

三、存储引擎特点

1.InnoDB

①介绍
  • InnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在MySQL5.5之后,InnoDB是默认的MySQL存储引擎。
②特点
  • DML操作遵循ACID模型,支持事务;
  • 行级锁,提高并发访问性能:
  • 支持外键FOREIGN KEY约束,保证数据的完整性和正确性;
③文件
  • XXX.ibd:xx代表的是表名,innoDB引擎的每张表都会对应这样一个表空间文件,存储该表的表结构(frm、sdi)、数据和索引。 参数:innodb_file_per_table

2.MyISAM

①介绍
  • MyISAM是MySQL早期的默认存储引擎。
②特点
  • 不支持事务,不支持外键
  • 支持表锁,不支持行锁
  • 访问速度快
3.Memory
①介绍
  • Memoryi引擎的表数据时存储在内存中的,由于受到硬件问题、或断电问题的影响,只能将这些表作为临时表或缓存使用。
②特点
  • 内存存放
  • hash索引(默认)
③文件
  • x.sdi:存储表结构信息

四、存储引擎选择

在选择存储引擎时,应该根据应用系统的特点选择合适的存储引擎。对于复杂的应用系统,还可以根据实际情况选择多种存储引擎进行组合。

  • InnoDB:是Mysql的默认存储引擎,支持事务、外键。如果应用对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还包含很多的更新、删除操作,那么InnoDB存储引擎是比较合适的选择。 MyISAM:如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性、并发性要求不是很高,那么选择这个存储引擎是非常合适的。
  • MEMORY:将所有数据保存在内存中,访问速度快,通常用于临时表及缓存。MEMORYE的缺陷就是对表的大小有限制,太大的表无法缓存在内存中,而且无法保障数据的安全性。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、MySQL体系结构
  • 二、存储引擎简介
    • 1.在创建表时,指定存储引擎
      • 2.查看当前数据库支持的存储引擎
      • 三、存储引擎特点
        • 1.InnoDB
          • ①介绍
          • ②特点
          • ③文件
        • 2.MyISAM
          • ①介绍
          • ②特点
          • 3.Memory
      • 四、存储引擎选择
      相关产品与服务
      对象存储
      对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档