7-事务控制篇-1

简介: 关系型数据库(如MySQL)基于表结构与SQL,强事务(ACID)、支持复杂查询;非关系型数据库(如Redis、MongoDB)采用键值、文档等灵活模型,高性能、易扩展,适用于高并发与非结构化数据,但弱于事务与关联查询。(239字)

1.简述关系型与非关系型数据库的区别?

关系型数据库是依据关系模型来创建的数据库,所谓关系模型就是“一对一”、“一对多”、“对多对”等。常见的关系型数据库有Oracle、MySQL、SQL Server等。非关系型数据库主要基于“非关系型模型”,其中非关系型模型有:列模型、键值对模型、文档类模型。比如redis属于键值对模型。 MongoDB属于文档模型

关系型数据库的优点:

  • 易于维护:都是使用表结构,格式一致。
  • 使用方便:SQL语言通用,可用于复杂查询。
  • 复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。

关系型数据库的缺点:

  • 读写性能比较差,尤其是海量数据的高效率读写。
  • 固定的表结构,灵活度稍欠。
  • 高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

非关系型数据库的优点:

  • 格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型
  • 速度快:nosql可使用硬盘或者随机存储器作为载体,关系型数据库只能使用硬盘。
  • 成本低:nosql数据库部署简单,基本都是开源软件。

非关系型数据库的缺点:

  • 不提供sql支持,学习和使用成本较高
  • 不支持事物
  • 数据结构相对复杂,复杂查询方面稍欠

2.简述为什么需要使用索引?

优点

通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。可以加快数据的检索速度,是创建索引的主要原因。减少磁盘IO,可以直接定位。通过使用索引,可以在查询过程中,使用优化隐藏器,提高系统的性能

缺点:

创建索引和维护索引需要耗费时间,时间随着数据量的增加而增加。 索引需要占用物理空间,特别是聚簇索引,需要较大的空间。 当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

3.简述数据库索引采用B+树不采用B树的原因?

  • B+树更便于遍历:由于B+树的数据都存储在叶子结点中,分支结点均为索引,方便扫库,只需要扫一遍叶子结点即可,但是B树因为其分支结点同样存储着数据,我们要找到具体的数据,需要进行一次中序遍历按序来扫,所以B+树更加适合在区间查询的情况,所以通常B+树用于数据库索引。
  • B+树的磁盘读写代价更低:B+树在内部节点上不包含数据信息,因此在内存页中能够存放更多的key。 数据存放的更加紧密,具有更好的空间局部性。因此访问叶子节点上关联的数据也具有更好的缓存命中率。
  • B+树的查询效率更加稳定:由于非终结点并不是最终指向文件内容的结点,而只是叶子结点中关键字的索引。所以任何关键字的查找必须走一条从根结点到叶子结点的路。所有关键字查询的路径长度相同,导致每一个数据的查询效率相当。
  • B+树更适合基于范围的查询 :B树在提高了IO性能的同时并没有解决元素遍历的效率低下的问题,正是为了解决这个问题,B+树应用而生。B+树只需要去遍历叶子节点就可以实现整棵树的遍历。而且在数据库中基于范围的查询是非常频繁的,而B树不支持这样的操作或者说效率太低。

4.简述MySQL索引有哪些类型?

  • 普通索引:最基本的索引,没有任何限制。
  • 唯一索引:索引列的值必须唯一,但可以有空值。可以创建组合索引,则列值的组合必须唯一。
  • 主键索引:是特殊的唯一索引,不可以有空值,且表中只存在一个该值。
  • 组合索引:多列值组成一个索引,用于组合搜索,效率高于索引合并。
  • 全文索引:对文本的内容进行分词,进行搜索。

5.简述什么是聚簇索引及其优缺点?

聚簇索引并不是单独的索引类型,而是一种数据存储方式。

B+树索引分为聚簇索引和非聚簇索引,主键索引就是聚簇索引的一种,非聚簇索引有复合索引、前缀索引、唯一索引。

在innodb存储引擎中,表数据本身就是按B+树组织的一个索引结构,聚簇索引就是按照每张表的主键构造一颗B+树,同时叶子节点中存放的就是整张表的行记录数据,也将聚簇索引的叶子节点成为数据页。

Innodb通过主键聚集数据,如果没有定义主键,innodb会选择非空的唯一索引代替。如果没有这样的索引,innodb会隐式的定义一个主键来作为聚簇索引。

非聚簇索引又称为辅助索引,InnoDB访问数据需要两次查找,辅助索引叶子节点存储的不再是行的物理位置,而是主键值。通过辅助索引首先找到的是主键值,再通过主键值找到数据行的数据页,找到数据页对应数据行。

Innodb辅助索引的叶子节点并不包含行记录的全部数据,叶子节点除了包含键值外,还包含了相应行数据的聚簇索引键。一张表可有多个二级索引。

优点:

数据访问更快,因为聚簇索引将索引和数据保存在同一个B+树中,因此从聚簇索引中获取数据比非聚簇索引更快。聚簇索引对于主键的排序查找和范围查找速度非常快。

缺点:

插入速度严重依赖于插入顺序,按照主键的顺序插入是最快的方式,否则将会出现页分裂,严重影响性能。因此,对于InnoDB表,我们一般都会定义一个自增的ID列为主键。更新主键的代价很高,因为将会导致被更新的行移动。因此,对于InnoDB表,我们一般定义主键为不可更新。二级索引访问要两次索引查找,第一次找到主键值,第二次根据主键值找到行数据。

目录
相关文章
|
1月前
|
存储 人工智能 安全
意图共鸣科技:AI记忆链的盲存——你的记忆,只有你能打开
你和AI的对话,平台真能“看不见”吗?意图共鸣科技推出“盲存”技术:数据本地加密后上传,密钥仅用户持有,云端仅存密文。平台变“数据保管员”,无法访问明文,隐私由架构保障而非承诺。用户完全掌控记忆——可查、可导、可删,跨设备同步同样安全。
173 16
|
9天前
|
人工智能 编解码 Java
Harness Engineering:耗时一周,我是如何将应用的AI Coding率提升至90%的
文章内容基于作者个人技术实践与独立思考,旨在分享经验,仅代表个人观点。
|
10天前
|
人工智能 弹性计算 双11
2026年阿里云最新优惠券领取与使用攻略:企业补贴优惠券、学生无门槛优惠券、百炼先用后返券
2026年阿里云优惠券体系覆盖企业、学生、AI开发者三大核心场景。企业用户可申请迁云补贴和出海扶持(最高10万元),需通过官网活动页或商务经理办理;高校学生完成认证即可领取300元无门槛券,有效期1年,适用于全量公共云产品;百炼大模型用户参与按量达标返券,满20返20、满100返100、满200返200,有效降低AI开发成本。此外还有AI焕新季满减礼包、618/双11阶梯满减等不定期推出的优惠券。善用阿里云优惠券,结合身份精准领券,可实现上云与AI创新成本最优。
|
1月前
|
人工智能 自动驾驶 安全
AI时代程序员必看!揭秘Harness Engineerin
当AI批量写代码,程序员会失业吗?OpenAI实验显示:3名工程师+1500个AI智能体,5个月完成100万行代码——人类零编码!关键不在模型,而在“Harness Engineering”系统工程法:以规格书、质检台、工具架构建AI“自动驾驶”体系,重塑程序员为架构师、规则者与工具锻造师。
|
4天前
|
人工智能 Linux API
全平台零门槛:Win11、Mac、Linux 通用 Hermes Agent 安装教程
Hermes Agent是Nous Research开源的自进化AI助手(MIT协议),越用越懂你。支持多工具并行、自动记忆习惯,Python编写,v0.13.0版。兼容Win/macOS/Linux/Docker,国内用户可配清华镜像快速部署,需API密钥(如Kimi)。
|
9天前
|
人工智能 编解码 运维
告别“氛围编程”:基于 Harness 治理和 SDD 的团队级 AI 研发范式演进与实践
文章内容基于作者个人技术实践与独立思考,旨在分享经验,仅代表个人观点。
告别“氛围编程”:基于 Harness 治理和 SDD 的团队级 AI 研发范式演进与实践
|
1月前
|
人工智能 Linux iOS开发
openclaw安装教程从0到1部署,三大系统全覆盖操作流程3.0版本
覆盖 Windows、macOS、Linux 三大系统,国内海外网络环境全适配,每一步都踩过坑、反复验证过,照着做绝对能跑通!手把手带你搞定网关搭建、安全配置,再无缝对接主流大模型,一站式解决私有化部署所有难题。
|
1月前
|
机器学习/深度学习 人工智能 数据可视化
【AI加持】基于PyQt+YOLO+DeepSeek的口罩佩戴检测系统(详细介绍)
本文介绍了一个基于PyQt+YOLO+DeepSeek的口罩佩戴检测系统。该系统利用YOLOv8实现高效目标检测,结合PyQt5构建可视化界面,并集成DeepSeek模型进行智能分析。支持图片、视频、摄像头等多种数据源输入,可实时检测口罩佩戴情况。系统采用多线程技术保证流畅运行,并使用SQLite3进行数据存储管理。该方案有效解决了公共场所口罩佩戴监测难题,相比人工巡查显著提升了管理效率和准确性,为智慧城市建设和公共卫生安全管理提供了智能化解决方案。
234 33
【AI加持】基于PyQt+YOLO+DeepSeek的口罩佩戴检测系统(详细介绍)
|
12天前
|
人工智能 监控 安全
[理论篇-14]大模型评估与可观测性——如何知道你的 AI 到底行不行
用最通俗的话讲清楚,为什么 AI 应用上线前必须"考试"、上线后必须"体检",以及 2025-2026 年业界最实用的评估和监控方法。不管你是开发者、产品经理、还是企业管理者,读完这篇,你就知道怎么判断一个 AI 系统"到底好不好"。
105 3
|
1月前
|
SQL 关系型数据库 MySQL
SQL优化十大技巧,查询速度提升10倍!
数据库小学妹带你轻松提速SQL!10个实战优化技巧:精简SELECT、善用LIMIT、巧用EXPLAIN、合理建索引、避开函数索引失效、JOIN优于子查询、IN替代OR、批量操作、EXISTS优化大子查询、定期OPTIMIZE。附避坑指南,新手也能秒上手!