MySQL
狮子王_没有什么会永垂不朽
走在编程路上,路途艰难,风景怡人
展开
-
MySQL索引背后的数据结构及算法原理
原文链接:http://blog.codinglabs.org/articles/theory-of-mysql-index.html摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本转载 2015-04-06 21:31:07 · 627 阅读 · 0 评论 -
MySQL索引与Index Condition Pushdown
原文链接:http://blog.codinglabs.org/articles/index-condition-pushdown.html大约在两年前,我写了一篇关于MySQL索引的文章。最近有同学在文章的评论中对文章的内容提出质疑,质疑主要集中在联合索引的使用方式上。在那篇文章中,我说明联合索引是将各个索引字段做字符串连接后作为key,使用时将整体做前缀匹配。而这名同学在这个页转载 2015-04-06 21:33:07 · 481 阅读 · 0 评论 -
浅析multi range read(MRR) & batch key access(BKA) & block nested loop(BNL)
原文链接:http://blog.csdn.net/zbszhangbosen/article/details/7463394另一篇文章介绍了index condition pushdown(ICP) 这篇讲叙的是MRR和与之相关的BKA什么是MRR?MRR:multi range read。不好解释,先来看个例子:select * from tb wh转载 2015-04-06 21:35:24 · 561 阅读 · 0 评论 -
浅析index condition pushdown
原文链接:http://blog.csdn.net/zbszhangbosen/article/details/7463382另一篇文章讲叙了 MRR和BKA 什么是indexcondition pushdown(ICP)?在数据库中pushdown表示某些操作“下推”,也就是某些操作提前执行,在生成执行计划时某些操作下推可以大大提升效率(为什么叫下推,因为优化器在生成的计转载 2015-04-06 21:37:45 · 581 阅读 · 0 评论 -
MySQL 体系结构以及各种文件类型学习汇总
目录(?)[-]1mysql体系结构2mysql文件类型3参数文件mycnf4日志文件错误日志6慢查询日志slow log全查询日志8二进制日志9套接字socket文件10pid文件11表结构文件12innodb存储文件13redo文件14undo日志1,mysql体系结构由数据库和数据库实例组成,是单进场多线程架构。数据库:物理操作系统文件或者其它文件转载 2015-04-08 13:23:15 · 492 阅读 · 0 评论 -
[MySQL] InnoDB三大特性之 - 自适应哈希索引
哈希索引是一种非常快的等值查找方法(注意:必须是等值,哈希索引对非等值查找方法无能为力),它查找的时间复杂度为常量,InnoDB采用自适用哈希索引技术,它会实时监控表上索引的使用情况,如果认为建立哈希索引可以提高查询效率,则自动在内存中的“自适应哈希索引缓冲区”(详见《MySQL - 浅谈InnoDB体系架构》中内存构造)建立哈希索引。之所以该技术称为“自适应”是因为完全由InnoDB转载 2015-04-08 16:07:51 · 2059 阅读 · 1 评论 -
[MySQL] InnoDB三大特性之 - 插入缓冲
目录(?)[-]非聚集索引写性能问题插入缓冲技术机制插入缓冲带来的问题InnoDB存储引擎有三大特性非常令人激动,它们分别是插入缓冲、两次写和自适应哈希,本篇文章先介绍第一个特性 - 插入缓冲(insert buffer)在上一篇《MySQL - 浅谈InnoDB存储引擎》中,我们可以看到在InnoDB的内存中有单独一块叫“插入缓冲”的区域,下面我们详细转载 2015-04-08 15:24:25 · 1037 阅读 · 0 评论 -
[MySQL] InnoDB三大特性之 - 两次写
目录(?)[-]部分写失效两次写机制今天我们来介绍InnoDB存储引擎的第二个特性 - 两次写(doublewrite),如果说插入缓冲是为了提高写性能的话,那么两次写是为了提高可靠性,牺牲了一点点写性能。部分写失效想象这么一个场景,当数据库正在从内存向磁盘写一个数据页时,数据库宕机,从而导致这个页只写了部分数据,这就是部分写失效,它会导致数据丢失。转载 2015-04-08 16:00:36 · 3237 阅读 · 2 评论 -
Innodb中的事务隔离级别和锁的关系
前言:我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式。同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力。所以对于加锁的处理,可以说就是数据库对于事务处理的精髓所在。这里通过分析MySQL中InnoDB引擎的加锁机制,来抛砖引玉,让读者更好的理解,在事务处理中数据库到底做了什么。一次封锁转载 2015-04-09 21:22:08 · 1097 阅读 · 0 评论