数据库----2

一、事务隔离级别

1.读未提交:所有事务都可以读取到别的事务中未提交的数据,会产生脏读问题,项目中基本不用,安全性差;
2.读已提交:一个事务只能看见已经提交事务所做的改变,可以避免脏读问题;
3.可重复读:这是MYSQL默认隔离级别,确保一个事务中的多个实例在并发读取数据时会读取一样的数据;不过会导致幻读,通过MVCC可以解决;
4.可串行化:事务最高级别,通过强制事务的排序,使之不可能相互冲突,从而解决幻读问题。即,在每个读的数据行上加共享锁。

二、MYSQL介绍一下两种引擎:InnoDB;MyISAM

InnoDB
1.特点:
事务支持:InnoDB 提供了完整的 ACID(原子性、一致性、隔离性、持久性)事务支持,具有提交、回滚和崩溃恢复功能。
行级锁定:通过行级锁定(Row-level locking),InnoDB 提供了更高的并发性。
外键支持:InnoDB 支持外键约束,维护数据完整性。
MVCC:采用多版本并发控制(Multi-Version Concurrency Control),提高了并发读写的性能。
聚簇索引:InnoDB 的主键索引是聚簇索引,数据行按主键顺序存储在叶节点中。
2.底层细节:
数据文件:InnoDB 将所有表的数据存储在共享表空间(innodb_file_per_table 配置项)或每个表单独的表空间文件中。
缓冲池:使用缓冲池(Buffer Pool)来缓存数据和索引页,减少磁盘 I/O 操作。
Redo 和 Undo 日志:InnoDB 使用重做日志(Redo Log)来确保数据的持久性和恢复,使用撤销日志(Undo Log)来实现事务回滚和 MVCC。
MyISAM
1.特点:
表级锁定:MyISAM 采用表级锁定(Table-level locking),对于读多写少的应用场景表现较好。
全文索引:MyISAM 支持全文索引,可以进行快速的全文搜索。
压缩表:MyISAM 支持表压缩,适用于需要节省磁盘空间的场景。
存储格式简单:存储格式较为简单,数据文件易于移植和备份。
2.底层细节:
数据文件:MyISAM 将每个表的数据存储在三个文件中:.frm 文件(表结构)、.MYD 文件(数据文件)、.MYI 文件(索引文件)。
键缓存:使用键缓存(Key Cache)来缓存索引块,减少磁盘 I/O 操作。
不支持事务:MyISAM 不支持事务和外键,适用于简单的、读多写少的应用场景。

三、合理设计数据库

数据库三范式:
****第一范式:数据表中的每个字段都必须是不可拆分的最小单元,也就是确保每一列原子性
****第二范式:满足第一范式后,表中每一列必须有唯一性,都必须依赖主键
****第三范式:满足第二范式后,表中的每一列只与主键直接相关而不是间接相关,字段没有冗余

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/21896.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

时序预测 | Matlab灰色-马尔科夫预测

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab灰色-马尔科夫预测 灰色马尔科夫预测(Grey-Markov Prediction)是一种用于时间序列预测的方法,它结合了灰色系统理论和马尔科夫链模型。灰色系统理论是一种非参数化的预测方法…

Python Requests库中data与json参数的区别

这里写目录标题 概述详细分析综合应用结论 概述 在Python的Requests库中,data和json参数常用于在HTTP请求中发送数据。它们的主要区别在于数据的编码方式和Content-Type头部。data参数通常用于发送表单数据,其数据会被编码为application/x-www-form-url…

Spring Boot 整合开源 Tess4J库 实现OCR图片文字识别

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

图片去手写软件有哪些?这三款值得一试!

图片去手写软件有哪些?在当今数字化时代,图片处理与编辑已成为我们日常生活中不可或缺的一部分。特别是在处理手写笔记、涂鸦或草图时,图片去手写软件发挥着至关重要的作用。它们能够帮助我们轻松去除图片中的手写内容,使图片更加…

高中数学:解三角形-大题练习

例题1 解析 第一小问 根据条件等式,我们发现,每一项都含有边,但是,不是每一项都含有角 于是,我们要想到用正弦定理把边换为角来解答该题 第二小问 例题2 解析 第一小问 两个等式条件,各个项都含有边&…

工业相机识别电路板元器件:彩色与黑白的区别

工业相机用于识别电路板上的元器件时,选择彩色相机或黑白相机取决于具体应用需求和条件。彩色相机能提供更丰富的信息,但处理复杂度较高;黑白相机则在处理速度和精度上具有优势。理解它们的区别和各自的优缺点,有助于在具体项目中…

C语言| 输出菱形*(梳理篇II)

C语言| 输出菱形*-CSDN博客 凡事还是得自己独立思考后,写一遍程序才能发现问题所在。 容易犯的错误: 【完整程序注释】 运行结果 /* 输出菱形 1 总行数 n为奇数,分上三角形下三角形,只考虑左边的空格和星号* 2 上三角形 行数…

k8s怎么监听资源的变更

监听k8s所有的 Deployment 资源 package mainimport ("context""fmt"v1 "k8s.io/api/apps/v1""k8s.io/apimachinery/pkg/util/json""k8s.io/client-go/informers""k8s.io/client-go/kubernetes""k8s.io/cli…

本人自己Python安装和配置无套路分享

初学者是不是经常被python的各种问题困扰,教你轻松配置好这一切 如果你已经安装了python可以直接跳到你需要的内容 安装python 如果你是Linux系统可以直接使用包管理器安装包(对于linux系统管理员应该是轻车熟路了) Debian/Ubuntu系统: sudo apt update sudo ap…

【GD32】06 - SPI (含ST7735S TFT-LCD屏幕驱动)

这篇文章我们看看GD32中如何实现SPI,软件SPI的话可以参考我之前的文章,把对应操作GPIO口的代码从STM32改成GD32就可以使用了。 【快速上手STM32】SPI通信协议&&1.8寸TFT-LCD(ST7735S)_tftlcdst7735和stm32-CSDN博客文章浏…

数据结构--查找的基本概念

查找表是由同一类型的数据构成的集合,集合间存在着松散的关系,因此查找表是一种应用灵便得结构。 1.关键字: 主关键字:可唯一的识别一个记录的关键字(学号) 次关键字:可识别若干个记录的关键…

攻防世界maze做法(迷宫题)

首先查壳64bit,直接丢进ida64中进行反编译就完事儿了,然后直接进入main函数打注释分析首先,题目已经提示了这是个迷宫题,我们抓住做迷宫题的两个要点,一找玩法,二找地图, 玩法在主函数中&#…

Linux防火墙入门——iptables、firewalld配置详解

合理的防火墙是你的计算机防止网络入侵的第一道屏障。你在家里上网,通常互联网服务提供会在路由中搭建一层防火墙。当你离开家时,那么你计算机上的那层防火墙就是仅有的一层,所以配置和控制好你 Linux 电脑上的防火墙很重要。 很多 Linux 发…

刚体运动描述:欧拉角与四元数

在机器人学中,刚体的运动描述是非常重要的,特别是当我们需要精确控制机器人的姿态时。欧拉角和四元数是两种常用的描述刚体在三维空间中旋转的方法。下面将分别介绍这两种方法并给出其特点。 欧拉角 定义与特点: 定义:欧拉角是…

35python数据分析numpy基础之setdiff1d求两个数组的差集

1 python数据分析numpy基础之setdiff1d求两个数组的差集 python的numpy库的setdiff1d(x,y)函数,表示数组x与y的差,即在x且不在y中的元素,且进行去重排序。 用法 numpy.setdiff1d(ar1, ar2, assume_uniqueFalse)描述 numpy.setdiff1d(ar1,…

微信视频号上是怎么开店铺的?从入驻到发货,具体流程来了!

这两年,视频号逐渐走入大家视野 单价高,商家又少,很多类目都属于空白无商家入驻阶段,于是好多商家,都准备去视频号小店这个新“黑马”发展发展 那视频号是怎么开店卖东西的?今天我就来给大家分享一下&…

外汇天眼:总是权衡利弊,投资注定失败

投资股票的人往往会频繁地评估自己的投资结果,尤其是在信息时代,手机上随时可以查看股票行情,导致很多人时不时地打开行情软件,看一看自己的股票是涨了还是跌了,盈利了还是亏损了。 频繁评估结果的弊端 一、引发急躁…

导入和使用标准模块

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在Python中,自带了很多实用的模块,称为标准模块(也可以称为标准库),对于标准模块&#xf…

每日一练——分糖果2

1103. 分糖果 II - 力扣(LeetCode) /*** Note: The returned array must be malloced, assume caller calls free().*/ int* distributeCandies(int candies, int num_people, int* returnSize) {int num 0;int* arr (int*)malloc(sizeof(int)*num_peo…

学习小心意——简单的循坏语句

for循坏 基本语法格式 for 变量 in 序列:代码块 示例代码如下 for i in range(10):print(i)#输出结果:0 1 2 3 4 5 6 7 8 9 简单案例代码如下 利用for语句遍历序列 # 遍历字符串打印每个字母 for letter in "python":print(letter)# 遍历列表并打印每个元素 a …