MySQL----常见的存储引擎

news2024/11/24 3:53:19

存储引擎

存储引擎就是数据库如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)。

MySQL存储引擎

MySql数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。相比于Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。

MySQL常见存储引擎

  • MyISAM:这种引擎是mysql最早提供的。这种引擎又可以分为静态MyISAM、动态MyISAM 和压缩MyISAM三种,不管是何种MyISAM表,目前它都不支持事务,行级锁和外键约束的功能。
    MyISAM的表在磁盘上存储成3个文件,其文件名都和表名相同,扩展名分别是:
    .frm(存储表定义)
    .MYD(MYData,存储数据)
    .MYI(MYIndex,存储索引)
  • InnoDB:InnoDB表类型可以看作是对MyISAM的进一步更新产品,它提供了事务、行级锁机制和外键约束的功能,也是目前MySQL默认的存储引擎。
    InnoDB中索引和数据存储在同一个文件,所以InnoDB的表在磁盘上有两个文件,其文件名都和表名相同,扩展名分别是:
    .frm(存储表的定义)
    .ibd(存储数据和索引)
  • Memory(heap):这种类型的数据表只存在于内存中。它使用散列索引,所以数据的存取速度非常快。因为是存在于内存中,所以这种类型常应用于临时表中。
    每个MEMORY表实际只对应一个磁盘文件,格式是
    .frm(表结构定义)。

三者区别

在这里插入图片描述

表名解释:

  • 锁机制:表示数据库在并发请求访问的时候,多个事务在操作时,并发操作的粒度。
  • B-树索引和哈希索引:主要是加速SQL的查询速度,其中B-代表B树和B+数。
  • 外键:子表的字段依赖父表的主键,设置两张表的依赖关系。
  • 事务:多个SQL语句,保证它们共同执行的原子操作,要么成功,要么失败,不能只成功一部分,失败需要回滚事务。
  • 索引缓存和数据缓存:和MySQLServer的查询缓存相关,在没有对数据和索引做修改之前,重复查询可以不用进行磁盘!/0(数据库的性能提升,目的是为了减少磁盘I/0操作来提升数据库访问效率),读取上一次内存中查询的缓存就可以了。

总结

  • InnoDB: 支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。

  • MyISAM: 插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比较低,也可以使用。

  • MEMORY: 所有的数据都在内存中,数据的处理速度快,但是安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMOEY。它对表的大小有要求,不能建立太大的表。所以,这类数据库只使用在相对较小的数据库表。

查看MySQL存储引擎

可以通过engine关键字在创建或修改数据库时指定所使用到引擎。

show engines;

在这里插入图片描述

查看表的存储引擎

show create table student\G

在这里插入图片描述

指定存储引擎

在创建表的时候通过engine=...或type=...来指定所要使用的引擎。

create table user(
id int unsigned primary key not null auto_increment,
name varchar(50) unique not null,
age tinyint not null,
sex enum('M','W') not null
)engine=INNODB default  charset=utf8;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1817662.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Apollo配置中心】集成springboot自动监听属性变更和动态发布配置

1. 背景 在实际项目中,Spring Boot项目结合使用Apollo配置中心时,经常会遇到需要更新Apollo上的项目的一些配置,比如测试环境或生产环境中,需要修改某个类的属性值,如果我们在Apollo上更新了配置,已经在运…

M41T00串行实时时钟-国产兼容RS4C400

RS4C400是一种低功耗串行实时时钟(RTC)。内置32.768 kHz振荡器(外部晶体控制)和RAM的前8个字节用于时钟/日历功能,并以二进制编码十进制(BCD)格式配置。地址和数据通过双线双向总线串行传输。内…

WPF Prism框架搭建

WPF Prism框架搭建 1.引入Prism框架 在Nuget包管理器中搜索Prism&#xff0c;并添加到项目中 2.在项目中使用prism框架 2.1 修改app.xaml 删除项目中自带的StartupUri 修改Application节点为prism:PrismApplication 引入prism命名空间 <prism:PrismApplication x:C…

2024年中国移动游戏市场研究报告

来源&#xff1a;点点数据&#xff1a; 近期历史回顾&#xff1a; 面向水泥行业的5G虚拟专网技术要求&#xff08;2024&#xff09;.pdf 2024年F5G-A绿色万兆全光园区白皮书.pdf 2024年全球废物管理展望报告.pdf 内容管理系统 2024-2025中国羊奶粉市场消费趋势洞察报告.pdf 20…

MySQL 示例数据库大全

前言&#xff1a; 我们练习 SQL 时&#xff0c;总会自己创造一些测试数据或者网上找些案例来学习&#xff0c;其实 MySQL 官方提供了好几个示例数据库&#xff0c;在 MySQL 的学习、开发和实践中具有非常重要的作用&#xff0c;能够帮助初学者更好地理解和应用 MySQL 的各种功…

糖尿病患者血糖控制困难,4个辅助降糖方法分享。

对于糖尿病患者来讲&#xff0c;血糖控制极为困难&#xff0c;稍不留意就会致使忽高忽低的情况出现&#xff0c;今天我来教你 4 个办法来辅助降糖。 第一&#xff0c;在饮食上可多进食全谷类食物&#xff0c;中医认为谷类食物是脾胃的主食。经常吃这类食物不但能够给脾胃提供充…

DSSA(Domain-Specific Software Architecture)方法论

DSSA&#xff08;Domain-Specific Software Architecture&#xff09;方法论是一种针对特定问题领域的软件架构设计方法。在软件开发中&#xff0c;有些问题在特定领域是共通的&#xff0c;这些问题可以通过通用的抽象和解决方案来处理。DSSA方法论正是利用这一特点&#xff0c…

比 Safari 阅读模式更强大的阅读助手

一、简介 1、一款专为浏览器设计的扩展程序&#xff0c;旨在提供更为简洁、高效的网页阅读体验。它能够对网页内容进行智能提取和排版&#xff0c;自动屏蔽广告和噪音&#xff0c;使读者能够专注于网页的核心内容。此外&#xff0c;Circle 阅读助手还具备多种个性化功能&#x…

Mongodb在UPDATE操作中使用$pull操作

学习mongodb&#xff0c;体会mongodb的每一个使用细节&#xff0c;欢迎阅读威赞的文章。这是威赞发布的第68篇mongodb技术文章&#xff0c;欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题&#xff0c;欢迎在文章下面点个赞&#xff0c;或者关…

c++实战知识点

c实战知识点 一、概述1.数据2.C11的原始字面量3.数据类型的别名4.const修饰指针5.void关键字6.内存模型7.二级指针8.函数指针和回调函数9.数组10.C风格字符串11.二维数组用于函数的参数行指针&#xff08;数组指针&#xff09; 12.引用引用与const 13.各种形参的使用场景14.重载…

数据结构01 栈及其相关问题讲解

栈是一种线性数据结构&#xff0c;栈的特征是数据的插入和删除只能通过一端来实现&#xff0c;这一端称为“栈顶”&#xff0c;相应的另一端称为“栈底”。 栈及其特点 用一个简单的例子来说&#xff0c;栈就像一个放乒乓球的圆筒&#xff0c;底部是封住的&#xff0c;如果你想…

Druid 参数配置详解

简介 Java 程序很大一部分要操作数据库&#xff0c;为了提高性能操作数据库的时候&#xff0c;又不得不使用数据库连接池。 Druid 是阿里巴巴开源平台上一个数据库连接池实现&#xff0c;结合了 C3P0、DBCP 等 DB 池的优点&#xff0c;同时加入了日志监控。 Druid 可以很好的…

基础-01-计算机网络概论

一. 计算机网络的发展与分类 1.计算机网络的形成与发展 计算机网络&#xff1a;计算机技术与通信技术的结合 ICTITCT 2.计算机网络标准阶段 3.计算机网络分类1:通信子网和资源子网 通信子网:通信节点(集线器、交换机、路由器等)和通信链路(电话线、同轴电缆、无线电线路、卫…

HashMap第3讲——JDK1.8红黑树细节

上篇文章对HashMap的put方法进行了源码解析&#xff0c;并介绍了其中的两个亮点设计——位运算取代%和扰动计算。其中还有几个细节&#xff0c;比如每次扩容都是2^n是怎么做到的、JDK1.8增加的红黑树结构&#xff0c;由于篇幅原因没有介绍&#xff0c;本节就先来介绍其中的一个…

网络安全 - ARP 欺骗原理+实验

APR 欺骗 什么是 APR 为什么要用 APR A P R \color{cyan}{APR} APR&#xff08;Address Resolution Protocol&#xff09;即地址解析协议&#xff0c;负责将某个 IP 地址解析成对应的 MAC 地址。 在网络通信过程中会使用到这两种地址&#xff0c;逻辑 IP 地址和物理 MAC 地址&…

Stable Diffusion 3 即将开源 引AI界巨大震动;马斯克考虑打造X Phone并威胁禁用苹果设备

&#x1f989; AI新闻 &#x1f680; Stable Diffusion 3 即将开源 引AI界巨大震动 摘要&#xff1a;Stable Diffusion 3有望在明天开源&#xff0c;带来革命性的AI生成图像技术。该版本采用MMDiT全新架构&#xff0c;可能彻底改变AI图像生成格局。尽管Stability AI公司面临财…

国产化替代及现有程序优化

数据库优化 月中、月末程序用的多 数据库慢查询sql 较多&#xff0c;增加数据库服务器内存 现在16G通过内存数据库&#xff0c;中间件缓解数据库压力&#xff0c;热点数据通过内存数据存储客户端不直接连 数据库Sql语句 优化 避免过多join数据库读写分离&#xff0c;甚至分布…

《软件定义安全》之八:软件定义安全案例

第8章 软件定义安全案例 1.国外案例 1.1 Fortinet&#xff1a;传统安全公司的软件定义方案 Fortinet的软件定义安全架构强调与数据中心的结合&#xff0c;旨在将安全转型为软件定义的模式&#xff0c;使安全运维能够与数据中心的其他部分一样灵活、弹性。在Fortinet看来&…

cdh zookeeper报错 Canary 测试建立与 ZooKeeper 服务的连接或者客户端会话失败。

我一直纳闷这个是什么问题&#xff0c;搜索了半天没有结果&#xff0c;因为别人没有遇到过。后面我重新搭建了另一套cdh&#xff0c;然后看了一下默认的配置&#xff0c;然后更新上去才发现的。 这里面的clientPortAddress不要手动设置端口号。 别勾选通信验证 不要开启TLS/SS…

政安晨【零基础玩转各类开源AI项目】解析开源:gradio:在Python中构建机器学习Web应用

目录 下载项目 快速开始 Gradio能做什么&#xff1f; Hello, World Interface 类 组件属性 多输入和输出组件 一个图像示例 Blocks: 更加灵活且可控 你好, Blocks 更多复杂性 尝试 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏…