10年ORACLE/MYSQL DBA,有一定C/C++基础
简书地址: http://www.jianshu.com/p/caae9a019dbd
简书地址: http://www.jianshu.com/p/905d7e89a305
简书地址: http://www.jianshu.com/p/87f66cdeb49c
设计模式:观察者模式(observer) 这种设计模式大量的使用,简单的说就是观察者通过被观察者来获得外界某种事物的状态 Observer模式提供给关联对象一种同步通信的手段,使某个对象与依赖它的其他对象之间保持状态同步。
使用临时文件 一、使用tmpdir 1、执行计划file sort 文件名字MY开头 lsof|grep delete 如:/tmp/MYdRH1GW (deleted) 2、大事物binary log缓存 文件名字ML开头 lsof|grep de...
最近有网友遇到了在RR隔离级别下insert A select B where B.COL=** 由于select表也就是B表引发的死锁的问题。分析死锁日志后,笔者进行模拟重现了这位网友遇到了2种场景并且在本文中进行详细的描述。
今天看python时间模块time的时候发现和LINUX系统编程中的时间调用函数基本一样,以前刚好没有好好学习LINUX C编程的时间模块就对比进行了学习。 本文只是给出函数接口和使用方式,详细了解请参考LINUX main page和PYTHO...
innblock | InnoDB page观察利器 特别鸣谢 笔者是知数堂早期学员,最初有写这么一个工具的想法也得到叶金荣老师的认可和鼓励,这个想法也整整耗掉了好几个晚上的休息时间,这里再次感谢叶金荣老师对工具审核,叶老师的经验和学识是每一位学员宝贵的财富。
原创转载请注明出处 报错如下MYSQL不能正常启动 2017-09-22 10:39:05 21409 [Note] InnoDB: Database was not shutdown normally! 2017-09-22 10:39:05 21409 [Note] InnoDB: Starting crash recovery.
我的学习记录原创!禁止转载 当innodb一个page碎片页过多会触发重组,这个重组过程在内存中完成,函数主要如下: 点击(此处)折叠或打开 bool btr_page_r...
python高阶函数:将函数作为实参进行传入。 C语言函数指针:将函数的指针作为实参进行传入,函数指针也是C语言多态实现的基础。 我们可以看到他们确实有相同之处,我们来分别看一下两者的代码完成相同的功能 python: 点击(此处)折叠或打...
原创转载请注明出处 源码版本 5.7.14 涉及源码文件 page0cur.cc page0page.h page0page.cc rem0cmp.cc 为什么谈及定位方法,因为在innodb中,比如一个插入语句我们需要定位在哪里插入(PAGE_CUR_LE),比如一个查询语句我们需要定位到其第一个需要读取数据的位置,因此定位方法是查询的根本。
原创转载请注明出处 源码版本 5.7.14 在MYSQL使用innodb的时候我们有时候会看到如下报错: ERROR 1146 (42S02): Table 'test.test1bak' doesn't exist 首先总结下原因: 缺少frm文件 innodb数据字典不包含这个表 我们重点讨论情况2,因为情况1是显而易见的。
原创如果有误请指出 今天看到python的列表深浅拷贝,不由得和C\C++进行了比较如下: 其实python中的深COPY和浅COPY和C\C++中是一样的,毕竟python底层是C/C++做的,这方面保留了 C\C++的原理,对于类或者结构体复制构造函数等号(=)操作符保留了浅COPY,当然我们可以自定义 这些函数。
原创转载请注明出处有误请指出 一、前言 叶金荣老师分享了一篇文章如下:https://mp.weixin.qq.com/s/09DJCyMq8kBn4mlezgzUgg 这里只研究下锁的模式,借用叶老师的表和语句 my...
工具获取 https://pan.baidu.com/s/1jHIWUN0 一、前言 本文只是工具的展示,未过多介绍细节,如果要更多了解细节请参考MYSQL运维内参第21章,当然我也有阅读并且从源码级 进行了验证,同时在书中也有一个用shell写成的脚本进行长期未提交的事物,但是这里我自己使用了自己的工具infobin。
水平有限 如有错误请指出共同探讨 版本:5.7.19 mysql+innodb 本文中所说的上文是如下文章,也是讨论MDL LOCK死锁的基础,包含了很多MDL LOCK的基础知识建议 好好阅读http://blog.itpub.net/7728585/viewspace-2143093/ 一、问题由来 前段开发反馈时间线上数据库老是出现死锁情况,而我们设置了innodb_print_all_deadlocks,但是在 相应的时间点没有找到任何相应的死锁的信息,从而导致我们获得任何有用的信息,也不能定位问题的 原因。
转自:http://blog.csdn.net/yaolingrui/article/details/7338263 设计模式是每个程序员的必修课,这里将23种模式整理在一起,想学习这方面知识的朋友们有福了,呵呵。
原创,水平有限如有错误请指出共同探讨本文中某些结论性的东西我用黄色标记出来请大家多多留意一下另外我家二娃刚刚出生,大家祝福我一下吧。谢谢!^_^ 本文网址 http://blog.itpub.net/7728585/viewspace-2143093/源码版本:5.7.14注意MDL和DML术语的不同。
原创LINUX系统编程水平有限,参考UNIX系统编程手册 LINUX 中的mmap浅析 一、mmap基本原理和分类 在LINUX中我们可以使用mmap用来在进程虚拟地址空间中分配创建一片虚拟内存地址映射 其可以是 1、文件映射 使用文件内容初始化...
转载: http://www.cnblogs.com/ivictor/p/6012183.html pt-pmp有两方面的作用:一是获取进程的堆栈信息,二是对这些堆栈信息进行汇总。
原创水平有限,如果有误请指出 今天研究了一天innodb事物,临近下班了同事田兴春告诉我有个阿里发出来的优化题,并且把建表和语句给我了,并且告诉我语句里面有隐式转换 昨天群里也有人说这道题但是一直没空看,刚好这会没事就看了一下,整个脚本如下: ...
原创水平有限,如果有误请指出 一、只读事物 也许有人要问一个select算不算一个事物。其实在innodb中一个innodb的select是一个事物,他有trx_t结构体,并且放到了mysql_trx_list链表中,关于 innodb事物系统一级的事都做了,但...
原创,因为LINUX系统编程水平有限某些用词不当请指出 一、信号处理以及多线程先信号处理基础知识 在LINUX中信号是一种由内核处理的一种软中断机制,他满足简单、不能携带大量信息、并且要满足一定条件才会发送等特征。
原创,如果有误请指出 今天同事讨论关于主键使用varchar和int的区别。 我现在总结的3个问题: 1、tablespace中空间浪费 当然我们知道使用varchar可能会导致辅助索引比较大,因为用到varchar可能存储的字符较多,同时 在行头也存在一个可变字段字符区域(1-2)字节 而辅助索引叶子结点毕竟都存储了主键值,这样至少会多varchar数据字节数量+1(或者2) 字节- 4(int)字节空间。
涉及的语句为 RC模式下 update根据主键更新和insert 其实这样的问题在RC模式下,要么是简单update问题,要么是insert造成的主键和唯一键检查唯一性时出现问题。
原创如有错误请指出本文由我和公司同事问心共同测试分析完成。 很多时候我们会有这样一个误区,语法错误或者对象不存在应该在语法语义检查这个步骤就结束了,怎么还会存在共享池里面呢?带着这个几个问题我们做几个简单的测试。
今天一个朋友叫安装ORACLE数据库不提供桌面,哎没办法只有静默了。 下面记录一下静默的流程,很久没有手动建库了,上次还是考OCM的时候 1、安装数据库软件 oracle.
原创有误请指出: 版本:5.7.14 源码位置为hash0hash.h hash0hash.cc 作为一种时间复杂度最优为O(1)的数据结构,但是最坏时间复杂对位O(n)的一种数据结构,但是在 良好的设计hash函数的情况下性能还是非常好的。
在Active dataguard遇到latch: row cache objects 查询如下语句 select a.SAMPLE_TIME,a.SQL_ID,a.EVENT,a.
原创:如果有误请支持 源码在Ut0lst.h中 注意:这里我将链表中的实际的串联的数据叫做数据类比如:lock_t、mem_block_t 链表作为一种的非常重要的数据结构,在任何地方都会用到,这里简单解释一下innodb双向 链表的实现,让我们来看看inno...
原创:全文带入了大量自我认知和理解,可能错误,因为水平有限,但是代表我努力分析过。一、问题提出问题是由姜大师提出的、问题如下:表:mysql> show create table c \G*************************** 1.
LOCK WAIT 2 lock struct(s), heap size 1136, 1 row lock(s) MySQL thread id 4, OS thread handle 140665176164096, query id 575 local...
下面 代码主要用于复习,留于此 点击(此处)折叠或打开 /************************************************************************* > File Name: fork5.
原创水平有限 测试版本5.7.14 设置GTID_MODE=ON ON(3): Both new and replicated transactions must be GTID transactions(生成的是GTID事物,slave也只能应用GTID事物)...
原创水平有限请谅解 虽然这几个参数我以前也有学习过,但是一直没有在源码级别进行证明,所以一直也没有写,但是今天群里有 朋友问到,所以先按照官方手册的加上我自己的理解进行一下解释,以后一定要在源码级别进行下补充 使用MYSQL版本:5.
原创 水平有限 open table 的时候 当初次open table的时候会生成一个table_shared结构体 这个结构体记录 很多来自frm 的信息,基本就是表的定义,我们叫他为静态缓存 换句话说这个东西整个mysql 一个 接口为get_table_...
原创 水平有限,只为抛砖,有误请指出 这里主要找一下m_connect是什么,以及怎么增加的,因为前文我没有找到,再次用断点的方式 描述一下unauthenticated user 一、m_connect是什么怎么增加的 m_connect实际上就是m_han...
原创水平有限,有错请指出 源码版本5.7.14 今天群里一个朋友出现如下错误: ERROR 1129 (HY000): Host '10.0.0.8' is blocked because of many connection errors; unblock w...
原创 水平有限 今天在看运维内参第三章源码的时候,发现书上很多代码入口函数和我用的5.7.14的源码对不上,然后再看了一下5.6的源码, 书上写的基本都是5.6的源码(书是2015年开始写的)5.7.14在连接这一块做了相当大的改动,加了很多抽象类,变得更加复杂了。
考虑表结构如下: create table testzh(id int primary key auto_increment ,id2 int,id3 int); 插入数据: delimiter // create procedure ins3() ...
原创转载请注明出处: 接上一篇:一、(LINUX 线程同步) 引入 http://blog.itpub.net/7728585/viewspace-2137980/ 在线程同步中我们经常会使用到mutex互斥量,其作用用于保护一块临界区,避免多线程并发操作对这片临界区带来的数据混乱, POSIX的互斥量是一种建议锁,因为如果不使用互斥量也可以访问共享数据,但是可能是不安全的。