- 博客(10)
- 问答 (1)
- 收藏
- 关注
原创 MySQL 8.0 GDB源码调试表的打开
对应的函数如下/***/在open_table函数中,会尝试获取TABLE_SHARE缓存。if (!..}在上面的函数中,会最终调用get_table_share这个函数来获取缓存。/**/
2025-10-15 13:45:09
320
原创 MySQL 8.0 DB启动相关源码介绍
主函数会调用mysqld.cc中的mysqld_main函数,进行DB的一系列初始化动作。如果开启了performance_schema,初始化相关配置。决定默认的数据库端口和socket名字。执行基本的线程库和堆内存初始化。读取优化器成本模型配置表。初始化存储引擎等核心模块。初始化GTID的设置。将pid保存到文件中。
2025-10-10 19:00:00
157
原创 MySQL 8.0 数据库连接相关源码介绍
VIO(Virtual I/O) 是一个对网络通信底层进行封装的抽象层。它主要用于处理MySQL客户端与服务器之间,以及服务器内部的各种网络I/O操作。主要是在handle_connection函数中实现。如果连接活跃,进入循环,执行对应的DB命令。主函数会返回mysqld_admin函数。在另外一个终端中,开启一个连接会话。接下来是有vio的创建和初始化。连接事件循环函数的具体定义。
2025-10-09 18:35:16
244
原创 MySQL 8.0 GDB源码调试
想要调试源码,需要使用编译过的MySQL版本,在编译的时候加上-DWITH_DEBUG=1参数,这样才可以在调试的时候在对应的函数上面加上断点。
2025-09-26 10:05:46
275
原创 SQLite源码B-tree读写核心函数介绍
会在freelist中就近搜索未分配的页,新的页被标记为脏页。在页的cell索引上,插入一个新的cell。将页中的数据返回给freelist。初始化BtShared和游标。写入新表的root页的页号。从数据库文件分配一个新的页。创建一张BTree表。
2025-09-22 20:00:00
205
原创 SQLite源码Btree的介绍
对于表中任何数据条目来说,对应的key和数据组成了payload,一定数据量的payload可以直接在页上面存放。游标时数据库文件中,指向特定b-tree的条目的指针,对应MemPage和MemPage.aCell[]中的索引。cell指针按照顺序存储,这样做的好处是,新的cell可以很容易添加而不会导致页的分裂。对象中的信息来源于磁盘上页的内容。每个页有一个小的头,包含了Ptr(N)指针和其他信息,例如key和数据的大小。在树的实现上,一个单独的数据文件可以包含一颗或多颗独立的B树。
2025-09-19 18:00:22
155
原创 PostgreSQL 14.2 源码安装
在此步骤,要求输入超级用户 postgres 用户的密码。运行configure程序配置编译选项。--prefix 指定安装目录。创建postgres用户和组。
2023-06-21 16:00:00
242
原创 MySQL 8.0报错1114, “The table ‘/data/mysql/5306/tmp/#sql70da_911_3‘ is full
MySQL 8.0报错1114, "The table '/data/mysql/5306/tmp/#sql70da_911_3' is full
2022-09-16 19:00:00
711
空空如也
Oracle secure backup 磁带如何释放空间?
2015-09-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅