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