09 2021 档案
摘要:实验步骤 控制文件是一个二进制文件,为了查看其内容,我们可以通过oracle命令转储出来进行查看(以下命令来自oracle 19c): 1 2 3 4 5 6 7 8 9 SQL> alter session set events 'immediate trace name controlf lev
阅读全文
摘要:控制文件块内容分布 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
阅读全文
摘要:1.生成bbed list file文件: SQL> select file#||' '||name||' '||bytes from v$datafile; $ vim dbfile.txt 1 /u01/app/oradata/sydb/system01.dbf 754974720 2 /u01
阅读全文
摘要:以下仅用于本人调试MySQL所用,不具备可读性。 ———————————————————– CREATE TABLE t1 (a INT PRIMARY KEY, b INT NOT NULL) ENGINE=InnoDB; insert into t1 values (4,2); ha_innob
阅读全文
摘要:1. 前言 在MySQL的使用过程中,对SQL加锁的类型经常感到疑惑,这让死锁分析也变得举步维艰。因此需要将MySQL的各种SQL在各个隔离级别下加的锁进行分析,以免再次分析的时候还感到疑惑,也方便用于查询。 本次分析对SQL的删除语句进行分析,主要从以下几种情况进行分析: 非唯一索引删除一条存在的
阅读全文
摘要:本文主要是针对MySQL/InnoDB的并发控制和加锁技术做一个比较深入的剖析,并且对其中涉及到的重要的概念,如多版本并发控制(MVCC),脏读(dirty read),幻读(phantom read),四种隔离级别(isolation level)等作详细的阐述,并且基于一个简单的例子,对MySQ
阅读全文
摘要:概要 Locking read( SELECT ... FOR UPDATE or SELECT ... LOCK IN SHARE MODE),UPDATE以及DELETE语句通常会在他扫描的索引所有范围上加锁,忽略没有用到索引的那部分where语句。 举个例子: CREATE TABLE `te
阅读全文
摘要:原文 http://www.fanyilun.me/2017/04/20/MySQL%E5%8A%A0%E9%94%81%E5%88%86%E6%9E%90/ 前言 最近遇到一次MySQL死锁的问题,也算是少见的一件事情。公司的MySQL隔离级别是Read Commited,已经没有了gap loc
阅读全文
摘要:原文 https://www.fordba.com/spend-10-min-to-understand-how-mysql-use-index.html 一、前言 在MySQL中进行SQL优化的时候,经常会在一些情况下,对MySQL能否利用索引有一些迷惑。 譬如: MySQL 在遇到范围查询条件的
阅读全文
摘要:前言发生死锁了,如何排查和解决呢?本文将跟你一起探讨这个问题 准备好数据环境模拟死锁案发分析死锁日志分析死锁结果环境准备数据库隔离级别: mysql> select @@tx_isolation; @@tx_isolation REPEATABLE-READ 1 row in set, 1 warn
阅读全文
摘要:简介: 一 前言 工欲善其事必先利其器,前面分析了很多死锁案例,并没有详细的介绍如何通过死锁日志来诊断死锁的成因。本文将介绍如何读懂死锁日志,尽可能的获取信息来辅助我们解决死锁问题。 一 前言 工欲善其事必先利其器,前面分析了很多死锁案例,并没有详细的介绍如何通过死锁日志来诊断死锁的成因。本文将介绍
阅读全文
摘要:简介: 线上某服务时不时报出如下异常(大约一天二十多次):“Deadlock found when trying to get lock;”。 Oh, My God! 是死锁问题。尽管报错不多,对性能目前看来也无太大影响,但还是需要解决,保不齐哪天成为性能瓶颈。 为了更系统的分 线上某服务时不时报出
阅读全文
摘要:原文 https://developer.aliyun.com/article/752775?spm=a2c6h.13813017.content3.4.190f7d281tFW1Y 疫情期间在家工作时,同事使用了 insert into on duplicate key update 语句进行插入
阅读全文
摘要:比较简单的是单列索引(b+tree)。遇到多条件查询时,不可避免会使用到多列索引。联合索引又叫复合索引。 b+tree结构如下: 每一个磁盘块在mysql中是一个页,页大小是固定的,mysql innodb的默认的页大小是16k,每个索引会分配在页上的数量是由字段的大小决定。当字段值的长度越长,每一
阅读全文
摘要:本博文中所用数据版本为mysql 5.7.28 通过命令行查看 mysql版本信息如下: ~ mysql --version mysql Ver 14.14 Distrib 5.7.28, for macos10.14 (x86_64) using EditLine wrapper 缘由:经常面试被
阅读全文
posted @ 2021-09-27 13:55
da0h1
摘要:命名规则:表名_字段名1、需要加索引的字段,要在where条件中2、数据量少的字段不需要加索引3、如果where条件中是OR关系,加索引不起作用4、符合最左原则 https://segmentfault.com/q/1010000003984016/a-1020000003984281 联合索引又叫
阅读全文
摘要:oracle数据文件内部BLOCK结构详解 datafile block block size :8192 Offset0123456789abcdef 00014000 06 A2 00 00 0A 00 40 01 0E 89 43 00 00 00 05 02 type frmt spare1
阅读全文
摘要:1. 首先来模拟Gap的产生 1.1. 备库关闭: SYS@dgtest_s>shutdown immediate; 1.2. 主库切换日志 SYS@dgtest>select SEQUENCE#,ARCHIVED,STATUS from v$log; SEQUENCE# ARC STATUS 61
阅读全文
摘要:查看当前SCN 约1000W 将数据文件加入bbed filelist SQL> select current_scn from v$database; CURRENT_SCN 10108366 SQL> select file#,name from v$datafile; FILE# NAME 1
阅读全文
摘要:在数据库异常恢复中,经常需要修改数据库的 SCN 值,在 12C 之前,我们常用的方法有如下几个: 1. oradebug poke 直接修改内存中的值; 2. event 10015 来增加 scn 的值; 3. _minimum_giga_scn 来增加 scn 的值; 4. gdb/dbx 来
阅读全文
摘要:1,查看当前SCN SQL> select current_scn from v$database; CURRENT_SCN 5100732 SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance s
阅读全文
摘要:Oracle 12c SCN推进方法 1,查看当前SCN SQL> ALTER SYSTEM CHECKPOINT ; System altered. SQL> select current_scn from v$database; CURRENT_SCN 20101799 SQL> select
阅读全文
摘要:最近在研究块的内部结构,把文档简单整理了一下,和大家分享一下。该篇文章借助dump和BBED对数据 库内部结构进行了分析,最后附加了一个用BBED解决ORA-1200错误的小例子。在总结的过程中参考了 《Disassembling the Oracle Data Block》以及网上的翻译版本。 d
阅读全文
摘要:一:MySQL执行过程二:MySQL执行过程中的状态三:MySQL执行的顺序四:总结一:MySQL执行过程MySQL整体的执行过程如下图所示: 1.1:连接器连接器的主要职责就是:①负责与客户端的通信,是半双工模式,这就意味着某一固定时刻只能由客户端向服务器请求或者服务器向客户端发送数据,而不能同时
阅读全文
摘要:sql和mysql执行顺序,发现内部机制是一样的。最大区别是在别名的引用上。 一、sql执行顺序 from join on where group by(开始使用select中的别名,后面的语句中都可以使用) avg,sum.... having select distinct order by l
阅读全文
摘要:# sqlite3 sqb.db < sqa.sql 命令行方式: sqlite> .output backup.sql sqlite> .dump [mytabl%] sqlite> .read backup.sql 3、导出成数据库 sqa.db 和sqb.db都包含表testtable 1)、
阅读全文
摘要:1.环境介绍 测试环境, 在一个双节点的RAC上使用duplicate搭建DG,使用在线的方式搭建 主机 IP 操作系统 实例 db_name db_unique_name db_version 配置 rac1 192.168.163.4 centos7.8 orcl1 orcl orcl 11.2
阅读全文
摘要:问题描述:做scn恢复备库的测试,吭哧了几天,今天终于可以记录一下,遇到了很多坑,作为初学者可以更好地理解DG,主要先关闭备库,在主库做归档丢失备库无法同步,备库产生GAP,然后增量备份恢复备库,版本:SQL*Plus: Release 11.2.0.4.0 Production on Thu No
阅读全文
摘要:Linux服务器上安装redis,然后进入到bin目录,执行如下命令 ./redis-cli -h IP -p PORT -a PASSWORD keys 'key*' | xargs ./redis-cli -h IP -p PORT -a PASSWORD del IP:redis服务器的IP地
阅读全文
摘要:MySQL索引优化导致死锁,又是一条漫长的排查路…… 原文 :https://www.sohu.com/a/465553876_411876 一、背景 随着公司业务的发展,商品库存从商品中心独立出来成为一个独立的系统,承接主站商品库存校验、订单库存扣减、售后库存释放等业务。在上线之前我们对于核心接口
阅读全文
摘要:InnoDB update原理解析 InnoDB事务锁之行锁-delete的update阶段加锁流程图
阅读全文
摘要:更新时间:2020年03月24日 08:47:41 作者:vinci321 本文详细介绍了,mysql中update语句的执行过程,系统全面的学习下update更新语句的执行过程,有需要的朋友可以参考下 以前有过一篇关于MySQL查询语句的执行过程,这里总结一下update语句的执行过程。由于upd
阅读全文
摘要:转载自:http://www.cnblogs.com/metoy/p/5545580.html 1、背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备
阅读全文
摘要:UPDATE rent_contacts SET contacts_mobile='11111' WHERE rent_unit_code in (SELECT rent_unit_code FROM rent_unit ); 第一种情况: 条件无索引 sql一执行: BEGIN; UPDATE c
阅读全文
摘要:创建索引前会先排序,会影响where和order by的效率。 索引也是一张表,保存了主键和索引字段和指向实体表的记录,也是要占空间的,以索引文件的形式存储在磁盘。 增删改数据时,索引指向也要改变,所以会慢,需要频繁删改的字段不适合建索引。 索引的建立也需要不断的优化、调整。 1、创建,两种写法 C
阅读全文
摘要:对慢SQL优化一般可以按下面几步的思路: 1、开启慢查询日志,设置超过几秒为慢SQL,抓取慢SQL 2、通过explain对慢SQL分析(重点) 3、show profile查询SQL在Mysql服务器里的执行细节和生命周期情况(重点) 4、对数据库服务器的参数调优 1、设置慢查询 (1)设置开启:
阅读全文
摘要:Explain是Mysql的自带查询优化器,负责select语句的优化器模块,可以模拟优化器执行SQL查询语句,从而知道Mysql是如何处理SQL的,语法也很简单:Explain + SQL 以下是通过explain查询出的几个属性 (常见性能瓶颈 —— CPU:CPU饱和一般发生在数据装入内存或从
阅读全文
摘要:前文提及过可以通过explain的possible_keys、key属性判断索引是否失效,key如果为null,可能是索引没建,也可能是索引失效,下面列举一些会使索引失效的情况。 1、全值匹配:顺序、个数与索引一致 2、最佳左前缀法则:查询从索引的最左前列开始并且不跳过索引中的列,中间跳过的值,后面
阅读全文

浙公网安备 33010602011771号