<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Chappell的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Chappell</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Chappell]]></copyright><item><title><![CDATA[MySQL存储引擎接口]]></title><link>https://blog.youkuaiyun.com/Chappell/article/details/12047821</link><guid>https://blog.youkuaiyun.com/Chappell/article/details/12047821</guid><author>Chappell</author><pubDate>Thu, 26 Sep 2013 13:42:09 +0800</pubDate><description><![CDATA[MySQL提供了访问不同的存储引擎数据表的虚拟层API。过去,这些接口被称之为"table handler".现在有了新的介绍——storage
 engine.目前我们所提到的storage engine,往往是与存储/读取数据的相关代码，而table handler指的是storage engine与MySQL优化器的接口.

抽象接口极大地促进MySQL加入其它存储引擎的步伐，抽象接口]]></description><category></category></item><item><title><![CDATA[MySQL的并发访问与锁定]]></title><link>https://blog.youkuaiyun.com/Chappell/article/details/12047769</link><guid>https://blog.youkuaiyun.com/Chappell/article/details/12047769</guid><author>Chappell</author><pubDate>Thu, 26 Sep 2013 13:41:26 +0800</pubDate><description><![CDATA[多个客户端同时访问/修改同一数据时,合适的锁定机制需要保证数据的一致性。

存在三个方式解决这个问题: 表级锁、页级锁、行锁,每个方式都有各自的优劣势。

表锁: 逻辑简单,不容易引起bug,在获取锁时有比较好的性能，容易避免死锁。从另外角度看，存在大量并发读写时，锁定整个表导致应用比较差的性能。
行锁: 代价是实现复杂，但高并发性能。低概率锁竞争但高概率发生bug。避免死锁难度较大，所]]></description><category></category></item><item><title><![CDATA[MySQL存储引擎]]></title><link>https://blog.youkuaiyun.com/Chappell/article/details/12047725</link><guid>https://blog.youkuaiyun.com/Chappell/article/details/12047725</guid><author>Chappell</author><pubDate>Thu, 26 Sep 2013 13:40:51 +0800</pubDate><description><![CDATA[MySQL存储引擎
>>
讨论MySQL中主要的几个存储引擎，复杂的不同处理细节，无法做到每个存储引擎都细化。
仅是提供代码中的核心部分指引。

>>不同存储引擎的特性
事务支持: InnoDB、NDB
索引支持:
     MyISAM(B-tree、R-tree、full text)
     InnoDB(B-tree)
     NDB(Hash、B-tree)
缓存]]></description><category></category></item><item><title><![CDATA[MySQL复制]]></title><link>https://blog.youkuaiyun.com/Chappell/article/details/12047631</link><guid>https://blog.youkuaiyun.com/Chappell/article/details/12047631</guid><author>Chappell</author><pubDate>Thu, 26 Sep 2013 13:39:59 +0800</pubDate><description><![CDATA[实现方式:SQL级别复制、行级别复制

基于语句复制，修改数据的每个SQL语句都会被LOG.然后语句会在同一字符集和同一上下文情况下在从服务器重放。

基于语句复制只需要在主从服务器之间传输少量的数据。反之，需要记录大量的执行上下文信息，以便从服务器实现主服务器相同环境下重放更新操作。
然而，上下文有时候无法提供。随着新SQL功能频繁加入，基于语句复制变得很难维持相应的更新。

行复]]></description><category></category></item><item><title><![CDATA[MySQL事务]]></title><link>https://blog.youkuaiyun.com/Chappell/article/details/12047575</link><guid>https://blog.youkuaiyun.com/Chappell/article/details/12047575</guid><author>Chappell</author><pubDate>Thu, 26 Sep 2013 13:39:30 +0800</pubDate><description><![CDATA[MySQL体系中,实现事务的责任大部分落在存储引擎上。
事务日志细节、行或页锁、实现事务隔离级别、提交与回滚、以及其他事务关键属性基本都是在存储引擎级别实现，所以，存储引擎跟SQL层交互需要使用统一的接口。

存储引擎事务实现综述
集成第三方存储引擎，需要定义两部分:定义与实现handler子类以及handlerton实现

不可避免,事务的实现一定需要实现handler子类的大量虚拟]]></description><category></category></item><item><title><![CDATA[MySQL分析器与优化器]]></title><link>https://blog.youkuaiyun.com/Chappell/article/details/12047531</link><guid>https://blog.youkuaiyun.com/Chappell/article/details/12047531</guid><author>Chappell</author><pubDate>Thu, 26 Sep 2013 13:38:05 +0800</pubDate><description><![CDATA[>>>>分析器
由词法扫描器与语法分析器构成

词法扫描器
1、MySQL实现自己的词法扫描器
2、人工实现信息编排以便优化器获取信息，自动生成代码无法做到
3、实现上下文关联的token意义解析
4、关键字列表symbols[]在sql/sql_lex.h，功能名称列表sql_functions[]在sql/sql_lex.h
5、所有关键词表gen_lex_hash(sql/g]]></description><category></category></item><item><title><![CDATA[MySQL线程化请求处理]]></title><link>https://blog.youkuaiyun.com/Chappell/article/details/12047497</link><guid>https://blog.youkuaiyun.com/Chappell/article/details/12047497</guid><author>Chappell</author><pubDate>Thu, 26 Sep 2013 13:36:26 +0800</pubDate><description><![CDATA[当实现一个服务器之时，首先面临着一个进退两难的选择，选择多进程还是多线程结构。
两者各有良莠。从一开始，MySQL便选择了多线程。

线程与进程
两者最大的不同可能是heap的同享,这个是选择哪种模型的潜在依据。

线程优势
1、内存利用的简化
2、对于全局数据的访问无需高级技术
3、快速创建
4、内核调度成本
线程劣势
1、异常隔离要求
2、错误代价高
3、同步BUG]]></description><category></category></item><item><title><![CDATA[MySQL客户端与服务器协议]]></title><link>https://blog.youkuaiyun.com/Chappell/article/details/12046843</link><guid>https://blog.youkuaiyun.com/Chappell/article/details/12046843</guid><author>Chappell</author><pubDate>Thu, 26 Sep 2013 13:12:22 +0800</pubDate><description><![CDATA[关于总观:

     1、监听tcp协议之上
     2、握手验证先行
     3、Command in one packet,Responses may in several.

包（packet）格式
     压缩与非压缩，取决于握手阶段，客户端与服务器协商
     抛开压缩项，包分为两种：客户端请求与服务器回复

关于服务器回包：
     数据包、数据流结束]]></description><category></category></item></channel></rss>