数据库的存储引擎

一、什么是mysql引擎?有啥作用?
mysql存储数据时,有不同的存储方式,这些存储方式使用了不同的底层实现(存储机制、索引技巧、锁定水平),底层实现的差异带来的功能也就不同。
不同场景下使用合适的存储引擎能够然让你的数据读写速度更快。
二、mysql主要的存储引擎有哪些?
Mylsam, Memory, Blackhole, CSV, Performance_Schema, Archive, Federated InnoDB
在数据库中通过show engines查看mysql存储引擎
三、Mylsam与InnoDB对比
在这里插入图片描述
扩展
四、MySql锁机制
锁粒度
**表级锁:对整张表加锁(Mylsam)
**行级锁:仅对被访问的行分别加锁(InnoDB)
锁类型
**读锁(共享锁):支持并发读
**写锁(互斥锁、排它锁): 是独占锁,上锁期间其他线程不能读表或是写表
查看当前锁状态
**show status like “table_lock%”

五、事务特性
Atomic:原子性
**事务的整个操作是一个整体,不可分割
**要么全部成功,要么全部失败
**Consistency:一致性
**事务操作的前后,表中的记录没有变化
Isolation:隔离性
**事务操作相互隔离不受影响的
Durability:持久性
**数据一旦提交,补课改变,永久改变表数据

相关命令
show variables like “autocommit”; //查看提交状态
setautocommit=off; //关闭自动提交
rollback; //数据回滚
commit; //提交数据

Mysql事务的使用(事务的理解)
在默认情况下,mysql每执行官一天SQL语句,都是一个单独的事务。如果需要在一个事务中包含多条SQL语句,那么需要开启事务和结束事务。
开启事务: starttransaction;
结束事务: commit或rollback
执行SQL语句之前,先执行start transaction, 这就开启一个事务(事务起点),然后可以去执行多条SQL语句,最后要结束事务,commit表示提交,即事务中的多条SQL语句锁做出的影响会持久化到数据库中,或者rollback,表示回滚,即回滚到事务的起点,之前所得所有操作都被撤销。

### 不同数据库存储引擎的特点和区别 #### MySQL 存储引擎对比 在MySQL这类支持多存储引擎数据库系统中,可以根据表的具体用途选择最合适的存储引擎来充分利用各引擎优势,从而实现整体性能和功能的最佳平衡[^1]。一个数据库中的多个表可以采用不同类型的存储引擎以适应多样化的性能需求和应用场景[^2]。 - **MyISAM** - 特点:提供高速的数据插入操作;适合用于只读或很少更新的大数据集查询场景。 - 缺点:不支持事务处理、外键约束以及行级锁机制,在高并发写入环境下表现不佳。 - **InnoDB** - 特点:支持完整的ACID兼容事务管理、外键参照完整性检查及行级锁定策略,这使得它非常适合于需要频繁执行增删改查混合负载的任务环境。 - 行锁定机制允许更细粒度的操作权限分配,有助于减少死锁发生概率并提升系统的吞吐能力[^4]。 #### MongoDB 存储引擎概述 对于NoSQL文档型数据库MongoDB而言,默认配置下会依据版本号选用相应的存储引擎: - **MMAPv1 (Memory-Mapped Files v1)** - MMAPv1作为MongoDB早期版本的主要存储方式之一,通过内存映射技术实现了高效的磁盘I/O访问模式。其优点在于能够很好地应对大规模批量插入请求,并且具备良好的随机读取效率。然而随着项目发展和技术进步,官方逐渐推荐用户转向更加先进的WiredTiger引擎[^3]。 - **WiredTiger** - 这是一个由第三方开发而后被MongoDB公司收购优化后的高性能持久化解决方案。相较于前代产品,新架构不仅增强了压缩率与缓存命中率指标,还引入了更为完善的日志记录体系结构,进一步保障了数据安全性和一致性水平。 ```sql -- 创建使用特定存储引擎的表格实例(仅适用于MySQL) CREATE TABLE example_table ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(50), PRIMARY KEY(id) ) ENGINE=InnoDB; ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值