`
文章列表
一、概述   随着数据库在各个领域的使用不断增长,越来越多的应用提出了高性能的要求。数据库性能调优是知识密集型的学科,需要综合考虑各种复杂的因素:数据库缓冲区的大小、索引的创建、语句改写等等。总之,数据库性能调优的目的在于使系统运行得更快。   调优需要有广泛的知识,这使得它既简单又复杂。   说调优简单,是因为调优者不必纠缠于复杂的公式和规则。许多学术界和业界的研究者都在尝试将调优和查询处理建立在数学基础之上。   称调优复杂,是因为如果要完全理解常识所依赖的原理,还需要对应用、数据库管理系统、操作系统以及硬件有广泛而深刻的理解。   数据库调优技术可以在不同的数据库系统中使用。如 ...
一:事务系统 1.事务的工作模型    事务必须满足原子性,所封装的操作或者全做或者全不做。 事务管理系统需要做两件事,1)让日志系统产生日志,2)保证多个事务并发执行,满足ACID特性。    事务系统工作模型,见图1。    如图,事务管理管理器控制查询处理器的执行、控制日志系统以及缓冲区。日志在缓冲区生成,日志管理器在一定的时候控制缓冲区的刷盘操作。当系统崩溃的时候,恢复管理器就被激活,检查日志并在必要时利用日志恢复数据。 2.事务的原语操作 在事务系统的运行当中,有三个地址空间供元素存储:1)磁盘空间、2)缓冲区、3)事务的局部地址空间。 一个简单的读、修改X元素操作的流 ...
1.哈希表的概述    hash表的实现是innodb的基础功能之一,通过关键值进行映射,从而迅速进行查询、插入、删除的操作。    hash表算法,在数据库内核里面被广泛的使用,举个例子,这个结构将会在下文中继续使用的。 /* Data structure for a column in a table */ struct dict_col_struct{        hash_node_t   hash;       /* hash chain node */        ulint        ind;  /* table column position (they a ...
1 定义    Mysql查询优化器的工作是为查询语句选择合适的执行路径。查询优化器的代码一般是经常变动的,这和存储引擎不太一样。因此,需要理解最新版本的查询优化器是如何组织的,请参考相应的源代码。整体而言,优化器有很多相同性,对mysql一个版本的优化器做到整体掌握,理解起mysql新版本以及其他数据库的优化器都是类似的。   优化器会对查询语句进行转化,转化等价的查询语句。举个例子,优化器会将下面语句进行转化: SELECT … WHERE 5=a; 转化后的等价语句为: SELECT … WHERE a=5; 因为这两个语句的结果集是一致的,所以这两个语句是等价的。 这里我需要提出一点 ...
InnoDB将所有的记录存放在数据库页中(也可以称为数据块)。一般情况下,所有的页大小都是16KB。       数据页中不仅仅包含实际的记录,还包含其它的一些内容,比如文件头以及文件尾等等。 InnoDB的页包含以下几个部分: 1)      Fil Header:文件头 2)      Page Header:页头 3)      Infimum+Supremum Records:最小虚记录以及最大虚记录 4)      User Records:用户记录 5)      Free Space:自由堆 6)      Page Directory:目录槽 7)      Fil Trail ...
InnoDB记录由三个部分组成,见表1: 表1:InnoDB的记录组织形式 名称 长度 Field Start Offsets F*1或者 (F*2)个字节 Extra Bytes 6个字节 Field Contents 和记录的实际内容相关 备注: 1)        “F”是指记录的字段数量。 2)        “Field Start Offsets”是一个目录列表,分别指向下一个字段实际存储的偏移值。 3)        “Extra Bytes”的长度是不变的,占用6个字节。 4)        “Field Contents”存放实际的数据。   记录的起点实际上是从“F ...
编译步骤 1、从mysql.com上下载最新源码mysql-5.1.35.zip,近40M,需要点耐心 -- 中间网站提示我不是可信任的用户,让我填表确认,填了几次都不行,最后将fixfox关了,干了会活再回来有能下载了,呵呵,是不是ORACLE故意制造麻烦,也 ...
Java 平台把线程和多处理技术集成到了语言中,这种集成程度比以前的大多数编程语言都要强很多。该语言对于平台独立的并发及多线程技术的支持是野心勃勃并且是具有开拓性的,或许并不奇怪,这个问题要比 Java 体系结构设计者的原始构想要稍微困难些。关于同步和线程安全的许多底层混淆是 Java 内存模型 (JMM)的一些难以直觉到的细微差别,这些差别最初是在 Java Language Specification 的第 17 章中指定的,并且由 JSR 133 重新指定。 例如,并不是所有的多处理器系统都表现出缓存一致性(cache coherency);假如有一个处理器有一个更新了的变量值位于其缓存中 ...
这是作者学习硬件基本知识过程中的笔记,由于以前很少接触这方面的知识,又缺乏系统 的学习,难免会出现错误,希望得到大家指正。 一、Intel CPU的主要部件: 1. CPU内核: 是真正意义上的处理器,用于执行指令和处理数据,其计算能力与CPU的速度密切相关。 2. L1 Cache CPU内部集成的L1 Cache(一级高速缓存),又被称为主缓存,用于暂存部分指令和数据。它和 CPU同频运行,是所有Cache中速度最快的。它一般由SRAM组成,造价昂贵而且结构复杂,由于 CPU体积有限,所以L1 Cache的容量一般不会太大。CPU的L1 Cache又分为D-Cache(Data Ca ...
fuse-2.7.3.tar.gz开源代码学习心得: ------------------------------------------------------------------------------------------------------------ 一,相关的理论知识准备 1,Linux Vfs的基本概念及相关知识,比较重要的如Linux文件系统的Vfs结构、Supper超级块 ...
刚写完一篇关于Cache Coherence的文章,就发现BNN2年前就有一篇好文,早知道就不这么费事自己写了:) Recently work with dual cpu kernel part. For dual cpu, or we say, multi-processor, the big challenge part for a kernel is how to handle the cache coherence. Conceptually, two choices--Write Invalidate and Write Update. We will talk about ...
Cache 的write back和write through 收藏 为了保证cache和memory的数据一致性,通常有三种方法: 1〉write through:CPU向cache写入数据时,同时向memory也写一份,使cache和memory的数据保持一致。优点是简单,缺点是每次都要访问memory,速度比较慢。 2〉post write:CPU更新cache数据时,把更新的数据写入到一个更新缓冲器,在合适的时候才对memory进行更新。这样可以提高cache访问速度,但是,在数据连续被更新两次以上的时候,缓冲区将不够使用,被迫同时更新memory。 3〉write back:C ...
熟悉内核的Makefile对开发设备驱动、理解内核代码结构都是非常重要的 linux2.6内核Makefile的许多特性和2.4内核差别很大,在内核目录的documention/kbuild/makefiles.txt中有详细的说明。给大家一个中文版的翻译 === 目录         === 1 概述     === 2 用户与作用         === 3 Kbuild文件        --- 3.1 目标定义           --- 3.2 编译进内核 - obj-y        --- 3.3 编译可装载模块 - obj-m        --- 3.4 输出的符号     ...
mysql 在 VS2005上面单步调试 收藏 http://www.xianfen.net/Article137.aspx http://database.ctocio.com.cn/tips/114/8305614.shtml http://forge.mysql.com/wiki/Building_MySQL_on_Windows 环境准备: 1. 获取MySQL最新源码:当前版本为5.1.45:http://dev.mysql.com/downloads/mysql/ (Windows (x86, 32-bit), ZIP Archive),解压到工作目录,如D:\mysql-5 ...

linux1

linux1 linux1 linux1
Global site tag (gtag.js) - Google Analytics