10年ORACLE/MYSQL DBA,有一定C/C++基础
查看错误代码errno是调试程序的一个重要方法。当linuc C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因。
1、本文证明组合索引的所有键值在分支节点(非叶子结点也进行了存储)。 2、本文给出B+ 索引如何进行验证其B+树结构 关于B树结构(不是B+树)可以参考: http://blog.
今天看到MYSQL手册的Index Merge Optimization,不禁有一些想法,所以记录如下文 先来解释下2种方式不同: 这两种方式都使用一个table中的不同二级索引进行,注意是单个表。
date 类型: 十进制: 120,115,8,14,14,46,46 7 BYTE 120 世纪字节 +100存储 115 年字节 +100存储 8 月字节 源数据存储 14 日字节 源数据存储 14 小时字节 +1...
本文章为学习笔记,为了方便查阅,收录于此 大部分为以前学习基于CBO的ORACLE优化一书(崔华著),加上自己的实验 如果记录有误请指出 1、gather_plan_statistics HINT 用于记录SQL执行时的额外信息,如果实际执行次数,执行时间,物理逻辑读等。
ORACLE 索引和MYSQL INNODB 辅助索引对NULL的处理 我们清楚ORACLE中的b+索引是对键值的NULL进行存储的,以致于我们 IS NULL这种肯定是用不到索引的, 当然这提及的ORACLE表为堆表,索引为单列B+树索引,(有一种优化方式为建立...
先来研究NUMBER类型的数字回推算法 类型 ,符号/指数位 [数字1,数字2,数字3,......,数字20] 1、长度类型没什么号说的 2、符号位,这个需要说一下 The sign bit, which is the high order bit (128...
数据库版本 11.2.0.3.15 操作系统 CentOS 6.5 文件系统 ext4 最近发现我们线上数据库的3台备库,全部出现一样的错误如下: INCIDENT_ID PROBLEM_KEY ...
我们经常在LINUX的HOST下面看到 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 实际上这个就是环回接口,下面是W.Richard Stevens 在TCP/IP 卷1中关于环回接口的描述: 大多数的产品都支持环回接口( Loopback Interface) ,以允许运行在同一台主机上的客户 程序和服务器程序通过 T C P / I P进行通信。
环境 LINUX 64 BIT ORACLE 11.2.0.4 LINUX 64 BIT MYSQL 5.7.14 1、 MYSQL建立一个用户用于ORACLE DBLINK 建立这里忽略掉 2、 11gR2 默认安装了透明网关检查一下 [ora...
这里只是大概描述了一下AVL的树的插入,以及红黑树的定义,并没有实现为代码,这个在以后的学习中如果遇到会 更加深入的学习,因为我学习数据结构的目的在于如果学习INNODB代码的时候遇到不太陌生,但是在INNODB代码 中并为找到AVL树的应用,而红黑树的应用仅仅用...
结构概念如下: 二叉排序树(binary sort tree): 1、也叫做二叉查找树 2、如果他的左子树不为空,则左子树上所有结点的 值均小于他的根结构的值 3、如果他的右子树不为空,则右子树上所有结点的 ...
接上一篇: http://blog.itpub.net/7728585/viewspace-2126344/ 如何证明INNODB辅助索引叶子结点KEY值相同的按照PRIMARY KEY排序 我们在上一篇中建立了表 mysql> create table t...
接http://blog.itpub.net/7728585/viewspace-2126305/ RR模式下NEXT-KEY LOCK范围到底有多大 证明观点: 1、对辅助索引的页中链表进行分析,如果在辅助索引页内的链表按照首先是KEY排序然后KEY相...
我们知道MYSQL NEXT-KEY LOCK是用来防止幻读,在RR模式下就有了用武之地 实际就是当前行锁+前后的一个区间,但是这个区间到底有多大? 是简单的一个辅助索引列上的闭区间吗? 测试全部是在RR模式下RC模式不存在 建立测试表: CREATE TA...
1、树的对象 具有相同特性的数据元素的集合 2、关系 如果没有对象叫做空树 否则: 在存在唯一的成为根的数据元素root 当元素个数大于1的时候,其他节点可以 分为互不相交的树,成为根root的子树 a b c d ...
实际上两个值是这样的: 我们理解auto_increment_offset为0开始的偏移量 auto_increment_increment是一个步长 auto_increment_offset+(N-1)*auto_increment_increment N代表的是插入的次数。
percona 5.7.13 5.7.14 MYSQLDUMP备份完成后不能呢导回去, 文件一大了非常麻烦,最近遇到这样的问题。 [root@testmy client]# /mysqldata/mysql3308/bin/mysql -uroot -p
今天在看C语言缺陷和陷阱的时候,看到位移 也就是右移过程中空出来的位置 unsigned 使用0填充 signed 可能使用0填充和符号位填充, 如果关心填充位请使用unsigned, 但是我在另外一本书中看到为了避免可能的转换问题尽量使用signed,除非必...
今天同事导入MYSQL的时候遇到错误 导出文件大约200G,在大约1.8w行出错。文件太大用SED读取指定行的时候命令报错, sed -n '18032,$p' sql.sql >sqlnew.sql 如果查看任何信息都非常麻烦,但是 MYSQL报错的时候出现了一个行号,然后大概推算了一下得出了开始的行号,所以使用C写了一个小程序,记录下来 i==18031 是你确定的行号-1 开始。
今天在使用file -i 查看MYSQLDUMP文件的时候其输出为 charset=us-ascii with very long lines 我导出的文件应该是utf8的,为什么会显示ASCII呢,我们知道ASCII并没有中文编码,那么真的有问题吗? 然后用如...
ORACLE 死锁分析 关于死锁一般3种处理方式 1、事前预测 2、资源分级 3、事后检测释放 我知道的ORACLE MYSQL都是采用第三种在行锁级别上的话。
原创:转载请注明 在前面介绍了单项链表, http://blog.itpub.net/7728585/viewspace-2125007/ 在实际的应用中双向链表应用也是非常多的,因为我本生是一名DBA,我知道的在数据库中双向链表应用非常广泛,在双向链表中 我们多了一个*prior 指向前一个节点,那么这样如果我们已知一个节点的指针要求得上一个节点的指针就变得非常简单了, 时间复杂度由O(n)下降到一个常数O(1),关于这个实现函数我觉得没必要写了太简单了。
前面我们已经说了线性表的顺序实现, http://blog.itpub.net/7728585/viewspace-2124937/ 下面我们将讨论一下线性表的链表实现。
对于一个线性表如果我们使用顺序的实现,那么在insert或者delete一个值的时候最坏渐进时间复杂度 趋近于数据的规模n及 f(n)=O(n); 可以看到这个时候代价比较高,所以我们一般使用链试实现,关于这个算法我用C语言进行如下实现。
递增排列的数组 union all 假设有2个线性表,递增排列的数组,如 char a[20]="abbcopqtuwz"; char b[20]="bcfgjmtv"; 我们需要实现一个union all,将两个字符串中的字符合并到 一个新的线性表c中,其中也是按照递增排列的。
今天无意同事告诉我这样可以查看是EXPDP还是EXP文件同时可以查看字符集版本等,是一个不错的办法,但是我想说的不是这个方法向后看 这个例子来自网络 DECLARE t1 ku$_dumpfile_info; ...
工具用于查看指定时间内show global status指标的变化,能够帮助运维人员了解系统负载的走势 本工具在5.5 5.6 5.7中测试通过 源码我放在百度云盘了 http://pan.
我们知道在C++中基类的指针和引用可以指向派生类,因为这是安全的,派生类一定包含了基类 需要的所有的属性和方法,这是向上转换,我们同时还知道虚函数可以随着指针和引用指向的 对象不同而使用不同的方法,这是虚函数的自适应。
有时候我们想能够像vmstat一样监控show slave status,当然方法有很多种, 我这里用一下自己的方法,是用C写的调用MYSQL的连接API取到数据 进行小小的处理,输出到屏幕,但是由于只是测试,没有完善,比如连接方式 应该是是参数的方式给出,我这里写死了,但是是一个方法,运行如下: 最后一个字段是字节数,忘记去掉了。
模板类必须所有的方法定义放到一个文件中。因为模板类不是函数不能单独编译 template class myext:public mybase 模板定义两个类型参数T1,T2,定义个非类型参数T3,他在使用期间如同一个常数。
这里简单的进行描述一下也加深记忆 Little_endian:不管在内存和磁盘中存储都是内存的低地址存储数值的低位数 Big_endian:不管在内存和磁盘中存储都是内存的低址存储数值的高位数 注意这里是数值,字符串没有这样的问题。
简单的说 recover database until cancel用于不完全恢复,可以一步一步的跳也就是一个一个归档的应用,也可以AUTO全部应用,当然也可以在恢复完某个archivelog后cancel退出,但是他不会恢复 current logfile如果需要恢复current logfile需要自己指定。
void (T_Database::*type_a)()=0; 注意一下类方法的函数指针的定义方法。 点击(此处)折叠或打开 头文件 #include ...
首先明白几个基础 1、函数按值传递和按值返回的时候都会调用复制构造函数 2、一般在函数体内定义的栈变量是不能返回其地址或者引用给主调函数的,因为在函数结束的时候这些栈变量将释放 3、可以使用new的方式建立堆内存的方式,然后返回引用或者指针,因为new这种方式建立的堆内存并不随函数的结束而结束, 而指针变量释放但是指针本生的值已经返回。
在C++中我们可以将一些类的共性编写到一个抽象的类中叫他抽象类(ABC abstract base class) 这个类中必须包含一个纯虚函数,抽象类不能定义出对象,但是可以作为其他类的基类。
我们已经知道在C++类中默认的访问权限是private,在C++结构体中默认的访问权限是public 其实在C++中类和结构体没有严格的界限,区别如上。 那么这里说明一下protected权限。
在类方法声明如果包含了 vritual关键字那么该方法称为虚行数,继承类中相同的定义的函数可以使用virtual也可以不使用 虚函数一般用于使用相同的原型重新定义基类的函数,实现不同的功能 一般使用virtual更加明确 我们还是应用C++ Primer plu...
online patch 关于Bug 14143632和online patch 今天线上遇到Bug 14143632 错误代码ORA-30927: Unable to complete execution due to failure in temporary...
一般来说一个类可以继承于另外一个类,分别叫做派生类和基类, 派生类继承了基类的公有成员和保护成员以及实现,而私有成员只能通过 基类的公有方法进行访问 派生类应该包含如下信息: 1、继承类构造函数 2、需要额外增加的成员以及实现 我们引用C++ primer...
简单的列子: #include using namespace std; class test { private: int a; int b; publi...
new异常,在分配内存的时候如果失败我们可以使用bad_alloc类来完成他在new头文件中, 他是从exception类共有派生而来,当无法分配内存给予new一个空指针,使用bad_alloc的 what()来返回输出 异常如下 #includ #incl...
首先以一个简单的程序开头如下: #include using namespace std; void test(int& a,int& b) { int c; if(a==b) { ...
一般的情况下外连接如下a right join b on a.id=b.id 那么b一定要作为驱动表,原因在于只有b作为驱动表才能得到完整的结果集,如果a作为驱动,那么返回的结果集 可能不完整,但是在特殊的情况的,可能将外连接转换为内连接 考虑如下的情况 b ...
当执行计划出现INTERNAL_FUNCTION的时候索引肯定失效,这里可以理解为隐士转换。 我们来看看官方文档,oracle叫他 Function Calls For example, consider the following query...
关于oracle index unique scan/index range scan和mysql range/const/ref/eq_ref type的区别 关于ORACLE index unique scan和index range scan区别在于是否...
1、构造函数 string(const char* s); 将string对象初始化为s字符串 string(size_type n,char c); 创建一个包含N个元素的string对象,其中每个元素都为c string(const string & str...
1、复制构造函数 有指针和引用属性的应该使用深度复制 class_name(const class_name &); 如: charin::charin(charin &in) { len = in.
5.7加入了LOCK ACCOUNT功能和ORACLE一样了, 但是5.6貌似没有,但是可以代替用如下方法设置密码过期。 The mysql.usertable now has a password_expiredcolumn.
在实际的工作中我们遇到了一个问题,MYSQL 5.5 我们备份使用的mysqldump,然后每天传输的备份到备份机器,但是binlog却不好传输主要要考虑几个问题: 1、binlog 没法取时间,按照什么规则来传? 2、binlog的传输并不是每次都全部传输过去,而是需要增量的。