<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[理论之树]]></title><description><![CDATA[生命是灰色的，但理论之树常青！]]></description><link>https://blog.csdn.net/theorytree</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; theorytree]]></copyright><item><title><![CDATA[网友博客收藏]]></title><link>https://blog.csdn.net/theorytree/article/details/7565132</link><guid>https://blog.csdn.net/theorytree/article/details/7565132</guid><author>theorytree</author><pubDate>Mon, 14 May 2012 15:19:46 +0800</pubDate><description><![CDATA[http://tiny4.org/myhome/]]></description><category></category></item><item><title><![CDATA[编译原理笔记]]></title><link>https://blog.csdn.net/theorytree/article/details/7359660</link><guid>https://blog.csdn.net/theorytree/article/details/7359660</guid><author>theorytree</author><pubDate>Fri, 16 Mar 2012 10:03:37 +0800</pubDate><description><![CDATA[（一）编译原理句子和句型的区别

句型是推导过程中生成的产生式。
如：有下列文法：
　　S→AB
　　A→aA|a
　　B→bB|b


用上述文法推导字符串aaabbb过程如下：

　　S→AB→aAB→aaAB→aaaB→aaabB→aaabbB→aaabbb
AB、aAB、aaAB、aaaB、aaabB、aaabbB和aaabbb都是上述文法的一个句型。


只]]></description><category></category></item><item><title><![CDATA[编译原理词汇表]]></title><link>https://blog.csdn.net/theorytree/article/details/7355863</link><guid>https://blog.csdn.net/theorytree/article/details/7355863</guid><author>theorytree</author><pubDate>Thu, 15 Mar 2012 10:19:17 +0800</pubDate><description><![CDATA[分析  parse
推导  derivation
规约  reduce
产生式  production
最右  rightmost
最左  leftmost]]></description><category></category></item><item><title><![CDATA[Mysql学习笔记（一） 日志]]></title><link>https://blog.csdn.net/theorytree/article/details/7349830</link><guid>https://blog.csdn.net/theorytree/article/details/7349830</guid><author>theorytree</author><pubDate>Tue, 13 Mar 2012 17:32:46 +0800</pubDate><description><![CDATA[binlog
基于语句，基于行、混合  三种格式

二进制日志可以实现主从复制。有了主从复制后就能实现读写分离。]]></description><category></category></item><item><title><![CDATA[Mysql学习笔记（一）  并发控制]]></title><link>https://blog.csdn.net/theorytree/article/details/7349201</link><guid>https://blog.csdn.net/theorytree/article/details/7349201</guid><author>theorytree</author><pubDate>Tue, 13 Mar 2012 15:39:29 +0800</pubDate><description><![CDATA[并发是相对事务而言的。




隔离级

SQL标准定义了4类隔离级，包括了一些具体规则，用来限定事务内外的哪些改变时可见的，哪些是不可见的。低级别的隔离级一般支持更高的并发处理，并拥有更低的系统开销。

READ UNCOMMITTED（读取未提交内容）

在READ UNCOMMITTED隔离级，所有事务都可以“看到”未提交事务的执行结果。在这种级别上，可能会产生很多问题]]></description><category></category></item><item><title><![CDATA[Mysql源代码阅读笔记（一） 系统变量和系统状态变量]]></title><link>https://blog.csdn.net/theorytree/article/details/7347923</link><guid>https://blog.csdn.net/theorytree/article/details/7347923</guid><author>theorytree</author><pubDate>Tue, 13 Mar 2012 14:20:34 +0800</pubDate><description><![CDATA[阅读Mysql源代码的过程中，我们要面对很多服务器系统变量和系统状态：


                                                                                                                             系统变量


(一)线程相关


thread_cach]]></description><category></category></item><item><title><![CDATA[Mysql源代码阅读笔记（一） 命令行参数]]></title><link>https://blog.csdn.net/theorytree/article/details/7344617</link><guid>https://blog.csdn.net/theorytree/article/details/7344617</guid><author>theorytree</author><pubDate>Mon, 12 Mar 2012 13:58:15 +0800</pubDate><description><![CDATA[在mysqld.cc文件里面有具体的命令行参数处理代码：
调用顺序是：
win_main()或者mysqld_main（）       主入口点

init_common_variables()                   初始化系统变量
get_options()
mysqld_get_one_option()                  具体的命令行处理函数。对系统变]]></description><category></category></item><item><title><![CDATA[Mysql源代码阅读笔记（九）  查询执行]]></title><link>https://blog.csdn.net/theorytree/article/details/7343895</link><guid>https://blog.csdn.net/theorytree/article/details/7343895</guid><author>theorytree</author><pubDate>Mon, 12 Mar 2012 13:12:37 +0800</pubDate><description><![CDATA[查询执行



查询执行的入口点：


/**
  Parse a query.

  @param       thd     Current thread
  @param       rawbuf  Begining of the query text
  @param       length  Length of the query text
  @param[]]></description><category></category></item><item><title><![CDATA[Mysql源代码阅读笔记（八）   词法、语法分析器]]></title><link>https://blog.csdn.net/theorytree/article/details/7340963</link><guid>https://blog.csdn.net/theorytree/article/details/7340963</guid><author>theorytree</author><pubDate>Sat, 10 Mar 2012 22:53:44 +0800</pubDate><description><![CDATA[SQL 语句的处理过程：
词法分析，语法分析，语义分析，构造执行树，生成执行计划，计划的执行。


Mysql 并没有使用lex来实现词法分析，但是语法分析却用了yacc。
与之对比的Sqlite3数据库，SQLite的词法分析器是手工写的，语法分析器由Lemon生成。


要学习Mysql的分析器，则需要具备lex和yacc的相关知识。


（一）词法分析

在sql/]]></description><category></category></item><item><title><![CDATA[Mysql源代码阅读笔记（七）查询缓冲]]></title><link>https://blog.csdn.net/theorytree/article/details/7340933</link><guid>https://blog.csdn.net/theorytree/article/details/7340933</guid><author>theorytree</author><pubDate>Sat, 10 Mar 2012 22:46:41 +0800</pubDate><description><![CDATA[/*
    Warning.
    The purpose of query_cache_send_result_to_client() is to lookup the
    query in the query cache first, to avoid parsing and executing it.
    先在查询缓冲里查找查询，如果有则不需要解析和执行该查询]]></description><category></category></item><item><title><![CDATA[Mysql源代码阅读笔记（六）命令汇总]]></title><link>https://blog.csdn.net/theorytree/article/details/7340900</link><guid>https://blog.csdn.net/theorytree/article/details/7340900</guid><author>theorytree</author><pubDate>Sat, 10 Mar 2012 22:37:29 +0800</pubDate><description><![CDATA[enum enum_server_command
{
 COM_SLEEP,
 COM_QUIT, 

 COM_INIT_DB, 

 COM_QUERY, 

 COM_FIELD_LIST,
 COM_CREATE_DB,
 COM_DROP_DB, 

 COM_REFRESH, 

 COM_SHUTDOWN, 

 COM_STATISTICS,]]></description><category></category></item><item><title><![CDATA[Mysql源代码阅读笔记（四）   服务器监听]]></title><link>https://blog.csdn.net/theorytree/article/details/7338565</link><guid>https://blog.csdn.net/theorytree/article/details/7338565</guid><author>theorytree</author><pubDate>Fri, 09 Mar 2012 23:31:16 +0800</pubDate><description><![CDATA[（一）服务器/客户端版本


1. 入口点：

handle_connections_sockets（）函数
我们在此要用实例程序做实验，学习Mysql服务器所使用的两种事件监听技术：select和poll同时介绍更给力的事件监听技术epoll和libevent。

代码SVN地址：


2. 线程策略：

Mysql支持 单线程和多线程 两种连接线程数。
如果是单线程]]></description><category></category></item><item><title><![CDATA[Mysql源代码阅读笔记（三） 重要的宏]]></title><link>https://blog.csdn.net/theorytree/article/details/7338620</link><guid>https://blog.csdn.net/theorytree/article/details/7338620</guid><author>theorytree</author><pubDate>Fri, 09 Mar 2012 23:11:37 +0800</pubDate><description><![CDATA[Mysql的宏分为


（一）通过CMake自动扫描得到的宏
（1）Have_NPTL：
（2）Have_POLL：
（3）HAVE_FCNTL：
（4）HAVE_SYS_UN_H：
（5）HAVE_LIBWRAP：





（二）通过CMake手工配置的宏

（1）EMBEDDED_LIBRARY


（三）重要的功能宏]]></description><category></category></item><item><title><![CDATA[Mysql源代码阅读笔记（二）   重要数据结构]]></title><link>https://blog.csdn.net/theorytree/article/details/7338587</link><guid>https://blog.csdn.net/theorytree/article/details/7338587</guid><author>theorytree</author><pubDate>Fri, 09 Mar 2012 22:59:20 +0800</pubDate><description><![CDATA[(1)The THD Class

/**
  @class THD
  For each client connection we create a separate thread with THD serving as
  a thread/connection descriptor
*/


(2The NET Structure


(3)The LEX Struc]]></description><category></category></item><item><title><![CDATA[CMake漫谈]]></title><link>https://blog.csdn.net/theorytree/article/details/7337692</link><guid>https://blog.csdn.net/theorytree/article/details/7337692</guid><author>theorytree</author><pubDate>Fri, 09 Mar 2012 17:28:30 +0800</pubDate><description><![CDATA[最近在学习Mysql的源代码，用到了CMake做为Build工具。
通过CMake去扫描系统的一些配置，会生成config.h文件，这个头文件里包含了一系列的以HAVE_为前缀的宏。
在源代码根目录下的config.h.cmake  是模板文件，包含了所有的扫描项。

在Mysql的影子编译目录里面（我一般都是用影子编译，保持源代码目录的纯洁性），我们可以找到config.h,CMake脚]]></description><category></category></item><item><title><![CDATA[Linux的三种线程实现模型漫谈]]></title><link>https://blog.csdn.net/theorytree/article/details/7336523</link><guid>https://blog.csdn.net/theorytree/article/details/7336523</guid><author>theorytree</author><pubDate>Fri, 09 Mar 2012 13:58:37 +0800</pubDate><description><![CDATA[最近研究Mysql源代码，其基于 One thread per connection

现在我们通过对Linux下的线程模型的学习来串起一系列的知识点：


linux支持的三种线程模型:

1,linux Threads,这是linux标准的的线程库,但是与IEEE的POSIX不兼容.

2.Native POSIX Thread Library(简称NPTL,原生的POSIX]]></description><category></category></item><item><title><![CDATA[Mysql源代码阅读笔记（一）   代码流程]]></title><link>https://blog.csdn.net/theorytree/article/details/7335612</link><guid>https://blog.csdn.net/theorytree/article/details/7335612</guid><author>theorytree</author><pubDate>Fri, 09 Mar 2012 10:38:57 +0800</pubDate><description><![CDATA[代码分析基于最新的5.5.21
Mysql服务器的main()在/sql/main.cc，实际的入口点在/sql/mysqld.cc。


我们直接从mysqld_main()开始阅读。
先理解一些比较重要的宏定义：

（1）宏HAVE_NPTL：  

这个宏如果打开了会去读一个系统变量LD_ASSUME_KERNEL，并把他赋给一个全局变量ld_assume_kernel_i]]></description><category></category></item><item><title><![CDATA[SQL语句的预编译]]></title><link>https://blog.csdn.net/theorytree/article/details/7331096</link><guid>https://blog.csdn.net/theorytree/article/details/7331096</guid><author>theorytree</author><pubDate>Wed, 07 Mar 2012 23:40:32 +0800</pubDate><description><![CDATA[在学习数据库编程时，我们都知道在执行SQL命令时，有二种选择：
可以使用PreparedStatement对象，
也可以使用Statement对象。


而熟悉JDBC编程的大侠们都会选择使用PreparedStatement对象，主要因为使用预编译对象PreparedStatement时，有以下几个优点：


首先是效率性
 PreparedStatement 可以尽可能的提高]]></description><category></category></item><item><title><![CDATA[关于Mysql里的相关大小写问题]]></title><link>https://blog.csdn.net/theorytree/article/details/7330758</link><guid>https://blog.csdn.net/theorytree/article/details/7330758</guid><author>theorytree</author><pubDate>Wed, 07 Mar 2012 23:26:11 +0800</pubDate><description><![CDATA[识别符大小写敏感性
 http://dev.mysql.com/doc/refman/5.1/zh/language-structure.html

Identifier Case Sensitivity
http://dev.mysql.com/doc/refman/5.6/en/identifier-case-sensitivity.html



Collation校对规则]]></description><category></category></item><item><title><![CDATA[Mysql调优相关文章链接]]></title><link>https://blog.csdn.net/theorytree/article/details/7331062</link><guid>https://blog.csdn.net/theorytree/article/details/7331062</guid><author>theorytree</author><pubDate>Wed, 07 Mar 2012 23:25:08 +0800</pubDate><description><![CDATA[http://www.jzxue.com/shujuku/mysql/200910/20-2984.html]]></description><category></category></item></channel></rss>