当前位置: 首页 > article >正文

mysql上课总结(1)(mysql中的常见的存储引擎)(面试)

目录

一、mysql的常见几种存储引擎。(面试)

(1)mysql的存储引擎的简要概述。

(2)mysql中常用的几种存储引擎。

1、InnoDB。

2、MyISAM。

3、MEMORY(也称为HEAP)。

4、Archive

(3)如何选择合适的存储引擎?

1、事务支持。

2、并发性能。

3、数据完整性。

4、访问速度。

5、存储需求。


一、mysql的常见几种存储引擎。(面试)

(1)mysql的存储引擎的简要概述。

  • MySQL的存储引擎是MySQL数据库的核心组件,它负责存储数据、建立索引、更新和查询数据等技术的实现
  • 存储引擎是基于表的,而不是基于数据库的。这意味着同一个数据库中的不同表可以选择不同的存储引擎。MySQL支持多种存储引擎,包括InnoDB、MyISAM、Memory、Archive等。其中,InnoDB是MySQL 5.5及以后版本的默认存储引擎
(2)mysql中常用的几种存储引擎。

1、InnoDB。
  • InnoDB 是 MySQL 默认的事务安全引擎。提供了对事务的支持,包括 ACID(原子性、一致性、隔离性、持久性)特性。

  • 支持行级锁定,允许高并发的读写操作。
  • 支持外键约束,保证数据的完整性和一致性。
  • InnoDB 引擎使用聚簇索引,将数据和索引存储在同一个B树结构中,提高了查询性能。

  • 具有崩溃恢复能力,能够在数据库崩溃后恢复数据。
  • 支持多版本并发控制(MVCC),提供了非阻塞读操作。

适用场景:适用于需要高并发写入操作、数据完整性要求高的应用程序,如银行系统、电子商务网站等。


2、MyISAM。
  • MyISAM 是 MySQL 的另一种常见引擎,不支持事务和行级锁定

  • MyISAM 引擎适合于读操作频繁、写操作较少的应用场景,如数据仓库、日志分析等。

  • 支持全文索引和压缩表格,对于特定类型的查询有一定的优势

  • 使用表级锁定,并发性能较低。
  • 不支持外键约束。
  • 提供了全文搜索功能。访问速度快,特别适用于读多写少的场景。

适用场景:适合读多写少的场景,如只读数据报表、静态内容存储等。全文检索关键词比较合适、比较快!


3、MEMORY(也称为HEAP)。
  • MEMORY 引擎将表格存储在内存,适合于临时表格或者数据存储量较小的场景。

  • 数据易失性:内存引擎不支持持久化,数据库重启时数据会丢失因此不适合用于持久性数据存储

  • 内存引擎的查询速度非常快,但受限于内存大小

  • 将数据存储在RAM中,访问速度非常快。
  • 不支持事务处理。表级锁定。

适用场景:适合临时表、缓存表或高速读写且数据可以丢失的场景快速访问


4、Archive

  • 提供了很好的压缩机制,压缩比非常高。
  • 拥有高效的插入速度
  • 支持insert、replace和select操作,但不支持update、delete操作。
  • 不支持事务和索引(5.5版本之后支持索引),查询性能较差。

适用场景:适合用于数据仓库使用和数据归档,存储大量独立的、作为历史记录的数据,如记录日志信息。

(3)如何选择合适的存储引擎?

在选择MySQL的存储引擎时,需要考虑以下几个因素。

1、事务支持。
  • 如果需要事务处理功能,则应选择InnoDB等支持事务的存储引擎。
2、并发性能。
  • 如果应用程序需要高并发的读写操作,则应选择支持行级锁定的存储引擎,如InnoDB。
3、数据完整性。
  • 如果需要保证数据的完整性和一致性,则应选择支持外键约束的存储引擎,如InnoDB。

4、访问速度。
  • 如果对数据的访问速度有较高要求,可以选择Memory等将数据存储在内存中的存储引擎,但需要注意数据易失性。

5、存储需求。
  • 如果需要存储大量历史数据或日志文件,可以选择Archive等提供高效压缩机制的存储引擎。

http://www.kler.cn/a/371237.html

相关文章:

  • ELK + Filebeat + Spring Boot:日志分析入门与实践(二)
  • Hexo提交部署命令与Git Bash Here控制终端中按下Ctrl+C无法中断hexo s的解决办法
  • Spring Bean创建流程
  • 枫清科技仲光庆:AI+行业新范式,双轮驱动助力数智化升级
  • 计算机网络IP地址分类,子网掩码,子网划分复习资料
  • vue-echarts使用
  • Python Transformer 模型的基本原理:BERT 和 GPT 以及它们在情感分析中的应用
  • 【测试平台】打包 子节点ios环境配置
  • 一道巧妙的卡特兰数建模
  • 【Postfix】Docker Postfix中继服务的实践与优化
  • SpringBoot技术在商场应急管理中的创新应用
  • Python | Leetcode Python题解之第519题随机翻转矩阵
  • 四、Prompt工程——简单应用
  • vscode和pycharm在当前工作目录的不同|python获取当前文件目录和当前工作目录
  • js 获取当前时间与前一个月时间
  • 015:地理信息系统开发平台ArcGIS Engine10.2与ArcGIS SDK for the Microsoft .NET Framework安装教程
  • 【JavaEE初阶】网络原理—关于TCP协议值滑动窗口与流量控制,进来看看吧!!!
  • 2024年1024程序人生总结
  • Linux基础—基础命令及相关知识5(ubuntu网络配置)
  • 【C语言】预处理(预编译)详解(下)(C语言最终篇)
  • Mac 电脑 使用sudo创建项目后,给了读写权限,仍报权限问题
  • 《基于 Excel 和 CSV 文件数据的迁移学习应用》
  • OmicsTools软件和R语言分析环境安装配置答疑汇总最新版
  • 算法练习:209. 长度最小的子数组
  • Python中的数据可视化:Matplotlib基础与高级技巧
  • pikachu-XSS闯关挑战