
数据库
路途芬芳
这个作者很懒,什么都没留下…
展开
-
oracle数据库还原指标表到某个时间点的数据状态
有时候手贱,数据删错了,想要恢复,却没有闪回,没搞备份,这种小数据量、短时间间隔的就可以恢复到指定时间的数据。 脚本如下 delete from 表名; insert into 表名 select * from 表名 as of timestamp to_timestamp('2021-03-26 8:00:00', 'yyyy-mm-dd hh24:mi:ss'); ...原创 2021-03-26 16:33:05 · 359 阅读 · 0 评论 -
数据库之InnoDB可重复读隔离级别下如何避免幻读
文章目录一、先介绍几个概念1、什么是当前读2、什么是快照读3、什么是mvcc二、RR级别下避免幻读的方法三、RC级别下测试快照读和当前读3.1、测试快照读3.2、测试当前读四、RR级别下测试快照读和当前读五、RC、RR级别下的InnoDB的非阻塞读(快照读)如何实现主要undo log是干什么的read view呢六、next-key(行锁+gap锁)6.1、测试sql走唯一索引,并精准命中6.2...原创 2020-04-24 22:01:15 · 1700 阅读 · 0 评论 -
数据库之事务并发访问引起的问题以及如何避免
事务并发访问引起的问题有如下常见的: 更新丢失——mysql所有事务隔离级别在数据库层面上均可避免 脏读——脏读就是允许读取其他事务未提交的数据,READ-COMMITTED事务隔离级别以上可避免(RC级别)。 不可重复读——不可重复读就是事务A多次读取事务B,过程中事务B有更新操作,导致事务A读取的数据不一样,REPEATABLE-READ事务隔离级别以上可避免(RR级别)。 幻读——SERI...原创 2020-04-24 15:49:26 · 2024 阅读 · 0 评论 -
数据库之事务的四大特性
数据库事务的四大特性(ACID) 原子性(Atomic):事务执行的操作要么全部执行,要么事务回滚。 一致性(Consistency):事务应该从一个一致状态转变为另一个一致状态。一致性就是数据库中数据应满足完整性约束。比如转账的例子,两个之间进行转账,总金额加起来是五千,不管怎么两人怎么转,总金额都必须是五千 隔离性(Isolation):多个事务并发执行时,一个事务的执行不应该影响另一个事务...原创 2020-04-24 12:16:11 · 211 阅读 · 0 评论 -
数据库之MyISAM与InnoDB锁方面的区别
一、数据库锁的分类 按锁的粒度划分,可分为页级锁、表级锁、行级锁 按锁级别划分,可分为共享锁(S)、排他锁(X) 按加锁方式划分,可分为自动锁、显式锁(for update,lock in share mode) 按操作划分,可分为DML、DDL锁 按使用方式划分,可分为乐观锁、悲观锁 二、MyISAM与InnoDB锁方面的区别 InnoDb支持行锁和表锁,MyISAM只支持表锁 MyISA...原创 2020-04-24 11:58:35 · 320 阅读 · 0 评论 -
数据库之定位并优化慢查询SQL
一、什么是慢日志 慢日志:用来记录执行比较慢的一些sql 二、优化大致思路 根据慢日志定位慢查询sql 使用explain等工具分析sql 修改sql或者尽量让sql走索引 三、例子详解 环境:Navicat for MySQL,MySQL8.0+,win10 博主这里为了方便测试,提前插入了50万条数据(花了挺久的,选错引擎了,用的InnoDb,貌似用myisam会很快)下边给出脚本内容 /...原创 2020-04-21 14:13:01 · 481 阅读 · 0 评论 -
数据库之联合索引的最左匹配原则
觉得前边文字太多可以直接看下边的图解 一、组合索引的最左匹配原则的成因 我们创建联合索引的时候,mysql会对我们的建立索引的字段进行排序,比如顺序第一个字段先进行排序,然后对第二个字段进行排序,以此类推,就类似于order by 字段1,然后order by 字段2,第一个字段是绝对有序的,单单看其余索引的值就无序了,按照第一个索引的顺序来取出第二个索引的值,我们会发现,取出来的也是有序的(相...原创 2020-04-21 11:43:39 · 1392 阅读 · 0 评论 -
数据库之聚集索引和非聚集索引的区别
聚集索引和非聚集索引的区别 1、聚集索引 文件中的每个搜索码值都对应一个索引值。一个表只能创建一个聚集索引,叶子节点就是对应的数据全部列的值 数据行的物理顺序与列值的顺序相同,如果我们查询id比较靠后的数据,那么这行数据的地址在磁盘中的物理地址也会比较靠后。而且由于物理排列方式与聚集索引的顺序相同,所以也就只能建立一个聚集索引了。 B+Tree结构 2、非聚集索引 文件只为索引码的某些值建...原创 2020-04-21 10:40:32 · 1855 阅读 · 0 评论 -
最通俗易懂的数据库索引结构讲解
一般一个数据库系统包含以下: 存储(文件系统):将设备持久化到存储设备当中 程序实例:对存储进行逻辑上的管理 物理存储关系的存储管理模块 优化执行效率的缓存模块 对sql语句进行解析的SQL解析模块 记录操作的日志管理模块 进行多用户管理的权限划分模块 灾难恢复模块容灾机制 优化查询效率的索引模块 支持并发操作的锁模块 一、为什么要使用索引 首先我们要明白,数据库的数据是存储在磁盘...原创 2020-04-21 10:14:18 · 820 阅读 · 0 评论