数据库基础知识-01:

SQL高级语句-CREATE DATABASE 用于创建数据库。 CREATE DATABASE 语句 CREATE DATABASE 用于创建数据库。 SQL CREATE DATABASE 语法 CREATE DATABASE database_name SQL CREATE DATABASE 实例 现在我们希望创建一个名为 "my_db" 的数据库。 我们使用下面的 CREATE DATABASE 语句: CREATE 阅读详情

数据库基础知识

1、ACID:

mysql相关日志:

逻辑备份日志:binlog

(物理)重做日志:redolog

回滚日志:undolog

锁技术+MVCC

原子性(atomicity):

  • 强调单个事务不可分割,

  • 全部commit,否则全部rollback

  • undolog实现异常回滚

    每条数据变更:INSERT UPDATE DELETE REPLACE产生一条undolog日志,sql执行前优先于数据持久化到磁盘
    insert: rollback时执行delete
    delete:回滚时会执行insert;
    update: 回滚时会执行相反的update,把数据改回来
    
    • 记录事务开始前老版本数据,用于实现回滚,保证了原子性,实现MVCC,将数据修改前的旧版本保存在undolog,行记录有隐藏字段回滚指针指向老版本

一致性(Consistency):

  • 数据库总是从一个一致性的状态转换到另外一个一致性的状态
  • 过程中系统崩溃,事务未提交,不影响结果
  • 通过aid来确认数据的最终一致性

隔离性(isolation):

  • 多个事务,操作隔离
  • 避免并发事务产生影响
  • 读写锁+MVCC

持久性:(durability)

  • 一旦提交,其所做的修改就会永久保存到数据库中
  • 即使后面出现故障,也不会影响原来的结果
  • binlog+redolog实现
  • 表数据持久化到磁盘,为了保证在并发持久化的情况下不影响效率,引用了缓存池(包含了磁盘中部分数据页的映射,可以当作缓存使用)
  • 当修改表数据时,将操作记录先写到buffer pool中,标记事务已完成,等mysql空闲时,再将更新操作持久化到磁盘,从而缓解MySQL并发压力
redolog:记录事务开启之后对数据做的修改(crash-safe)
介绍:
  • WAL技术:全称是Write-Ahead Logging,关键点:先写日志,再写磁盘、
  • 特性:空间一定,写完后会循环写,有两个指针write pos指向当前记录位置,checkpoint指向将擦除的位置,redolog相当于是个取货小车,货物太多时来不及一件一件入库太慢了这样,就先将货物放入小车,等到货物不多或则小车满了或则店里空闲时再将小车货物送到库房。用于crash-safe,数据库异常断电等情况可用redo log恢复。
写入流程:
  1. 先写redo log buffer
  2. write到文件系统的page cache
  3. fsync持久化到磁盘
写入策略:

根据innodb_flush_log_at_trx_commit参数控制(innodb以事务的什么提交方式刷新日志

  • 0:事务提交时只把redo log 留在redo log buffer
  • 1:将redo log直接持久化到磁盘(所以有个双“1”配置,后面会讲)
  • 2:只是把redo log写到page cache

2、并发事务产生的问题以及对应隔离级别

InnoDB在实现MVCC时用到的一致性读视图,即consistent read view,用于支持RC(Read Committed,读提交)和RR(Repeatable Read,可重复读)隔离级别的实现。

2.1、产生的问题:

脏读:(dirty read)
  • 事务A读到事务B未提交的数据
丢失修改:(lost to modify)
  • 两事务A和B同时操作某一数据,最先执行完的事务的修改被丢失
  • 例如:事务1读取某表中的数据A=20,事务2也读取A=20,事务1修改A=A-1,事务2也修改A=A-2,最终结果A=18,事务1的修改被丢失。
不可重复读(Unrepeatableread)
  • 一个事务里多次读同一个数据,在这个事务还没有结束,有另一个事务修改了数据,导致多次读取数据不一致
  • 并发事务修改
幻读(Phantom read)
  • 并发事务新增或者删除
  • 一个事务里多次读同一个数据,在这个事务还没有结束,有另一个事务新增或者删除了数据,导致多次读取数据行数不一致

2.2、事务隔离级别:

Mysql8以前:SELECT @@GLOBAL.tx_isolation, @@tx_isolation;

Mysql8开始:SELECT @@GLOBAL.transaction_isolation, @@transaction_isolation;

修改事务隔离级别:

SET SESSION(GLOBAL) TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

读未提交:(Read uncommitted)
  • 事务最小限度的隔离
  • 一个事务可以读取另一个未提交事务的数据。
  • 会出现脏读
读已提交:(rc)
  • 可以看到其他事务对数据的修改。
  • 在事务处理期间,如果其他事务修改了相应的表,那么同一个事务的同一sql在其他事务执行前后返回的是不同的结果。(不可重复读)
  • 一个事务要等另一个事务提交后才能读取数据
  • 解决了脏读,丢失修改,会出现不可重复读
  • Oracle默认该级别
可重复读(rr):
  • 在开始读取数据(事务开启)时,不再允许其他事务的修改操作
  • 在事务执行期间会锁定该事务以任何方式引用的所有行
  • 解决了不可重复读,但会存在幻读情况
  • 此隔离级别下,未提交变更的事务对其他事务也是不可见的
  • MVCC解决了不可重复读:MVCC保留对象的多个不同版本,读事务读取时,先确定对象当前已提交的最新版本,然后该事务会一直读取这个版本的数据,哪怕在读事务运行过程中对象提交了新的版本。
Serializable(可串行化)
  • 事务顺序执行,性能依次最差
  • 解决了幻读
  • 它是在每个读的数据行上加上共享锁。在这个级别,可能导致大量的超时现象和锁竞争。
  • 每次读都需要获得表级共享锁,读写相互都会阻塞
信号完整性基础知识——衰减与dB 在信号完整性领域,我们常说的3 dB,其实是省略了“衰减”二字,这里的3dB带宽准确来说是“-3dB”,因为在信号完整性领域,研究的信号沿传输线传播时,信号能量是会随着传输距离的增大而降低的,因此dB值应该是负值。随着时间推移,人们发现对于感知到的音量范围,0 Bel到10 Bel这个刻度范围太粗了,因此将刻度改为deciBel并取代Bel去度量音量,这里的前缀“deci”就是“1/10”的意思。综上,Bell建立的是,感觉到的音量变化并不取决于功率级的变化,而是由一个与功率级变化对数成正比的单位决定。 阅读详情

相关推荐

深入探索数据库领域的数据仓库架构

本文旨在为读者提供关于数据仓库架构的全面理解,涵盖从传统数据仓库到现代云数据仓库的演进过程。我们将重点讨论数据仓库的设计原则、实现技术和最佳实践。文章首先介绍数据仓库的基本概念,然后深入探讨其架构设计,接着通过实际案例展示实现方法,最后讨论未来发展趋势。数据仓库(Data Warehouse): 面向主题的、集成的、非易失的、随时间变化的数据集合,用于支持管理决策: 数据抽取、转换和加载的过程: 在线分析处理系统,支持复杂分析查询云数据仓库普及。

2502_91592937的博客 998

数据库学习的先导必备基础知识-笔记-01章:数据库概述

数据库先导必备知识-笔记-01章-关系型、非关系型数据库的通俗举例以及关系型数据库的设计原则。

Noctiflorous_s的博客 1206

数据研发学习笔记01:数据仓库

文章目录1 数据仓库1.1 数据仓库由来1.2 数据仓库定义1.3 数据仓库特点1.4 构建数据仓库1.5 数据库和数据仓库的区别2 OLTP与OLAP3 数据仓库的设计3.1 数据库设计和数据仓库设计3.2 数据仓库设计的原则3.3 数据仓库设计的三级模型3.4 ETL4 离线数仓和实时数仓4.1 离线数仓4.2 实时数仓4.3 两者区别5 分布式计算 Google Dataflow5.1 概述5.2 事件时间与处理时间5.3 Dataflow三大模型 本文主要围绕以下问题展开相应的数据研发相关知识的梳理

weixin_41961559的博客 661

04.01.01.tiptop:基础知识篇(数据库:新建表)

04.01.01.tiptop:基础知识篇(数据库:新建表)

*_* 1022

从数据库到数据仓库:数据仓库导论

本文为数据仓库导论,旨在介绍数据仓库的基本理念和应用场景,帮助读者理解数据仓库的重要性及其在企业中的实际应用。

探索大数据世界 - 深入解析数据存储、分布式计算与人工智能 2787

数仓知识01_数据仓库和元数据库

1.基础概念 数据仓库是一种数据库,他与单位对的操作数据库分别维护 数据仓库系统将各种应用系统集成在一起,为统一的历史数据分析搭建平台,对信息处理提供支持。 数据仓库是面向主题的、集成的、时变的、非易失的数据集合,支持管理者的决策过程。 2.数据仓库的四个特征 (1)面向主题的(subject-oriented) 数仓围绕一些重要主题,如顾客、供应商、产品和销售组织 (2)集成的(integra...

清平乐的技术专栏 922

活动预告 |【Part1】Microsoft Azure 在线技术公开课:数据基础知识

参加“Azure 在线技术公开课:数据基础知识”活动,了解有关云环境和数据服务中核心数据库概念的基础知识。通过本次免费的介绍性活动,你将提升在关系数据、非关系数据、大数据和分析方面的技能。01 月 07 日 | 13:30-16:00 时长 150 分钟本课程分两部分, 报名part1 后将自动为您关联注册part2。* 为了获取更好的观看体验,建议您使用电脑端登录活动。Microsoft Azure 在线技术公开课:数据基础知识。

微软技术栈 1340

深入解析Mifare Classic Crypto1认证流程与密钥交换机制

本文深入解析Mifare Classic Crypto1认证流程与密钥交换机制,详细介绍了Crypto1加密算法的工作原理、认证初始化阶段、随机数交换与密钥流生成过程,以及双向验证步骤。文章还分析了Mifare Classic的安全漏洞,包括随机数生成缺陷和密钥流恢复攻击,并提供了Proxmark3实战演示和防护建议。

c6d7e8f9g的博客 898

数据管理系统期末复习——01概述

数据库的组成模式包括(关系操作集合、关系完整性的约束、关系数据结构) 下面列出的数据库管理技术发展的 3 个阶段中,没有专门的软件对数据进行管理的是 (I人工管理阶段) I.人工管理阶段 II 文件系统阶段 III 数据库阶段 ( NoSQL)泛指非关系型的数据库 不属于数据库系统特点的是(数据冗余度高 )

weixin_73074505的博客 971

OpenWebUI外部模型配置异常排查与修复指南

本文详细解析了OpenWebUI外部模型配置异常的常见问题及解决方案,包括隐藏字符、数据库锁死等典型现象。通过错误日志分析和数据库修复实战指南,帮助开发者快速定位并解决配置问题,确保OpenWebUI与第三方大模型的稳定连接。

weixin_29205061的博客 314

CAN总线错误帧全解析:从数据包到硬件层的故障树分析

本文深入解析CAN总线错误帧的故障树分析方法,从数据包到硬件层全面剖析错误机制。通过物理层信号测试、数据链路层错误解码和应用层协议排查,提供系统化的诊断框架。结合CANoe配置和示波器波形分析,帮助工程师快速定位总线故障,提升系统可靠性。

weixin_26742753的博客 492

一文读懂数据库、数据仓库、数据平台、数据中台、数据湖

数据库是用于存储、管理、维护和检索数据的系统。是所有软件应用、网站、企业信息系统和数据驱动决策的基础。简单来说就是:数据库就是一个存储信息(水)的容器。数据库使用场景-图1数据库主要分为两种类型:关系型数据库和非关系型(NoSQL)数据库。非关系型又分为四种类型:键值型、列存储型、文件型和图形数据库(这块后面有时间详细说下)。数据库类型-图2题外话:某些数据库(如 MongoDB)可以分为多个类别,因为它们支持不同的数据模型。此外,所提供的列表并不详尽,因为每个类别中还有许多其他数据库可用。

m0_59235945的博客 6419

RFSoC应用XCZU47DR八发八收FPGA设计方案

本文介绍了基于Xilinx XCZU47DR RFSoC芯片的八发八收FPGA设计方案。该方案采用集成射频数据转换器的SoC架构,支持8路14bit ADC(5GSPS)和8路14bit DAC(9.85GSPS),可直接处理5GHz以下射频信号。硬件设计包含高性能输入缓冲器、QMC校正和复杂混频器,适用于5G/6G通信、雷达、卫星通信等领域。文章详细阐述了ADC/DAC子系统参数,包括通道配置、采样率、带宽等特性,并提供了FPGA顶层模块的硬件接口设计,展示了多通道数据收发处理能力。该方案无需外置混频器,

toonyhe的博客 1794

Chat2DB数据仓库:OLAP分析与商业智能应用

在当今数据爆炸的时代,企业面临着海量数据处理和分析的挑战。传统的数据分析工具往往难以应对复杂的OLAP(Online Analytical Processing,联机分析处理)查询和实时商业智能需求。Chat2DB作为一款智能化的通用SQL客户端,正在重新定义数据仓库和商业智能的应用边界。 通过集成AI能力和支持多种数据库类型,Chat2DB为数据工程师、分析师和业务决策者提供了前所未有的数据分...

gitblog_00390的博客 1386

(01)ORB-SLAM2源码无死角解析-(38) EPnP 算法原理详解→理论基础二:分情况求得beta初始解

讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解的(01)ORB-SLAM2源码无死角解析链接如下(本文内容来自计算机视觉life ORB-SLAM2 课程课件): (01)ORB-SLAM2源码无死角解析-(00)目录_最新无死角讲解:https://blog.youkuaiyun.com/weixin_43013761/article/details/123092196 文末正下方中心提供了本人联系方式,点击本人照片即可显示WX→官方认证{\color{blue}{文末正下方中心}

江南才尽江南山,年少无知年少狂! 1025

26、特洛伊木马:威胁与防范

本文详细介绍了多种常见的特洛伊木马,包括RegForm、ProMail和远程访问特洛伊木马(RATs),并分析了其工作原理与危害。重点讲解了著名RATs如Back Orifice、SubSeven和The Thing的技术特点,揭示了黑客编写特洛伊木马的常用语言与方法。同时,提供了有效的防范策略,如谨慎获取软件、使用回滚程序、杀毒软件、防火墙及反特洛伊木马程序,并通过流程图展示了防御机制。旨在帮助用户识别威胁并加强系统安全防护。

e3f4g5的博客 88

Backup Manager for Laravel命令行指南:db:backup、db:restore与db:list全解析

Backup Manager for Laravel是一款专为Laravel应用设计的数据库备份工具,它能帮助开发者轻松实现数据库的备份、恢复和列表查询功能。本文将详细介绍如何使用`db:backup`、`db:restore`和`db:list`这三个核心命令,让你快速掌握数据库备份管理的精髓。 ## 🌟 为什么选择Backup Manager for Laravel 在开发过程中,数据库

gitblog_00481的博客 986

高速PCB设计中的一些常用规则

目前,高速PCB产品设计中,高速接口的应用日益普及,对于复杂的设计而言,高速走线就如同“蜘蛛网”一样密布在PCB各处,因此,在进行PCB检查及评审时,必要的高速PCB设计经验法则及规则是工程师开展工作必不可少的知识储备。

一只豌豆象的博客 3416

mysqldump备份MySQL中数据库名db01且恢复时更改为redb01数据库

MySQLmysqldump备份MySQL中数据库且恢复时更改为新的数据库名

zxrhhm的博客 364

指纹浏览器 WebGPU:新一代图形指纹的检测趋势与提前防御

指纹浏览器与风控系统对抗已升级至硬件层面。传统基于WebGL的API拦截和像素噪声技术,在WebGPU时代因架构变革而失效。WebGPU通过Compute Shader直接测量GPU物理算力,暴露了软件模拟的致命缺陷。防御需转向真实GPU硬件直通和虚拟化技术,如vGPU分割算力并伪装特征,以应对风控系统对硬件拓扑和浮点精度的检测。唯有基于物理算力的拟态,才能抵御新一代图形指纹的降维打击。

数据知道的博客 221

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

mysql 新建database_MySQL创建数据库(CREATE DATABASE语句)

在MySQL 中,可以使用CREATE DATABASE 语句创建数据库,语法格式如下:CREATE DATABASE [IF NOT EXISTS] [[DEFAULT] CHARACTER SET ][[DEFAULT] COLLATE ];[ ]中的内容是可选的。语法说明如下::创建数据库的名称。MySQL 的数据存储区将以目录方式表示 MySQL 数据库,因此数据库名称必须符合操作系统的文...

weixin_30441727的博客 7053

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

基于人工智能的数据库工具Chat2DB使用

Chat2DB 是一款有开源免费的多数据库客户端工具,集成了AIGC 生成式人工智能。其主要功能包括自然语言转sql、优化sql、转化sql、解释sql等功能,是一个真正意义上减轻劳动和提高效率的一款大模型数据库客户端工具。

勤于笔记,成于点滴。 3787

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

数据仓库学习笔记01

数据仓库的概念与体系结构 文章目录数据仓库的概念与体系结构数据仓库与数据库的区别数据挖掘的概念与方法数据仓库的技术、方法与产品数据仓库系统的体系结构 数据仓库与数据库的区别 数据仓库的概念:数据仓库是是一个面向主题的 、集成的、相对稳定的、反应历史变化的数据集合,通常用于决策支持 数据库:收集数据的仓库 容器 数据仓库的特点: 面向主题 集成的 想对稳定的 反映历史变化(带有时间戳) 一个数据库可能由若干个数据仓库组成 数据仓库的组成: 数据仓库数据库; 数据抽取工具; 元数据:技术元数据与业务元数据

仙王狂虐战神 722

BU01-DB开发板使用入门,室内定位就是这么简单;

BU01-DB开发板! 前言导读 室外定位有GPS,室内呢?不用担心,比GPS更加精确的定位技术来了——————UWB UWB技术相信大家都不陌生,精确到10cm以内的定位,极大的弥补了过去IOT产品的的室内模糊定位短板,相较与RSSI的定位,这种新型的技术可谓是超前的。 正文内容 技术原理分析 UWB技术是一种使用1GHz以上频率带宽的无线载波通信技术。它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很大,尽管使用无线通信,但其数据传输速率可以达到几百兆比特每秒以上。使用UW

安信可科技 2万+

闲聊数据库和数据仓库的区别

0x00 前言 最近群里童鞋们在数据库和数据仓库的区别,因此简单做一些整理。 0x01 概念上的区别 数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。 ————百度百科 数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战...

木东居士 1442

数仓建模(二) 从关系型数据库到数据仓库的演变

从传统数据库出发,帮助读者更好理解数仓的核心价值和基本结构

引用原创内容标明出处即可 1921
上一篇: volatile
下一篇: 布隆过滤器
ADCQprogrammer
博客等级 码龄7年 4粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值