自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Michael Yang的专栏

数据库小学生

  • 博客(21)
  • 收藏
  • 关注

原创 MySQL · 源码分析 · 常用SQL语句的MDL加锁源码分析

前言MySQL5.5版本开始引入了MDL锁用来保护元数据信息,让MySQL能够在并发环境下多DDL、DML同时操作下保持元数据的一致性。本文用MySQL5.7源码分析了常用SQL语句的MDL加锁实现。MDL锁粒度MDL_key由namespace、db_name、name组成。namespace包含:GLOBAL。用于global read lock,例如FLUSH TA...

2018-03-06 19:04:25 1230

原创 MySQL · 捉虫动态 · MySQL字符集相关变量介绍及binlog中字符集相关缺陷分析

MySQL字符集相关变量介绍及binlog中字符集相关缺陷分析MySQL支持多种字符集(character set)提供用户存储数据,同时允许用不同排序规则(collation)做比较。本文基于MySQL5.7介绍了字符集相关变量的使用,通过例子描述了这些变量具体意义。分析了MySQL binlog中字符集相关处理的缺陷,这些缺陷会导致复制中断或者主备不一致。最后给出了修复这些缺陷的方法。

2018-01-30 15:23:11 626

原创 MySQL 5.7 LOGICAL_CLOCK 并行复制原理及实现分析

MySQL 5.7 LOGICAL_CLOCK 并行复制原理及实现分析在MySQL5.7 引入基于Logical clock的并行复制方案前,MySQL使用基于Schema的并行复制,使不同db下的DML操作可以在备库并发回放(在优化后,可以做到不同table下并发)。但是如果业务在Master端高并发写入一个库(或者表),那么slave端就会出现较大的延迟。基于schema的并行复制,Sla

2018-01-16 17:54:44 3486 1

原创 mysql tcpdump使用

tcpdump的使用选项介绍-A 以ASCII格式打印出所有分组,并将链路层的头最小化。-c 在收到指定的数量的分组后,tcpdump就会停止。-C 在将一个原始分组写入文件之前,检查文件当前的大小是否超过了参数file_size 中指定的大小。如果超过了指定大小,则关闭当前文件,然后在打开一个新的文件。参数 file_size 的单位是兆字节(是1,000,000字节,而不是1,048,576

2017-06-24 13:49:50 2054

原创 MySQL 半同步复制数据安全与一致性分析

从replication功能引入后,官方MySQL一直在不停的完善,前进。同时我们可以发现当前原生的MySQL主备复制实现实际上很难在满足数据安全与一致性的前提下做到高可用、高性能。

2017-05-17 00:36:57 907

原创 Oracle Histogram 基础介绍

Oracle Histogram 基础介绍

2017-05-17 00:22:03 2936

原创 Oracle Histogram内部实现学习

Oracle Histogram内部实现学习

2017-05-17 00:18:17 1022

原创 MySQL Binary Log

MySQL Binary Log介绍

2017-01-17 10:44:24 2314

原创 Basic Paxos介绍与论述

Basic Paxos在一个靠Messages passing作为节点通信方式的分布式系统中,多个参与者需要就某一个变量var的值v达成一致。多个参与者A、B、C,可能对于v的值,A想设成value\_a,B想设成value\_b。但只能有一个值最终设置成功,形成决议。且形成决议后,后面无论何时参与者获取v的值一定是最初决议的值,不会再变。

2016-11-02 10:40:06 3484

原创 MySQL的权限排序问题

MySQL的权限排序问题实验:因权限表具有通配符,对权限进行排序后,匹配时引来的问题。

2016-09-15 22:48:01 1151

原创 MySQL (select_paren) union_order_or_limit 行为

MySQL (select_paren) union_order_or_limit 行为调研

2016-09-15 22:45:35 518

原创 MySQL用户权限系统

MySQL权限系统主要功能是验证从给定地址(host)登录的用户(user),同时将用户与数据库的权限如SELECT、INSERT、UPDATE和DELETE等关联起来。其他功能包括访客功能,授权MySQL 特定功能如LOAD_DATA_INFILE和管理操作。

2016-09-15 22:42:34 5505 3

原创 MySQL Partitioning调研

MySQL Partitioning调研本文档用来记录MySQL Partitioning功能、相关限制的调研

2016-09-15 22:38:11 2039 3

原创 将word转换为markdown

将word转换为markdown安装 pandoc、writage有的时候我们需要将word转换为Markdown,可以用插件writage(Markdown plugin for Microsoft Word) http://www.writage.com/ 个人备份:http://yunpan.taobao.com/s/1AHCD1blMzQ安装插件writage之前需要先安装pandoc,ht

2016-09-03 12:44:07 5720

原创 开发那些事--不要过度依赖snprintf/sprintf

snprintf/sprintf虽然用起来方便,但一定要分析好使用场景和功能,防止出现性能问题或者正确性问题。

2016-07-31 16:07:27 5581 3

原创 业务SQL那些事--慎用LIMIT

业务SQL那些事–慎用LIMIT在业务中使用LIMIT限制SQL返回行数是很常见的事情,但如果不知道其中可能的坑或者说真正执行逻辑,就可能会使SQL执行非常慢,严重影响性能。

2016-07-20 09:11:26 2525

原创 数据库查询代价估算优化的深度介绍

数据库查询代价估算优化深度介绍,帮助大家详细了解代价估算,帮助开发写出更高效的SQL。

2016-07-10 20:44:42 4010

原创 Oracle SPM(SQL Plan Management)介绍及演示SQL

Oracle 11: sql plan manangement介绍Plan Capture 捕获;Plan selection 选择;Plan Evolution

2016-03-07 19:25:29 4771

原创 Linux异步信号处理函数引发的死锁及解决方法

异步信号处理方式使用不当会发生死锁。异步信号处理函数不推荐做太多工作,如果调用函数需要是reentrant。reentrant可重新进入的,可以理解为一次调用发生后,不会对该函数的再次调用发生任何影响。即reentrant函数中不可以有static或global变量,不可以分配释放内存,通常不可以使用修改用户提供的对象,修改errno等等。可采用同步信号处理方式避免死锁问题。

2016-03-05 17:09:37 5650

原创 linux c++线程池实现 - tbsys实现详解

linux线程池 - tbsys实现详解一年前刚刚毕业入职还会写几篇博客,后来项目取消开源要求员工删除博客,写博客这件事情就荒废了。一年后,回忆一下,如果不养成写东西的习惯可能很难积累下知识,成长会慢很多。现在还是继续写吧,也可以读读其它开源代码写一写。tbsys是阿里的一份开源代码,在阿里集团广泛应用,由多隆大神创作,内部代码实现有很多精致巧妙的地方。今天学习下tbsys的线程池实现。实现框架Ru

2015-10-11 23:18:01 3633

原创 linux syscall系统调用获取线程PID

linux syscall系统调用获取线程PID线程idLinux中,每个进程有一个pid,类型pid_t,由getpid()取得。Linux下的POSIX线程也有一个id,类型 pthread_t,由pthread_self()取得,该id由线程库维护,其id空间是各个进程独立的(即不同进程中的线程可能有相同的id)。Linux中的POSIX线程库实现的线程其实也是一个进程(LWP),只是该进程与

2015-09-05 17:40:42 7893

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除