Mysql详细剖析数据库中的存储引擎

目录
  • 前言
  • 存储引擎
    • 什么是存储引擎?
    • Mysql的体系结构:
      • Mysql的体系结构分为四层:
    • 存储引擎的查看
    • 存储引擎的指定
    • 存储引擎的特点
      • InnoDB介绍
      • InnoDB特点
      • InnoDB文件
    • 存储引擎的选择
  • 总结撒花

前言

哈喽各位友友们,我今天又学到了很多有趣的知识,现在迫不及待的想和大家分享一下!我仅已此文,和大家分享【Mysql系列】——详细剖析数据库中的存储引擎~都是精华内容,可不要错过哟!!!

存储引擎

什么是存储引擎?

存储引擎是数据库中非常关键的部分,它就像是飞机、火箭中的引擎那样。我们能不能把飞机上的存储引擎发到火箭上去呢? 显然是不可能的,因为引擎的使用是要看使用的场景的。而在Mysql中,存储引擎也是一样的,其没有好坏之分。我们需要在合适的场景下使用合适的存储引擎才是我们需要做到位的。存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可以被称为表类型。

Mysql的体系结构:

Mysql的体系结构分为四层:

MYsql的体系结构如下图所示:

连接层

最上层是一些客户端和链接服务,主要完成一些类似于连接处理,授权认证,及相关的安全方案,服务器也会为安全接入的每个客户端验证它所具有的操作权限。

服务层

第二层架构主要完成大多数的核心服务功能,如SOL接口,并完成缓存的查询,SOL的分析和优化,部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如 过程、函数等。

引擎层

存储引警真正的负责了MvSOL中数据的存储和提取,服务器通过API和存储引警进行通信。不同的存储引擎具有不同的功能,这样我们可以根据自己的需要,来选取合适的存储引擎。

存储层

主要是将数据存储在文件系统之上:并完成与存储引擎的交互。

存储引擎的查看

存储引擎是有很多的,在MYsql 5.5 之后,默认的存储引擎是InnoDB 存储引擎。之前默认的是Memory 存储引擎。

show engines;

create table Course(
    Con int primary key auto_increment,
    Cname varchar(10),
    Cpon int,
    Ccredit int
)

show create table course;

存储引擎的指定

例如,我们可以在创建表的同时,指定此表的存储引擎类型。

create table test_mysql(
    name varchar(10),
    age int
) engine = Memory;

存储引擎的特点

这里重点介绍以下 InnoDB

InnoDB介绍

InnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在 MvSOL 5.5 之后,InnoDB是默认的 MvSOL存储引擎。

InnoDB特点

  • DML操作遵循ACID模型,支持事务;
  • 行级锁,提高并发访问性能;
  • 支持外键FOREIGN KEY约束,保证数据的完整性和正确性:

InnoDB文件

  • xxx.ibd:xxx代表的是表名,innoDB引擎的每张表都会对应这样一个表空间文件,存储该表的表结构(frm、sdi)、数据和索引。
  • 参数:innodb file per table

最后用一张图,来展示一下InnoDB 的逻辑存储结构。

总结:InnoDB 是支持事务的,而MyISAM不支持;InnoDB 是支持行锁的,而MyISAM不支持,支持表锁;InnoDB 是支持外键的,而MyISAM不支持;

存储引擎的选择

总结撒花

本篇文章旨在分享【Mysql系列】——详细剖析数据库中的存储引擎。希望大家通过阅读此文有所收获!

以上就是Mysql详细剖析数据库中的存储引擎的详细内容,更多关于剖析数据库的存储引擎的资料请关注我们其它相关文章!

(0)

相关推荐

  • 深入探讨:MySQL数据库MyISAM与InnoDB存储引擎的比较

    MySQL有多种存储引擎,MyISAM和InnoDB是其中常用的两种.这里介绍关于这两种引擎的一些基本概念(非深入介绍).MyISAM是MySQL的默认存储引擎,基于传统的ISAM类型,支持全文搜索,但不是事务安全的,而且不支持外键.每张MyISAM表存放在三个文件中:frm 文件存放表格定义:数据文件是MYD (MYData):索引文件是MYI (MYIndex).InnoDB是事务型引擎,支持回滚.崩溃恢复能力.多版本并发控制.ACID事务,支持行级锁定(InnoDB表的行锁不是绝对的,如果

  • MySQL数据库MyISAM存储引擎转为Innodb的方法

    mysql数据库存储引擎为MyISAM的时候,在大访问量的情况下数据表有可能会出现被锁的情况,这就会导致用户连接网站时超时而返回502,此时就需要MySQL数据库MyISAM存储引擎转为Innodb.步骤如下: 1.导出CentOS数据库的表结构 复制代码 代码如下: mysqldump -d -uxxx -p centos > centos_table.sql 其中-d参数表示不导出数据,只导出表结构 2.替换centos_table.sql里的MyISAM为INNODB 复制代码 代码如下:

  • MySQL数据库存储引擎和分支现状分析

    MySQL随着相应的各主创和内部开发人员的离去,缔造了各个不同的引擎和分支,让MySQL有希望继续发扬光大起来. 在MySQL经历了2008年Sun的收购和2009年Oracle收购Sun的过程中,基本处于停滞发展的情况,在可以预见的未来,MySQL是肯定会被Oracle搁置并且逐步雪藏消灭掉的.MySQL随着相应的各主创和内部开发人员的离去,缔造了各个不同的引擎和分支,让MySQL有希望继续发扬光大起来. 本文大致讲解一下MySQL目前除了主要的 MyISAM.InnoDB.Heap(Memo

  • MySQL数据库三种常用存储引擎特性对比

    MySQL 的存储引擎可能是所有关系型数据库产品中最具有特色的了,不仅可以同时使用多种存储引擎,而且每种存储引擎和MySQL之间使用插件方式这种非常松的耦合关系. 由于各存储引擎功能特性差异较大,这篇文章主要是介绍如何来选择合适的存储引擎来应对不同的业务场景. MyISAM 特性 不支持事务:MyISAM存储引擎不支持事务,所以对事务有要求的业务场景不能使用 表级锁定:其锁定机制是表级索引,这虽然可以让锁定的实现成本很小但是也同时大大降低了其并发性能 读写互相阻塞:不仅会在写入的时候阻塞读取,M

  • MySQL数据库存储引擎介绍及数据库的操作详解

    目录 MySQL存储引擎 InnoDB存储引擎 MyISAM储存引擎 Memory存储引擎 Archive存储引擎 数据库的相关操作 创建数据库 修改数据库 删除数据库 查看数据库列表 打开数据库 MySQL存储引擎 InnoDB存储引擎 InnoDB存储引擎是MySQL常见的的存储引擎, 它给MySQL的表提供了事务处理.回滚.崩溃修复和多版本并发控制等功能: 支持列值自动增长(列值不能为空且必须唯一): 支持外键. 缺点: 占用的空间相对较大 MyISAM储存引擎 MyISAM储存引擎支持3

  • Mysql详细剖析数据库中的存储引擎

    目录 前言 存储引擎 什么是存储引擎? Mysql的体系结构: Mysql的体系结构分为四层: 存储引擎的查看 存储引擎的指定 存储引擎的特点 InnoDB介绍 InnoDB特点 InnoDB文件 存储引擎的选择 总结撒花 前言 哈喽各位友友们,我今天又学到了很多有趣的知识,现在迫不及待的想和大家分享一下!我仅已此文,和大家分享[Mysql系列]——详细剖析数据库中的存储引擎~都是精华内容,可不要错过哟!!! 存储引擎 什么是存储引擎? 存储引擎是数据库中非常关键的部分,它就像是飞机.火箭中的引

  • 聊聊MySQL中的存储引擎

    基础知识 在关系型数据库中每一个数据表相当于一个文件,而不同的存储引擎则会构建出不同的表类型. 存储引擎的作用是规定数据表如何存储数据,如何为存储的数据建立索引以及如何支持更新.查询等技术的实现. 在Oracle以及SqlServer等数据库中只支持一种存储引擎,故其数据存储管理机制都是一样的,而MySQL中提供了多种存储引擎,用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎. 如处理文本文件可使用txt类型,处理图片可使用png类型 存储引擎 在My

  • 详解mysql中的存储引擎

    mysql存储引擎概述 什么是存储引擎? MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能. 例如,如果你在研究大量的临时数据,你也许需要使用内存存储引擎.内存存储引擎能够在内存中存储所有的表格数据.又或者,你也许需要一个支持事务处理的数据库(以确保事务处理不成功时数据的回退能力). 这些不同的技术以及配套的相关

  • Mysql数据库支持的存储引擎对比

    目录 存储引擎 MySQL支持的存储引擎 并发控制 锁 锁颗粒 事务 外键 索引 各种存储引擎的特点 存储引擎 Mysql可以将数据以不同的技术存储在文件(内存)中,这种技术就称为存储引擎. 每一种存储引擎使用不同的存储机制.索引技巧.锁定水平,最终提供广泛且不同的功能. MySQL支持的存储引擎 MyISAM InnoDB Memory CSV Archive 并发控制 当多个连接对记录进行修改时保证数据的一致性和完整性. 锁 1.共享锁(读锁):在同一时间段内,多个用户可以读取同一个资源,读

  • 详解MySql中InnoDB存储引擎中的各种锁

    目录 什么是锁 InnoDB存储引擎中的锁 锁的算法 行锁的3种算法 幻像问题 锁的问题 脏读 不可重复读 丢失更新 死锁 什么是锁 现实生活中的锁是为了保护你的私有物品,在数据库中锁是为了解决资源争抢的问题,锁是数据库系统区别于文件系统的一个关键特性.锁机制用于管理对共享资源的并发访. 数据库系统使用锁是为了支持对共享资源进行并发访问,提供数据的完整性和一致性 InnoDB存储引擎区别于MyISAM的两个重要特征就是:InnoDB存储引擎支持事务和行级别的锁,MyISAM只支持表级别的锁 In

  • MySql中的存储引擎和索引

    目录 一.MySql的逻辑结构 二.什么是存储引擎 MySQL支持的存储引擎 三.操作 四.数据库的索引 索引的分类 五.索引操作 一.MySql的逻辑结构 MySQL体系结构分为四层:分别是连接层.服务层.存储引擎层.系统文件层. 连接层又称为客户端连接器(Client Connectors):提供与MySQL服务器建立的支持.连接池:管理.缓冲用户的连接,线程处理等需要缓存的需求. 服务层是MySQL Server的核心:主要包含系统管理和控制工具.SQL接口.解析器.查询优化器.缓存. 存

  • mysql跨服务查询之FEDERATED存储引擎的实现

    目录 一.FEDERATED存储引擎 1.1.说明: 1.2.局限性 1.3.跨服务的方式 二.开启FEDERATED存储引擎 1.1.查看存储引擎 三.跨服务连接示例 1.1. 目标: 1.2.创建关系 1.3.成功效果 1.4.增删改查 一.FEDERATED存储引擎 01.从5.1.26开始,默认MySQL不启用federated存储引擎,所以需要在my.cnf中加入federated选项02.或是在命令行用–federated选项启动mysqld. 1.1.说明: mysql 提供了一个

  • MySQL中InnoDB存储引擎的锁的基本使用教程

    MyISAM和MEMORY采用表级锁(table-level locking) BDB采用页面锁(page-leve locking)或表级锁,默认为页面锁 InnoDB支持行级锁(row-level locking)和表级锁,默认为行级锁 各种锁特点 表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生冲突的概率最高,并发度最低 行级锁:开销大,加锁慢:会出现死锁:锁定粒度最小,发生锁冲突的概率最低,并发度也最高 页面锁:开销和加锁时间介于表锁和行锁之间:会出现死锁:锁定粒度介于表锁和行锁之

随机推荐