mysql
spche
这个作者很懒,什么都没留下…
展开
-
mysql 内核分析
先把 http://forge.mysql.com/wiki/MySQL_Internals 上面的文章看一下,就明白了mysql大致的结构和执行流程, mysql从功能上来讲,并不完善,适用于OLTP,不适用于OLAP,在开源数据库而言,对于重要的数据存储的话,而是建议采用postgresql 下面把mysql和postgresql从内核级做一些对比分析,找出mysql快,但功能原创 2010-04-05 16:45:00 · 3623 阅读 · 1 评论 -
memory pool
/*The main components of the memory consumption are:1. buffer pool,2. parsed and optimized SQL statements,3. data dictionary cache,4. log buffer,5. locks for each transaction,6. hash t原创 2012-04-20 23:59:56 · 803 阅读 · 0 评论 -
lock
/* An explicit record lock affects both the record and the gap before it.An implicit x-lock does not affect the gap, it only locks the indexrecord from read or update.If a transaction has modi原创 2012-04-21 00:00:46 · 1449 阅读 · 0 评论 -
TABLESPACE MEMORY CACHE
/* IMPLEMENTATION OF THE TABLESPACE MEMORY CACHE =============================================The tablespace cache is responsible for providing fast read/write access totablespaces and log原创 2012-04-21 00:00:54 · 1072 阅读 · 0 评论 -
innodb system table
//基本不下面几个系统表table = dict_mem_table_create("SYS_TABLES", DICT_HDR_SPACE, 8, 0); dict_mem_table_add_col(table, heap, "NAME", DATA_BINARY, 0, 0); dict_mem_table_add_col(table, heap, "ID", DATA_BI原创 2012-04-21 00:01:02 · 1077 阅读 · 0 评论 -
buffer pool
/* IMPLEMENTATION OF THE BUFFER POOL =================================Performance improvement:------------------------Thread scheduling in NT may be so slow that the OS wait mechanism sh原创 2012-04-21 00:02:22 · 969 阅读 · 0 评论 -
dictionary
table 对应 column; index 对应 field /** Data structure for a column in a table */struct dict_col_struct{/*----------------------*//** The following are copied from dtype_t,so that all bit-原创 2012-04-21 00:02:52 · 895 阅读 · 0 评论 -
mysql的innodb启动过程
fil_init 主要是初始化文件打开指针哈希表,所有打开的文件全记录在 fil_system 之中,构造按名字查找的哈希表 buf_pool_init 内存缓冲池的初始化,对应 buf_pool_ptr 数组之中,还初始化了 adaptive hash index 的内存log_init 初始化log缓冲区,默认大小为 512*16k, 每个log页面大小为 #define OS_FIL原创 2012-04-20 23:53:02 · 1676 阅读 · 0 评论 -
query graph
/* Query graph query thread node: the fields are protected by the kernelmutex with the exceptions named below */struct que_thr_struct{ que_common_t common; /*!< type: QUE_NODE_THR */ ulint mag原创 2012-04-20 23:55:39 · 1210 阅读 · 0 评论 -
master thread
mysql 中最重要的 daemon 线程,控制了大部分的后台工作 /** Types of threads existing in the system. */enum srv_thread_type { SRV_COM = 1, /**< threads serving communication and queries */ SRV_CONSOLE, /**< threa原创 2012-04-20 23:57:02 · 1158 阅读 · 0 评论 -
spin lock; rw lock
/*Our mutex implementation works as follows: After that we perform the atomictest-and-set instruction on the memory word. If the test returns zero, weknow we got the lock first. If the test retu原创 2012-04-20 23:57:18 · 1209 阅读 · 0 评论 -
asyn io
/** The asynchronous i/o array slot structure */typedef struct os_aio_slot_struct os_aio_slot_t;/** The asynchronous i/o array slot structure */struct os_aio_slot_struct{ ibool is_read; /*!原创 2012-04-21 00:00:36 · 1283 阅读 · 0 评论 -
index
/** Data structure for a field in an index */struct dict_field_struct{ dict_col_t* col; /*!< pointer to the table column */ const char* name; /*!< name of the column */ unsigned prefix_len:1原创 2012-04-21 00:02:38 · 819 阅读 · 0 评论 -
HandlerSocket
HandlerSocket是mysql的一个插件,主要是越过parser,optimizer这一层,直接对数据库进行key/value的存储,对于大内存的数据库,能极大的提高性能. 通过阅读代码,发现它主要用到了mysql的下面的结构体struct tablevec_entry { TABLE *table; size_t refcount; bool modifie原创 2012-05-10 16:09:28 · 1205 阅读 · 0 评论 -
Binary Log
/***************************************************************************** MySQL Binary Log log_event.h This log consists of events. Each event has a fixed-length header, possibly原创 2012-04-20 23:59:49 · 1078 阅读 · 0 评论 -
file space
/* SPACE HEADER ============File space header data structure: this data structure is contained in thefirst page of a space. The space for this header is reserved in every extentdescripto原创 2012-04-20 23:58:25 · 1139 阅读 · 0 评论 -
doublewrite buffer
http://www.mysqlperformanceblog.com/2006/08/04/innodb-double-write/ /** Doublewrite control struct */struct trx_doublewrite_struct{ mutex_t mutex; /*!< mutex protecting the first_free fiel原创 2012-04-20 23:58:17 · 1251 阅读 · 0 评论 -
mysql 中的myisam 中的btree
<br />myisam 不支持事务,不支持MVCC,同一时该只能有一个事务修改数据库,不存在并发的问题,所以它的btree实现比较简单,可说是按教科书写的。原创 2010-09-03 15:29:00 · 831 阅读 · 0 评论 -
Distributed Transaction Processing:mysql
mysql XA Transactionshttp://dev.mysql.com/doc/refman/5.5/en/xa.html原创 2010-09-19 17:34:00 · 1611 阅读 · 0 评论 -
mysql InnoDB btree
/*Latching strategy of the InnoDB B-tree--------------------------------------A tree latch protects all non-leaf nodes of the tree. Each node of a treealso has a latch of its own.A B-tree operation normally first acquires an S-latch on the tree原创 2011-02-23 13:44:00 · 2337 阅读 · 1 评论 -
mysql的create database
通过create database test1 语句创建的数据库,就是在数据目录下创建了一个 test1 的文件夹,里面再建一个 db.opt 的文件,包含了字符集信息mysql没用全局的database数据表,所以文件夹就是数据库,删掉数据库是只需把这个文件夹删掉就可以了,拷贝也是一样,,这样实现比较简单 在innodb的创建表时,先会在数据库目录创建一个后缀为原创 2010-03-30 15:45:00 · 1796 阅读 · 0 评论 -
mysql 在 VS2005上面单步调试
http://www.xianfen.net/Article137.aspxhttp://database.ctocio.com.cn/tips/114/8305614.shtmlhttp://forge.mysql.com/wiki/Building_MySQL_on_Windows 环境准备:1. 获取MySQL最新源码:当前版本为5.1.45:http://dev.mys原创 2010-03-25 15:19:00 · 1947 阅读 · 1 评论 -
btree
/*Latching strategy of the InnoDB B-tree--------------------------------------A tree latch protects all non-leaf nodes of the tree. Each node of a treealso has a latch of its own.A B-tree原创 2012-03-09 13:44:41 · 652 阅读 · 0 评论 -
Transaction
TransactionId 是一个32位的无符号整数,事务和子事务的id,全是按照一个顺序来的,当这个32位整数用完一圈后,就需要一些特殊的操作/*---------- * Check to see if it's safe to assign another XID. This protects against * catastrophic data loss due to X原创 2012-04-20 23:59:40 · 1415 阅读 · 0 评论 -
log
/* Offsets of a log block header */#define LOG_BLOCK_HDR_NO 0 /* block number which must be > 0 and is allowed to wrap around at 2G; the highest bit is set to 1 if this is the firs原创 2012-04-20 23:56:17 · 554 阅读 · 0 评论 -
read view
这就是多版本中在事务要读取元组时,进行判断的事务快照,和postgresql中的snapshot一样,就是名不一样,都是把事务启动时,还有运行的事务ID记录在一个列表里面,事务ID在这之间的还需要判断,比这区间小的认为是已提交的,比这区间大的认为是看不到的 /*多版本的限制FACT A: Cursor read view on a secondary index sees only原创 2012-04-20 23:56:30 · 1206 阅读 · 0 评论 -
PHYSICAL RECORD
/* PHYSICAL RECORD (OLD STYLE) ===========================The physical record, which is the data type of all the recordsfound in index pages of the database, has the following format(low原创 2012-04-20 23:56:45 · 822 阅读 · 0 评论 -
INFORMATION SCHEMA table cache
这是系统视图的cache,看样子mysql没有用buffer pool,而是专门对系统视图做了一个cache每个表都有自已在内存中的cache, 最大为16M,分配时是按chunk进行的,初始大小是1024个行的大小,按照new = old + old/2这样的速度增加 /** Memory for each table in the intermediate buf原创 2012-04-20 23:57:50 · 964 阅读 · 0 评论 -
purge
/** The control structure used in the purge operation */struct trx_purge_struct{ ulint state; /*!< Purge system state */ sess_t* sess; /*!< System session running the purge query */原创 2012-04-20 23:58:00 · 903 阅读 · 0 评论 -
rollback segment
/* Transaction rollback segment header *//*-------------------------------------------------------------*/#define TRX_RSEG_MAX_SIZE 0 /* Maximum allowed size for rollback segment in pages */#def原创 2012-04-20 23:58:07 · 1837 阅读 · 0 评论 -
mysql内核分析的网址
https://blogs.oracle.com/mysqlinnodb/转载 2014-09-24 17:19:41 · 659 阅读 · 0 评论