mysql基础7-innodb存储引擎介绍

mysql查询逻辑

在这里插入图片描述

  • 最上层是服务端,与其他c/s服务类似,管理着连接处理、授权认证、安全等。
  • 第二层包含了Mysql的核心服务功能,如查询解析、分析、优化、缓存以及内置函数。还有跨存储引擎的功能也在这一层:存储过程、触发器、视图等。
  • 第三层是存储引擎层。这层是Mysql适应性广的根本原因,存储引擎负责了Mysql中数据的存储和提取。服务器通过API于存储引擎进行通信,接口屏蔽了存储引擎之间的差异,使得存储引擎相对于上层的查询过程透明了。

常用的存储引擎有:InnoDB和MyISAM

  • InnoDB: 适用数据一致性高,支持排序,支持范围查询的场景。

支持事务支持行锁,间隙锁的使用,使得InnoDB不仅可以锁定涉及的行,还会对索引的间隙进行锁定,防止了幻读自动崩溃恢复特性实现了四个标准的隔离级别,默认隔离级别为 REPEATABLE READ (可重复读)。使用mvcc多版本控制来支持高并发由于支持事务使得可以实现真正的热备份,不用停止写入便能备份数据

  • MyISAM:适用于读多写少的业务,如工作岗位类型,类目相关信息表。

表压缩全文索引空间函数仅支持表锁

MySQL 中的 information_schema 数据库

information_schema 用于存储数据库元数据(关于数据的数据),例如数据库名、表名、列的数据类型、访问权限等。

information_schema 中的表实际上是视图,而不是基本表,因此,文件系统上没有与之相关的文件。

innodb如何存储表

(1)MySQL 使用 InnoDB 存储表时,会将表的定义和数据索引等信息分开存储,其中前者存储在 .frm文件中,后者存储在 .ibd文件中,这一节就会对这两种不同的文件分别进行介绍。

在这里插入图片描述

(2)InnoDB 存储引擎中的 B+ 树索引

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值