目录
mysql存储引擎层
介绍
存储引擎层是mysql架构中负责数据存储、检索、更新和删除操作的组件
- 是mysql中的数据存储和管理的核心部分
- 不同的存储引擎支持不同的功能、性能特征和存储方式
存储引擎
介绍
负责实际数据存储、读取、修改、删除等操作的组件
- 可以在服务器运行时动态安装和卸载(热拔插)
查看
列信息分别为 : 存储引擎名/是否支持/简介/是否支持事务/是否支持分布式/是否支持保存点
- 可以看到,只有innodb支持事务
存储引擎的设计思想
存储引擎在处理数据的过程中,需要考虑很多问题:
如何组织数据(数据结构)?
- 数据的组织方式决定了数据如何存储和访问
如何保证数据安全?
- 如果在修改数据的过程中,服务器突然挂掉怎么办,是恢复执行还是撤销操作
如何保证读写效率?
- 比如:访问磁盘速度慢,借助内存中的缓存提高效率/使用其他机制
使用哪种存储介质?
- 存储介质大致有机械硬盘 / 固态硬盘 / 内存三类
- 存储磁盘和内存的区别:
如何保证并发安全?
- 在多用户环境下,如何确保多个线/进程并发访问数据库时不会产生冲突或数据不一致?如何实现隔离性?
- 可以使用锁机制 / 版本控制
如何管理数据的存储空间?
- 数据库的表空间设计需要保证在空间管理上有足够的灵活性,以便根据需求选择合适的表空间类型 -- 共享/独立表空间
- 分页存储数据,如果某条记录被删除,使用标记法来复用空间
- 如果数据量过大,如何解决? -- 在存储表数据时,可以压缩表的数据行,以减少存储空间
这些问题都是每种存储引擎需要考虑并解决的