05 2014 档案
摘要:sql请求发送到server端,需要经过解析器生成内部的数据结构对象,以方便进行优化和生成执行计划。解析器主要做了两件事情,词法分析和语法分析。词法和语法分析:mysql使用lex词法分析器,yacc语法分析器进行分析,最后保存到lex对象结构中。例如: select id, name fr...
阅读全文
摘要:MySQL源码自定义了hash表,因为hash表具有O(1)的查询效率,所以,源码中大量使用了hash结构。下面就来看下hash表的定义:【源代码文件include/hash.h mysys/hash.c】typedef uint my_hash_value_type;typedef uchar *...
阅读全文
摘要:MySQL源码中自己定义了许多数据结构,放在mysys的目录下,源码中通常都使用这些数据结构来组织存放数据,也更容易实现跨平台。下面先来看下MySQL定义的动态数组:【源代码include/array.h mysys/array.c】typedef struct st_dynamic_array{ ...
阅读全文
摘要:information_schema是MySQL下的DB, 存储了数据库的数据字典,但OS系统上,并没有information_schema下表的数据和结构文件。所以,MySQL在针对information_schema下的表进行查询的时候,在内存中构造了memory引擎的临时表,把数据填充进去...
阅读全文
摘要:slave的几个类结构: Master_info:用于IO线程的参数,包括连接master实例的信息。 Relay_log_info:用于sql线程,表示relay log相关的信息。 Slave_worker:继承Relay_log_info,包括一个job队列,用于并行的worker线程。...
阅读全文

浙公网安备 33010602011771号