MySQL的innodb启动过程
fil_init 主要是初始化文件打开指针哈希表,所有打开的文件全记录在 fil_system 之中,构造按名字查找的哈希表 buf_pool_init 内
fil_init 主要是初始化文件打开指针哈希表,所有打开的文件全记录在 fil_system 之中,构造按名字查找的哈希表
buf_pool_init 内存缓冲池的初始化,对应 buf_pool_ptr 数组之中,还初始化了 adaptive hash index 的内存
log_init 初始化log缓冲区,默认大小为 512*16k, 每个log页面大小为 #define OS_FILE_LOG_BLOCK_SIZE 512 日志文件在创建过程中也是指定不用系统缓存
lock_sys_create 初始化系统锁,就是建了一个HASH表,lock_sys
recv_recovery_from_checkpoint_start 开始执行恢复
dict_boot 初始化表结构的缓存,dict_sys,建两个hash表,可以根据表名和表ID查找;初始化系统表,就四个 SYS_TABLES SYS_COLUMNS SYS_INDEXES SYS_FIELDS ;初始化 insert buffer,每一个表空间对应一个;读入上面四个系统表中的内容
trx_sys_init_at_db_start 初初化事务结构体 trx_sys ; Creates the global purge system control structure and inits the history
dict_create_or_check_foreign_constraint_tables 创建另外两张系统表 SYS_FOREIGN SYS_FOREIGN_COLS
启动的线程,
IO部分共10个,可通过参数配置
1个 insert buffer thread
1个 log thread
4个 aio read thread
4个 aio write thread
1个 lock timeout thread A thread which wakes up threads whose lock wait may have lasted too long
1个 error monitor thread A thread which prints warnings about semaphore waits which have lasted too long
1个 monitor thread A thread which prints the info output by various InnoDB monitors
1个 master thread The master thread controlling the server
1个 thread handle shutdown
1个 handle connections socket 专门用来处理连理的
1个 trx_rollback_or_clean_all_recovered Rollback the uncommitted transactions which have no user session
struct st_mysql_plugin *mysql_optional_plugins[]=
{
builtin_innobase_plugin, builtin_perfschema_plugin, builtin_partition_plugin, 0
};
struct st_mysql_plugin *mysql_mandatory_plugins[]=
{
builtin_binlog_plugin, builtin_mysql_password_plugin, builtin_csv_plugin, builtin_heap_plugin, builtin_myisam_plugin, builtin_myisammrg_plugin, 0
};
初始化的 binlog memory myisam innodb pefformance_schema partition
上一篇: Hadoop为什么要用java
推荐阅读
-
MYSQL无法启动提示: Default storage engine (InnoDB) is not available的解决方法
-
Mysql启动中 InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes 的问题
-
MySQL InnoDB和MyISAM数据引擎的差别分析
-
一些mysql启动参数的说明和优化方法
-
详解Ubuntu Server下启动/停止/重启MySQL数据库的三种方式
-
免安转MySQL服务的启动与停止方法
-
windows无法启动MySQL服务报错1067的解决方法
-
Springboot上传excel并将表格数据导入或更新mySql数据库的过程
-
Mysql更改默认引擎为Innodb的步骤方法
-
MySQL 存储过程的基本用法介绍