MySql引擎

本文深入探讨了Mysql中Innodb与Myiasm两种常见存储引擎的特点与应用场景,解析了聚集索引与非聚集索引的区别,以及如何根据读写频率选择合适的存储引擎。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mysql的引擎有好几种,其中Innodb和Myiasm最为常用

存储引擎在mysql里是插拔式的,
什么是插拔式?
所谓的插拔式就是可以配置的,我们在建表的时候,可以在建表语句上加上一句Enginee=Myiasm,就表示要建的表使用的存储引擎为Myiasm

从上面一点可以看出,mysql的存储引擎是表级别的,存储引擎是可以由第三方公司来开发,自mysql5.5以后,mysql默认的存储引擎为innodb

聚集索引与非聚集索引

所谓的聚集索引就是索引文件跟数据文件存放在同一个文件里
非聚集索引就是索引文件跟数据文件存放在不同的文件里
从下面的图片可以看到,Myiasm的表是有3个文件组成,其中frm文件是表定义文件,无论是innodb或者是myiasm,它们都有frm文件,myd文件是myiasm的数据文件,是用来存放数据的,myi是myiasm的索引文件,
ibd是innodb的数据和索引的存储文件
在这里插入图片描述
从存储引擎的索引存放格式来看,myiasm的每一个索引,其地址都是指向数据区所在的地址,而innodb则有点不一样,innodb里默认是以id作为主索引,就是当我们没有建id主键列的时候,innodb都会创建出一个隐藏的id主键列作为索引,在这个id主键列的索引树上,其叶子节点上保存着当前节点的数据,当我们建了一个name的非主键索引时,innodb会建一个name的索引树,然后在叶子节点的每个节点上保存的是id索引树的地址
所以当我们用非id作为索引时,innodb需要检索两遍,而myiasm自需要检索一遍,所以在读多写少的表可以用myiasm作为存储引擎
在这里插入图片描述

总结:

1、mysql的存储引擎是表级别的,可以在建表时加上Enginner = 引擎名称来指定表的存储引擎
2、Myiasm的索引是非聚集索引,innodb的索引是聚集索引
3、读多写少建议使用Myiasm存储引擎,写多读少建议使用innodb

### 回答1: MySQL 数据库管理系统支持种数据库引擎。每种数据库引擎都有不同的特点,适用于不同的用例。 常见的 MySQL 数据库引擎包括: - MyISAM:MyISAM 是 MySQL 的默认引擎,在性能和数据完整性方面表现良好。它支持全文索引,但不支持事务和行级锁定。 - InnoDB:InnoDB 是一种支持事务处理和行级锁定的引擎。它通常被用于需要高可用性和数据完整性的应用程序。 - Memory:Memory 引擎将数据存储在内存中,速度非常快,但数据不能持久化。它通常用于临时存储数据或缓存数据。 - CSV:CSV 引擎允许将数据存储在 CSV 格式的文件中,并提供对 CSV 文件的简单查询支持。 - Archive:Archive 引擎提供了一种高压缩比的方式来存储大量只数据。它不支持索引,因此只能用于存储历史数据或进行批量加载。 在选择 MySQL 数据库引擎时,应考虑应用程序的性能、可用性、数据完整性以及其他特定需求,并根据这些因素来决定最后使用哪 ### 回答2: MySQL引擎是用于存储和管理数据库数据的关键组件。MySQL提供了种不同的引擎,每个引擎都具有其独特的特点和优势。下面是一些常见的MySQL引擎及其区别: 1. MyISAM引擎:这是MySQL最早的引擎,它使用表级锁定机制,适用于取频率高于入频率的场景。但是,它不支持事务处理和数据完整性的约束,因此在需要ACID事务支持的应用中不适用。 2. InnoDB引擎:这是MySQL默认的事务性存储引擎,它支持ACID事务、行级锁定和外键约束等重要特性。它适用于需要高可靠性和数据完整性的应用。InnoDB引擎通过自动将数据缓存到内存中来提高性能,并具有崩溃恢复功能,可以在数据库崩溃后恢复数据。 3. Memory引擎:也称为Heap引擎,它将表中的数据存储在内存中,因此取速度非常快。然而,由于数据存储在内存中,所以在数据库崩溃时数据会丢失。Memory引擎适用于临时数据、缓存和临时表等应用场景。 4. NDB Cluster引擎:也称为MySQL Cluster引擎,它通过将数据分布在个节点上来提供高可用性和性能。NDB Cluster引擎适合于需要高并发访问和高可用性的大规模应用,如电信、金融和电子商务等领域。 5. Archive引擎:这是一种非事务性存储引擎,适用于归档和大量入的应用。它以高度压缩的方式存储数据,节省了存储空间。Archive引擎不支持索引,只能进行全表扫描操作。 根据应用的需求和特点,选择合适的MySQL引擎可以提供更好的性能、可用性和数据完整性。 ### 回答3: MySQL是一种关系型数据库管理系统,它有个可用的引擎来处理和存储数据。在MySQL中,常用的引擎包括InnoDB、MyISAM、MEMORY、CSV等。 首先,InnoDB是MySQL的默认引擎,并且在性能和功能上提供了许优势。它支持事务处理、行级锁和外键约束等特性,适合于需要高并发的应用。InnoDB还提供了自动崩溃恢复机制,可以在数据库发生崩溃时保证数据的一致性。 其次,MyISAM是另一个常用的引擎,适用于一些取频率高但入频率较低的应用。它的优点是速度快,支持全文索引和空间索引,但不支持事务和行级锁定,也不具备自动崩溃恢复的功能。 另外,MEMORY引擎适用于数据量较小的表,将数据存储在内存中,速度非常快。然而,一旦MySQL服务器关闭,数据将丢失,不具备持久性。 此外,CSV引擎用于处理以逗号分隔的值(CSV)文件,它允许将CSV文件视为表,并进行查询和修改。但是,与其他引擎相比,CSV引擎的功能相对有限。 总之,不同的引擎适用于不同的应用场景。选择适合的引擎可以提高数据库的性能和效率,并满足应用的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啊狸的Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值