
数据库
文章平均质量分 52
软件工程小施同学
区块链、DevOps、小程序、软件工程
展开
-
数据库分类 你知道几种
数据库分类原创 2022-06-05 15:00:02 · 348 阅读 · 0 评论 -
冲突等价(ConflictEquivalence) 可串行化调度(Serializable Schedules)
事务事务(transaction)是在数据库上执行的一个或多个操作构成的序列,用来完成数据库系统的高级功能。SQL事务语句 事务启动(start):BEGIN; 事务提交(commit):COMMIT; 将事务对数据库的修改持久地写到数据库中 事务中止(abort):ROLLBACK; 将事务对数据库的修改全部撤销(undo),就像事务从未执行过 事务可以中止自己,也可以被DBMS中止 事务的ACID性质(TheACIDPropertie...转载 2021-11-11 21:33:41 · 9565 阅读 · 0 评论 -
数据库事务 写偏斜write-skew
快照隔离被称为事务隔离级别,它在性能和正确性之间提供了很好的组合,但是此处“正确性”的确切含义通常含糊不清。在这篇文章中,我想分解并准确记录何时发生“写偏斜”事件。事务快速入门数据库中的执行单位是事务。事务是工作的集合,这些工作要么全部完成,要么根本不运行。没有半成品事务。通常围绕事务提供许多保证,但是我们将重点放在隔离上。隔离使数据库的用户不必担心并发性,它决定了事务显示的程度,好像它在数据库中单独运行一样。各种可能的隔离级别的分类是一个有趣的话题,但是在这里,我们将只关注它们原创 2021-08-18 09:45:40 · 1167 阅读 · 0 评论 -
本地事务和分布式事务区别
https://www.bilibili.com/video/BV1UJ411v7Hj原创 2021-05-01 18:47:20 · 466 阅读 · 0 评论 -
OBCA认证培训课程-分布式事务 MVCC 事务隔离级别
https://www.bilibili.com/video/BV1RT4y1F7Uz原创 2021-05-01 14:32:30 · 649 阅读 · 0 评论 -
不可重复读和幻读的区别
不可重复读和幻读都是同一事务内,不同时间,读取的数据结果不一样。区别:不可重复读:别的事务更新(update)操作导致的幻读:别的事务插入(insert)或者删除(update)导致的原创 2021-05-01 12:38:53 · 811 阅读 · 0 评论 -
并发 锁和隔离等级的关系
隔离等级锁悲观锁MVCC(Multi-Version Concurrency Control)多版本并发控制,可以简单地认为:MVCC就是行级锁的一个变种(升级版)。关系数据库事务有不同的隔离级别,有不同的锁。不同的隔离级别对锁的使用是不同的,锁的应用最终导致不同事务的隔离级别https://www.zhihu.com/question/285970182/answer/454844663...原创 2021-04-15 10:57:54 · 306 阅读 · 0 评论 -
数据库 并发 悲观锁 乐观锁 是什么 区别
一、并发控制当程序中可能出现并发的情况时,就需要保证在并发情况下数据的准确性,以此确保当前用户和其他用户一起操作时,所得到的结果和他单独操作时的结果是一样的。这种手段就叫做并发控制。没有做好并发控制,就可能导致脏读、幻读和不可重复读等问题。常说的并发控制,一般都和数据库管理系统(DBMS)有关。在 DBMS 中的并发控制的任务,是确保在多个事务同时存取数据库中同一数据时,不破坏事务的隔离性、一致性和数据库的统一性。实现并发控制的主要手段大致可以分为乐观并发控制和悲观并发控制.转载 2021-03-05 11:14:47 · 1259 阅读 · 1 评论 -
数据库 读锁(共享锁)、 写锁(排他锁)
一、共享锁(S锁)又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A。比如SELECT语句。其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S 锁。这保证了其他事务可以读A,但在事务T释放A上的S锁之前不能对A做任何修改。二、排他锁(X锁)又称写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A。例如 INSERT、UPDATE 或 DELETE。其他事务不能再对A加任何锁,直到T释放A上的锁,确保不会同时同一资源进行多重更新。..原创 2021-02-26 18:33:54 · 3697 阅读 · 0 评论 -
数据库 CAP定理(布鲁尔定理)
在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer's theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点选项 具体意义 一致性(Consistency) 所有节点访问同一份最新的数据副本 可用性(Availability) 每次请求都能获取到非错的响应,但是不保证获取的数据为最新数据 分区容错性(Partition tolerance) 分布式系统在遇到任何网络分区故障的时候,仍然能够对外提供满足一致性原创 2021-02-25 11:47:18 · 597 阅读 · 0 评论 -
数据库 BASE理论
一、BASEBASE就是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方案。BASE中 :BA是 Basically Available (基本可用)基本可用是指分布式系统在出现不可预知故障的时候,允许损失部分可用性。可以理解为在一个平台中,假设部分出现故障,这个时候系统应该在允许这些故障出现的情况下依旧保持部分功能(应该是核心功能)可以正常使用,另一部分功能出现些许可以允许的问题。响应时间上的损失:正常情况下的搜索引擎0.5秒即返回给用户结果,而基本可用...原创 2021-02-25 11:44:44 · 3845 阅读 · 0 评论 -
数据库学习笔记6-隔离级别 Serializable
1.SerializableSerializable是最严格的隔离级别。在Serializable隔离级别下,所有事务按照次序依次执行,因此,脏读、不可重复读、幻读都不会出现。虽然Serializable隔离级别下的事务具有最高的安全性,但是,由于事务是串行执行,所以效率会大大下降,应用程序的性能会急剧降低。如果没有特别重要的情景,一般都不会使用Serializable隔离级别。2. 数据库的默认隔离级别如果没有指定隔离级别,数据库就会使用默认的隔离级别。在M...原创 2021-02-24 23:33:56 · 1033 阅读 · 0 评论 -
数据库学习笔记5-隔离级别 Repeatable Read
1.Repeatable ReadREPEATABLE READ避免了不可重复读问题,事务内对同一数据的多次读取都是一致的。一个事务修改一条数据,其他事务修改同一数据就要等待。增、删数据时会出现幻读。不可重复读的重点是修改数据,幻读的重点是增删数据。事务各自COMMIT后,再查询,各自的修改内容就汇总在一起了。2.幻读(Phantom Read)在Repeatable Read隔离级别下,一个事务可能会遇到幻读(Phantom Read)的问题。幻读是指,在一个事务...原创 2021-02-24 23:31:49 · 1170 阅读 · 0 评论 -
数据库学习笔记4-隔离级别 Read Committed
1.Read Committed允许读到其它事务已提交的、修改后的数据2. 不可重复读(Non Repeatable Read)在Read Committed隔离级别下,一个事务可能会遇到不可重复读(Non Repeatable Read)的问题。不可重复读是指,在一个事务内,多次读同一数据,在这个事务还没有结束时,如果另一个事务恰好修改了这个数据,那么,在第一个事务中,两次读取的数据就可能不一致。3. 例子我们仍然先准备好students表的数据:mysql&g...原创 2021-02-24 23:17:31 · 1847 阅读 · 0 评论 -
数据库学习笔记3-隔离级别 Read Uncommitted
1.Read UncommittedRead Uncommitted允许读到尚未提交的事务的修改之后的数据。2. 脏读Read Uncommitted是隔离级别最低的一种事务级别。在这种隔离级别下,一个事务会读到另一个事务更新后但未提交的数据,如果另一个事务回滚,那么当前事务读到的数据就是脏数据,这就是脏读(Dirty Read)。3. 例子首先,我们准备好students表的数据,该表仅一行记录:mysql> select * from studen...原创 2021-02-24 23:11:25 · 729 阅读 · 0 评论 -
数据库学习笔记2-隔离等级 isolation level
一、背景对于两个并发执行的事务,如果涉及到操作同一条记录的时候,可能会发生问题。因为并发操作会带来数据的不一致性,包括脏读、 不可重复读、 幻读等。1. 脏读(Dirty Read)一个事务会读到另一个事务更新后但未提交的数据,如果另一个事务回滚,那么当前事务读到的数据就是脏数据,这就是脏读(Dirty Read)。2.不可重复读(Non Repeatable Read)不可重复读是指,在一个事务内,多次读同一数据,在这个事务还没有结束时,如果另一个事务恰好修...原创 2021-02-24 22:59:02 · 341 阅读 · 0 评论 -
数据库学习笔记1-事务 transaction
一、事务一个事务由一系列操作组成,这些操作必须全部执行,而不能仅执行一部分。如果事务失败,所有操作就必须全部撤销,效果就和没有执行这些操作一样,不会对之前的数据有任何改动。二、数据库事务具有ACID特性A:Atomic,原子性,将所有SQL作为原子工作单元执行,要么全部执行,要么全部不执行; C:Consistent,一致性,事务完成后,所有数据的状态都是一致的,即A账户只要减去了100,B账户则必定加上了100; I:Isolation,隔离性,如果有多个事务并发执行,每个事务作.原创 2021-02-24 22:31:59 · 369 阅读 · 0 评论 -
微信小程序云开发教程-数据库小白入门
大家好,下面我们将一起学习第五章,《小程序后端接口开发实战》,本章我们面向的学习对象是小程序后端工程师和团队负责人。通过本章学习,我们输入:“近义词查询”小程序的需求文档和产品原型图,最终可以得到的输出是,可访问的,没有bug的,各个功能模块的后端API接口,以及接口文档,从而方便前端工程师的调用。这里,我们首先介绍的是关系型数据库。数据库也叫database,一个数据库里面可以新建多个数据表,也就是table,而每个数据表则由多行数据组成,我们称之为row。针对数据表,我们...原创 2020-08-22 10:29:33 · 1927 阅读 · 0 评论 -
mysql 一条记录的某个字段为空,是否占用存储
一个人说的不知道对不对 。根据字段类型不同,结果是不同的。例如:varchar,text等类型,字段为null不占用空间。int,char等类型,字段为null也占用空间。不能一概而论。...原创 2019-10-23 14:29:24 · 2107 阅读 · 0 评论 -
【mysql】Filesort on too many rows解决方法
对于某些服务器的MySQL,如果单表的数据量超过10万以上,查询的时候如果使用了排序的话,就会提示这时候我们可以为数据库表增加索引,来解决这个问题增加索引的一般规则1,首先要确定优化的目标,在什么样的业务场景下,表的大小等等。如果表比较小的话,可能都不需要加索引。 2,哪些字段可以建索引,一般都where、order by 或者 group by 后面的字段。原创 2018-02-02 11:19:00 · 769 阅读 · 0 评论 -
phpmyadmin创建账号授权指定表
1. 新增用户2. 修改新增用户的权限3. 选择授权具体的数据库4. 新增授权指定的表5. 选择操作权限6. 再次点击编辑修改该用户权限,发现,下面已有之前授权的数据库,点击进去,发现已有之前授权的数据表操作权限7. 该用户使用自己的账号进行登录,发现界面只会出现被授权的数据库和表8. 如果是要把该用户的”授权“状态修改为是,可以参考该文章https://jingyan.baidu....原创 2019-02-21 17:55:17 · 1494 阅读 · 0 评论 -
无法远程连接 mysql(Ubuntu)
现象:可以通过服务器本身部署的phpMyadmin访问到mysql,但是无法通过telnet之类的远程连接。可能的问题:1.数据库没有公网2.IPtable规则中去掉了3306 执行下 iptables -L 命令,iptables这个是linux本机的防火墙命令 如果对3306端口进行了限制,这里面就应该有33063.数据库监听在了127.0.0.1 使用nets...原创 2019-02-24 17:02:23 · 1395 阅读 · 0 评论 -
You have an error in your SQL syntax.....for the right syntax to use near 'describe
查询或者插入,提示:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'describe..... 因为describe是mysql的关键字,不能用这个作为数据库中的表的字段。解...原创 2019-02-13 23:26:23 · 1038 阅读 · 0 评论 -
linux mysql 数据库同步
步骤:1. 主机A和从机B都需要安装mysql,此处可以安装LAMPhttps://blog.youkuaiyun.com/dfydn/article/details/701871182.主机A按照下面教程设置https://www.cnblogs.com/marshu/p/9849620.html但是注意:a. server-id = 1 #确保在整个MySQL集群中唯一b. 导...原创 2019-03-15 09:00:15 · 725 阅读 · 0 评论 -
mysql 查询某个字段不为空(附thinkphp写法)
1.如果要写某个字段不为空,mysql的表达式应为:假设字段为:door_open_api_key,那么:door_open_api_key is not null AND door_open_api_key != ""2. thinkphp中应写为 $Reserve_system = M('Reserve_system'); $where原创 2017-11-18 11:43:56 · 6865 阅读 · 0 评论