(二)MySQL 存储引擎

欢迎访问

1. MySQL ⽀持哪些存储引擎?默认使⽤哪个?

MyISAM 和 InnoDB,默认InnoDB

2.MyISAM 和 InnoDB 有什么区别?

  1. 事务支持

    • InnoDB 支持事务,具有 ACID(原子性、一致性、隔离性、持久性)特性,这使得它更适合于需要高度数据完整性的应用程序,如金融系统;
    • MyISAM 不支持事务,因此不适合需要事务支持的应用。它更适用于读操作频繁,写操作较少的应用,如博客系统。
  2. 行级锁定和表级锁定

    • InnoDB 使用行级锁定,这意味着它可以更好地处理并发操作,允许多个事务同时操作同一表中的不同行;
    • MyISAM 使用表级锁定,这意味着在进行写操作时会锁定整个表,这可能会导致并发性能下降,尤其在有大量写操作时。
  3. 崩溃恢复和数据完整性

    • InnoDB 具有崩溃恢复功能,可以在数据库崩溃后自动恢复数据,并保持数据库的一致性;
    • MyISAM 对于崩溃恢复的支持相对较弱,可能需要手动修复或者恢复数据。
  4. 外键约束

    • InnoDB 支持外键约束,可以保证数据的完整性,例如,可以在表之间建立关联关系,并确保关联的数据的一致性;
    • MyISAM 不支持外键约束,因此需要在应用层面来保证数据的完整性,这可能会增加开发的复杂性。
  5. 全文索引

    • MyISAM 支持全文索引,这使得在文本搜索方面效率更高;
    • InnoDB 从 MySQL 5.6 开始也支持全文索引,但 MyISAM 仍然在这方面表现更好。
  6. 索引储存

    • MyISAM 使用堆表,堆表中,主键索引和普通索引一样的,叶子节点存放的是指向堆表中数据的指针(可以是一个页编号加偏移量),指向物理地址;
    • InnoDB 使用索引组织表,对于主键的索引,页子节点存放了一整行所有数据,其他索引称为二级索引,它的页子节点只是存放了键值和主键值。

总结:

  • MyISAM 使用堆表存储,可以没有索引,主键索引和普通索引一样,叶子节点都存储的都是数据的物理地址。支持表锁,不支持事务和外键约束;

  • InnoDB 使用索引组织表储存,默认行号建立主键索引,数据在叶子节点上。普通索引上面存储的是自己的键值和主键索引,所以查询需要回表。行锁表锁,支持事务和外键约束。

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

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

相关文章

零基础小白本地部署大疆上云api(个人记录供参考)

文章目录 运行前准备前后端项目运行1.前端项目: 后端项目运行必须先依靠emqx运行必须先依靠redis运行修改后端项目的application.yml文件 运行前准备 1.保证电脑又node.js环境,可以正常使用npm 2.Java的jdk必须是11及以上版本否则无效 3.下载好emqx,red…

《java数据结构》--队列详解

一.认识队列🐱 初识队列😸 队列和栈类似都对数据的存取有着严格的要求,不同的是栈遵循先进后出的原则,而队列遵循先进先出的原则,栈是只有一端可以存取,队列是一端存,一端取。这里我来画一个图…

CSS中的writing-mode属性:解锁文本布局新维度

在网页设计的广阔天地里,CSS(层叠样式表)扮演着至关重要的角色,它赋予了我们塑造网页外观和布局的强大能力。其中,writing-mode属性是一个常被忽视但功能强大的工具,用于控制文本的书写方向和排列方式。今天…

鸿蒙ArkUI-X跨语言调用说明:【平台桥接开发指南(Android)BridgePlugin】

BridgePlugin (平台桥接) 本模块提供ArkUI端和Android平台端消息通信的功能,包括数据传输、方法调用和事件调用。需配套ArkUI端API使用,ArkUI侧具体用法请参考[Bridge API]。 说明: 开发前请熟悉鸿蒙开发指导文档: gitee.com/li-…

“2024 亚马逊云科技中国峰会,挑战俱乐部 Hands On 动手实验课程正在直播中,点击链接畅享生成式AI建构之旅,赢心动好礼

只看不过瘾?别急!我们为您准备了【生成式AI助手 Amazon Q 初体验】动手实验,一款生成式人工智能 (AI) 支持的对话助理,可以帮助您理解、构建、扩展和操作 Amazon 应用程序,您可以询问有关 Amazon 架构、最佳实践、文档…

马斯克开启军备竞赛,xAI筹集60亿美元

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调重新阅读。而最新科技(Mamba,xLSTM,KAN)则提供了大模…

【MySQL精通之路】SQL优化(1)-查询优化(12)-块嵌套循环和批处理Key访问联接

在MySQL中,可以使用批处理Key访问(BKA)联接算法,该算法使用对联接表的索引访问和联接缓冲区。 BKA算法支持内联接、外联接和半联接操作,包括嵌套的外部联接。 BKA的优点包括由于更高效的表扫描而提高了联接性能。 此…

ai智能写作怎么样,5款ai写作软件创作文章太棒了

ai智能写作究竟怎么样呢?在当今数字化的时代,AI智能写作正逐渐成为一种引人瞩目的趋势。AI智能写作是指利用人工智能技术来辅助或代替人类进行文本创作的过程。随着人工智能技术的不断发展,AI智能写作在各个领域都呈现出越来越广泛的应用。本…

微服务架构下的‘黑带’安全大师:Spring Cloud Security全攻略!

深入探讨了微服务间的安全通信、安全策略设计以及面对经典安全问题的应对策略。无论你是微服务的新手还是资深开发者,都能在本文中找到提升安全功力的秘籍。让我们一起成为微服务架构下的‘黑带’安全大师! 文章目录 1. 引言微服务安全挑战与重要性Sprin…

2024-05-28 blue-VH-driver-需求分析及问题分析

摘要: 2024-05-28 blue-VH-driver-需求分析,VH是个数据库,需要写一个driver,形态是dll/so动态库,调用VH的接口,然后给上层的标准数据服务去调用。 这个需求会涉及很多隐含的可能出问题的地方,需要详细分析…

Session和JWT(JSON Web Token)的对比

Session和JWT(JSON Web Token)都是用于用户身份验证和授权的机制,但它们的工作原理、存储位置、可扩展性和安全性等方面有所不同。以下是两者之间的主要区别: 工作原理与存储位置: Session:Session机制依赖…

详细介绍R语言在数据分析中的应用

R语言在数据分析领域扮演着举足轻重的角色,其强大的数据处理能力、丰富的统计函数和绘图功能使得数据分析变得更加高效和直观。下面将结合几个具体的数据分析案例,详细介绍R语言在数据分析中的应用 ### 案例一:电商用户行为分析 **背景介绍…

SHELL编程(三)网络基础命令 Makefile

目标 一、网络基础及相关命令(一)网络相关命令(二)重启网络服务 二、Makefile(一)标签式语法(二)目标:依赖 式语法1. 格式2. 编译流程:预处理 编译 汇编 链接3. 目标和伪…

keep-alive 使用场景和原理

Vue keep-alive 使用场景 列表数据展示: 当列表数据展示较为复杂,渲染速度可能较慢时,可以使用 keep-alive 组件缓存列表组件,避免重复渲染,提高性能。通过将列表组件包裹在 keep-alive 组件中,当数据变化时…

Java入门基础学习笔记50——ATM系统

1、项目演示; 2、项目技术实现; 1)面向对象编程: 每个账户都是一个对象,所以要设计账户类Account,用于创建账户对象封装账户信息。ATM同样是一个对象,需要设计ATM类,代表ATM管理系…

windows tomcat服务注册和卸载

首页解压tomcat压缩包,然后进入tomcat bin目录,在此目录通过cmd进入窗口, 1:tomcat服务注册 执行命令:service.bat install tomcat8.5.100 命令执行成功后,会在注册服务列表出现这个服务,如果…

基于ssm+vue图书管理系统

基于ssmvue图书管理系统 ssm477图书管理系统 相关技术 javassmmysqlvueelementui

CentOS 7 安装 Minio

获取MinIO安装包 下载地址如下:下载地址通过以下命令可直接将安装包下载至服务器 wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20230809233022.0.0.x86_64.rpm安装MinIO rpm -ivh minio-20230809233022.0.0.x86_64.rpm集成Systemd …

索引下推详情-简单入手

一.概念 索引下推(Index Pushdown)MySQL5.6添加的,是一种优化技术,用于在查询执行时将部分计算移动到存储引擎层,从而减少数据传输和计算的开销(减少回表查询次数),提高查询性能。 …

14、类与对象(采用图解方式分析内存结构)①

在idea中创建一个新文件,名称为Hello.java 其中,Hello就是一个类,main是这个类里面的方法,这意味着我们在学习的时候已经在使用类了。 对象和类 一、概念二、⭐内存分配机制分析Ⅰ、基本内存结构⭐⭐Ⅱ、调用类方法的内存分析&am…