下载此文档

理解MySQL.doc


文档分类:IT计算机 | 页数:约24页 举报非法文档有奖
1/24
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/24 下载此文档
文档列表 文档介绍
理解 MySQL ——架构与概念写在前面: 最早接触的 MySQL 是在三年前, 那时候 MySQL 还是 版本, 很多功能都不支持,比如,存储过程,视图,触发器,更别说分布式事务等复杂特性了。但从 (200 5 年 10月) 开始, MySQL 渐渐步入企业级数据库的行列了;复制、集群、分区、分布式事务, 这些企业级的特性,使得现在的 MySQL ,完全可以应用于企业级应用环境( 很多互联网公司都用其作为数据库服务器, 尽管节约成本是一个因素, 但是没有强大功能作后盾, 则是不可想象的) 。虽然, MySQL 还有很多不足,比如,复制、分区的支持都十分有限、查询优化仍需要改进,但是 MySQL 已经是一个足够好的 DBMS 了,更何况它是 opensource 的。这段时间没有事, 出于好奇, 略微的研究了一下 MySQL , 积累了一些资料, 欲总结出来。这些资料打算分为两部分, 上部主要讨论 MySQL 的优化, 其中主要参考了《 MySQL Manual 》和《 High Performance MySQL 》,如果有时间,以后在下部分析一下 MySQL 的源码。如果你是 MySQ L 高手,希望你不吝赐教;如果你是新手,希望对你有用。第一章、 MySQL 架构与概念 1、 MySQL 的逻辑架构最上面不是 MySQL 特有的,所有基于网络的 C/S 的网络应用程序都应该包括连接处理、认证、安全管理等。中间层是 MySQL 的核心, 包括查询解析、分析、优化和缓存等。同时它还提供跨存储引擎的功能,包括存储过程、触发器和视图等。最下面是存储引擎,它负责存取数据。服务器通过 storage engine API 可以和各种存储引擎进行交互。 、查询优化和执行(Optimization and Execution) MySQL 将用户的查询语句进行解析, 并创建一个内部的数据结构——分析树, 然后进行各种优化, 例如重写查询、选择读取表的顺序, 以及使用哪个索引等。查询优化器不关心一个表所使用的存储引擎, 但是存储引擎会影响服务器如何优化查询。优化器通过存储引擎获取一些参数、某个操作的执行代价、以及统计信息等。在解析查询之前, 服务器会先访问查询缓存(query cache) ——它存储 SELECT 语句以及相应的查询结果集。如果某个查询结果已经位于缓存中, 服务器就不会再对查询进行解析、优化、以及执行。它仅仅将缓存中的结果返回给用户即可,这将大大提高系统的性能。 、并发控制 MySQL 提供两个级别的并发控制:服务器级(the server level) 和存储引擎级(the storage engine level) 。加锁是实现并发控制的基本方法, MySQL 中锁的粒度: (1) 表级锁: MySQL 独立于存储引擎提供表锁,例如,对于 ALTER TABLE 语句, 服务器提供表锁(table-level lock) 。(2) 行级锁: InnoDB 和 Falcon 存储引擎提供行级锁,此外, BDB 支持页级锁。 InnoDB 的并发控制机制,下节详细讨论。另外, 值得一提的是, MySQL 的一些存储引擎(如 InnoDB 、 BDB ) 除了使用封锁机制外, 还同时结合 机制,即多版本两阶段封锁协议(Multiversion two-phrase locking protocal) , 来实现事务的并发控制, 从而使得只读事务不用等待锁, 提高了事务的并发性。注: 并发控制是 DBMS 的核心技术之一( 实际上, 对于 OS 也一样), 它对系统性能有着至关重要的影响,以后再详细讨论。 、事务处理 MySQL 中, InnoDB 和 BDB 都支持事务处理。这里主要讨论 InnoDB 的事务处理( 关于 BDB 的事务处理,也十分复杂,以前曾较为详细看过其源码,以后有机会再讨论)。 、事务的 ACID 特性事务是由一组 SQL 语句组成的逻辑处理单元, 事务具有以下 4 个属性, 通常简称为事务的 ACID 属性(Jim Gray 在《事务处理:概念与技术》中对事务进行了详尽的讨论)。(1) 原子性( Atomicity ): 事务是一个原子操作单元, 其对数据的修改, 要么全都执行, 要么全都不执行。(2) 一致性( Consistent ):在事务开始和完成时,数据都必须保持一致状态。这意味着所有相关的数据规则都必须应用于事务的修改, 以保持数据的完整性; 事务结束时, 所有的内部数据结构(如 B 树索引或双向链表)也都必须是正确的。(3) 隔离性( Isolation ): 数据库系统提供一定的隔离机制, 保证事务在不受外部并发操作影响的“独立”环境

理解MySQL 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数24
  • 收藏数0 收藏
  • 顶次数0
  • 上传人63229029
  • 文件大小172 KB
  • 时间2017-05-14