aeoluspu的专栏

胡言乱语 随手记

mysql中ut_d宏定义用法

源码摘抄    #ifdef UNIV_DEBUG /** Debug assertion. Does nothing unless UNIV_DEBUG is defined. */ #define ut_ad(EXPR)    ut_a(EXPR) /** Debug state...

2017-03-03 17:55:21

阅读数 667

评论数 0

lock0lock.c里面函数总结

google了大部分资料,结合自己的理解,总结下lock0lock.c文件里函数 lock_deadlock_recursive():死锁判断 死锁日志产生 lock_deadlock_trx_print():死锁中事务信息处理打印 lock_deadlock_lock_print():每个事务...

2017-02-27 18:15:42

阅读数 784

评论数 0

mysql源码心得--how to read mysql source

1、深入了解某一模块前,要一步步来,否则会有很大的挫败感。首先了解下模块重要的数据结构和算法   2、设置断点,了解执行流程,了解重要函数   3、接下来深入阅读重要函数的源码,同时回顾与其他模块(已经了解过)的交互衔接。 关于资料寻找    手中要有系统的书,另外利用google搜索优势(...

2017-02-25 10:46:49

阅读数 808

评论数 0

锁相关的几个重要函数

记录下锁相关的几个重要函数:  lock_table (): 负责加表锁 lock_rec_lock():锁记录的重要函数 row_lock_table_autoinc_for_mysql(): 负责管理表auto increment自增锁的重要函数。自增锁 是表基本锁。实现在/innoba...

2017-02-23 17:09:52

阅读数 192

评论数 0

mysql lock_rec_insert_check_and_lock 设置断点调试

LOCK_MAX_DEPTH_IN_DEADLOCK_CHECK  死锁检测等待图中wait-for-graph定义深度搜索的次数,如果搜索200次就认定为死锁。  lock queue: 锁队列 设置断点函数  lock_rec_insert_check_and_lock    in...

2017-02-17 21:25:30

阅读数 441

评论数 0

mysql insert 相关的锁函数lock_rec_insert_check_and_lock 源码

/*============ RECORD LOCK CHECKS FOR ROW OPERATIONS ====================*/ /*********************************************************************...

2017-02-16 18:01:26

阅读数 351

评论数 0

insert into 加锁机制

关于MySQL innodb Insert into 加锁的机制的文章网上很少,个人对于insert 的加锁机制比较感兴趣,所以通过此wiki对研究的过程做个总结,如有不对的地方,欢迎指正。 我先把官方文档对于insert 加锁的描述贴出来 INSERT sets an exclusi...

2017-02-15 09:38:57

阅读数 695

评论数 0

mysql5.5.31 log0log.c中log_write_up_to 函数代码

/******************************************************//** This function is called, e.g., when a transaction wants to commit. It checks that the l...

2017-02-14 09:46:43

阅读数 290

评论数 0

GDB调试利器

1. gdb 调试利器 GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。 对于一名Linux下工作的c++程序员,gdb是必不可少的工具; 1.1. 启动gdb 对C/C++程序的调试,需要在编译前就加上-g选项: $g++ -g...

2017-02-08 17:23:49

阅读数 172

评论数 0

vs2013 调试mysql

参考链接 http://blog.csdn.net/cdsdtt123/article/details/39341003 http://blog.csdn.net/u012107685/article/details/39085317

2017-02-08 17:22:01

阅读数 587

评论数 0

innodb_flush_log_at_trx_commit 参数

innodb_flush_log_at_trx_commit 三种取值 0 、1、2 对性能有很大影响,现在从源码瞧瞧是如何实现定义。涉及的文件以及函数调用如下: innobase/srv/srv0srv.c中srv_master_thread() innodbase/trx/trx0trx....

2017-02-06 14:54:10

阅读数 266

评论数 0

kernel_mutex--mysql5.5.18

在mysql innodb中,随处可见的kernel_mutex。全局锁,事务开始的一段代码段 /trx/trx0trx.c 中 trx_start()函数 /****************************************************************//**...

2017-02-06 13:24:44

阅读数 183

评论数 0

mysql启动流程

mysql主函数main()在/sql/main.cc 里,main.cc里调用mysqld_main()函数,mysqld_main函数在/sql/mysqld.cc里  int mysqld_main(int args,char **argv)   在4783行开始mysqld_main()...

2017-02-04 16:30:43

阅读数 354

评论数 0

innodb 引擎相关模块

mysql插件式存储引擎模式。因此引擎相关的代码都在storage目录下,在storage目录下,各个引擎单独自己的目录:blockhole 、csv、federated、heap、innobase、myisam、ndb、perfschema。特别注意的是perfschema在引擎目录下。   ...

2017-02-04 13:57:52

阅读数 131

评论数 0

mysql的核心类和重要的源码文件

sql/sql_select.cc :包含着一些优化函数和一些数据检索算法的具体实现    ITEM_类  ITEM_类是mysql的每一个子系统都要用到的东西。之所以称之为ITEM_类,是因为从ITEM基类派生出许多子类甚至孙类。这些派生类被用来存储和处理mysql系统里的许多种数据,其...

2017-02-04 09:29:19

阅读数 583

评论数 0

mysql 源码阅读入口

mysql源码太多,初次看到不免让人没有头绪,如果根据特定需求,分模块的去阅读分析,查找特定功能如何实现之类的需求,可以从有限的几个入口看起,有两个主要入口:服务器启动,客户端请求处理。市面上的书大部分都是通过客户端请求处理来讲起如何阅读mysql源码,举的例子通过select 查询,如《深入理解...

2017-02-04 09:10:28

阅读数 5384

评论数 0

mysql 命令集合添加 --mysql5.5.31

5.6之后新功能特性引进,此sql命令集合会继续变化。在/sql/sql_lex.cc 中  mysqld.cc中 两者完全一致 enum enum_sql_command {   SQLCOM_SELECT, SQLCOM_CREATE_TABLE, SQLCOM_CREATE_INDE...

2017-02-03 11:03:45

阅读数 597

评论数 0

mysql查询相关的函数调用

mysql 版本 5.5.31 mysql 查询相关的函数指向流程   查询相关的入口函数mysql_select  mysql_select      /sql/sql_select.cc:2577    handle_select     /sql/sql_select.cc:297  e...

2017-01-24 15:14:58

阅读数 431

评论数 0

如何阅读mysql源码

在微博上问mysql高手,如何阅读mysql 源码大致给了下面的一些建议: step 1,知道代码的组织结构(官方文档http://t.cn/z8LoLgh; Step2: 尝试大致了解一条sql涉及的上层接口 Step3:使用gdb单步调试 Step4 理解每个新版本mysql changelo...

2013-08-29 14:01:49

阅读数 2149

评论数 0

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