摘要:原文链接:http://www.shaoqun.com/m/a/43307.aspx前言:最近Oracle MySQL在其官方Blog上贴出了 5.6中一些变量默认值的修改。其中innodb_old_blocks_time 的默认值从0替换成了1000(即1s)关于该参数的作用摘录如下:how long in milliseconds (ms) a block inserted into the old sublist must stay there after its first access before it can be moved to the new sublist. Increa
阅读全文
随笔分类 - 转载专区
摘要:原文链接:http://blog.csdn.net/acmain_chm/article/details/4126306经常看到问题,如何取出每组的前N条记录。方便大家参考于是便把常见的几种解法列出于下。问题:有表 如下,要求取出各班前两名(允许并列第二)Table1+----+------+------+-----+| id |SName |ClsNo |Score|+----+------+------+-----+| 1 |AAAA | C1 | 67 || 2 |BBBB | C1 | 55 || 3 |CCCC | C1 | 67 || 4 |DDDD...
阅读全文
摘要:原文链接:http://www.mysqlops.com/2012/04/06/innodb-log3.html本文讨论MySQL数据库InnoDB存储引擎LOG漫游的问题: 04 – Checkpoint 理论上来说,如果MySQL数据库InnoDB存储引擎的buffer足够大,就不需要将数据本身持久化。将全部的redo log重新执行一遍 就可以恢复所有的数据。但是随着时间的积累,Redo Log会变的很大很大。如果每次都从第一条记 录开始恢复,恢复的过程就会很慢,从而无法被容忍。为了减少恢复的时间,就引入了Checkpoint机制。 - 脏页(dirty page) 如果一个数据页在..
阅读全文
摘要:原文链接:http://www.mysqlops.com/2012/04/06/innodb-log2.html03 – 日志的内容 - 数据是什么 从不同的角度和层次来看,我们可以将数据库中的数据看作: A. 关系数据 B. 元组或对象 C. 存在Page中的二进制序列 因此Log中也可以记录不同的内容: - 物理的日志(Physical Log) A. 记录完整的Page B. 记录Page中被修改的部分(page中的偏移,内容和长度). 优点:因为恢复时,完全不依赖原页面上的内容,所以不要求持久化了的数据保持在一个一致的状态。 比如在写一个页...
阅读全文
摘要:原文链接:http://www.mysqlops.com/2012/04/06/innodb-log1.html本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游 00 – Undo Log Undo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。 - 事务的原子性(Atomicity) 事务中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作。如果在执行的过程中发生 了错误,要回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过。 - 原理 Undo Log...
阅读全文
摘要:原文链接:http://www.mysqlops.com/2011/12/20/understanding_index2.html如果要看“由浅入深理解索引的实现(1)”,请点这里。教科书上的B+Tree是一个简化了的,方便于研究和教学的B+Tree。然而在数据库实现时,为了 更好的性能或者降低实现的难度,都会在细节上进行一定的变化。下面以InnoDB为例,来说说 这些变化。04 - Sparse Index中的数据指针 在“由浅入深理解索引的实现(1)”中提到,Sparse Index中的每个键值都有一个指针指向 所在的数据页。这样每个B+Tree都有指针指向数据页。如图Fig.1所示:F.
阅读全文
摘要:原文链接:http://www.mysqlops.com/2011/11/24/understanding_index.html00 – 背景知识- B-Tree & B+Tree http://en.wikipedia.org/wiki/B%2B_tree http://en.wikipedia.org/wiki/B-tree- 折半查找(Binary Search) http://en.wikipedia.org/wiki/Binary_search_algorithm- 数据库的性能问题 A. 磁盘IO性能非常低,严重的影响数据库系统的性能。 B. 磁盘顺序读写比随机读写的性能高
阅读全文
摘要:原文链接:http://blog.jobbole.com/24006/摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础。第二部分结合MySQL数据库中MyISAM和InnoDB数据存储引擎中索
阅读全文
摘要:原文链接:http://www.mysqlops.com/2012/09/27/mysql%e4%b8%adlike%e8%af%ad%e5%8f%a5%e5%8f%8a%e7%9b%b8%e5%85%b3%e4%bc%98%e5%8c%96%e5%99%a8tips.html背景 MySQL中在对某个字段做包含匹配时可以用like。先看这个结构和结果CREATE TABLE `tb` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` bigint(20) DEFAULT NULL, `title` varchar(128) NOT NULL,
阅读全文