代码改变世界

随笔档案-2012年05月

MySQL源码:Innobase字典管理及索引

2012-05-20 13:31 by 竹 石, 2046 阅读, 收藏,
摘要: 前言:最近在重温innobase的B树及记录模块,发现对之前已经看过的字典管理及索引内容竟然忘却了,所以重新看了一遍并将它记录下来,防止哪天又给忘了。不过还是那句话,如果哪些有问题还请指正。谢谢。 在innobase中,最基本的有四个系统表,用来存储用户定义的表、列、索引及索引列等信息,这些表分别为SYS_TABLES、SYS_COLUMNS、SYS_INDEXES、SYS_FIELDS。每一个表的列分别如下: 1)、SYS_TABLES,用来存储所有的以innobase为存储引擎的表,每条记录对应已经定义的一个表。 NAME:表示一个表的表名。 ID:表示这个表的ID号(8个字节)。... 阅读全文

MySQL源码:Innobase缓冲池

2012-05-15 21:19 by 竹 石, 1011 阅读, 收藏,
摘要: Innodb的缓冲池主要是用来存储访问过的数据页的,它就是一块连续的内存,通过一定的算法使这块内存得到有效的管理。它是数据库系统中拥有最大块内存的系统。Innodb存储引擎中数据的访问是按照页(默认为16K)的方式从数据库文件中读取到缓冲区中,然后在内存中用同样大小的内存空间来做一个映射,为了提高数据访问效率,数据库系统预先就分配很多这样的空间,用来与文件中的数据进行交换。访问时按照最近最少使用(LRU)算法来实现缓冲区页面的管理,经常访问的在最前面,最不经常的在最后面,如果缓冲区中没有空闲的页面来做文件数据的映射时,就从缓冲池中找到最后面的且不使用的将它淘汰然后拿来映射新数据文件页面,同时将 阅读全文

mysql集群在WIN32下的配置

2012-05-15 21:18 by 竹 石, 317 阅读, 收藏,
摘要: mysql集群在WIN32下的配置折腾了好几个晚上,终于把MYSQL在WINDOWS下的集群配置起来了,挺高兴的,在这里与大家分享一下。准备工作:可以在http://www.mysql.com/downloads/cluster/上下载MYSQL cluster的安装版,安装之后即可开始配置,或者直接编它的源码,在经过编译之后再找到编译好的执行码来配置,不过直接从网上下载下来的源码还需要修改一些地方才能编译通过并且运行起来,这需要注意一下了。本人是用源码来编译配置的。下载的MYSQL版本最好是7.2.5的,本人之前下载了一个版本为7.2.4的,看了源码之后发现配置很复杂,好像它的配置文件是打包 阅读全文

MySQL源码:MYSQL表对象的字典缓存

2012-05-15 21:16 by 竹 石, 811 阅读, 收藏,
摘要: 前言:很久又没有写一些东西了,现在又有些空想把我对表对象缓存的一些理解记下来,可能其中有些不对或者不准确的地方请朋友指正,这里先谢谢大家了。2012-5-13 by whuai QQ:329570985 欢迎指正! 在MYSQL中,同样有很多类型的系统对象,包括表、视图、存储过程、存储函数等,但由于MYSQL的插件式存储引擎及其它实现方面的特点,其每一种对象的缓存方式都不同,或者说这些对象的缓存不是通过一种统一的方式来管理的,每一种对象的缓存都是有自己的特点,并且缓存的内容也有很大的差异,下面先只叙述一下表对象的缓存方式。表字典对象缓存,顾名思义,是将某个表对象的字典信息(定义内容)缓存到内. 阅读全文

MySQL源码:MYSQL存储过程/函数的分析原理及缓存机制

2012-05-15 21:09 by 竹 石, 3150 阅读, 收藏,
摘要: 前言:我个人认为,有关MYSQL存储过程/函数在MYSQL中的实现比较粗糙,可扩展性不够好,其实现的耦合性太高,所以主要讲一些它的原理方面的内容,但有可能在某些方面理解不够好或者有些不正确的地方,欢迎指正,谢谢!2012-5-14 by whuai QQ:329570985 欢迎指正! 在MYSQL中,同样有很多类型的系统对象,包括表、视图、存储过程、存储函数等,但由于MYSQL的插件式存储引擎及其它实现方面的特点,其每一种对象的缓存方式都不同,或者说这些对象的缓存不是通过一种统一的方式来管理的,每一种对象的缓存都是有自己的特点,并且缓存的内容也有很大的差异,下面再叙述一下存储过程(PLSQ. 阅读全文