自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yanzongshuai的专栏

专注于MySQL、MariaDB、Percona、PostgreSQL数据库及Aerospike等nosql数据库

  • 博客(20)
  • 论坛 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 innodb buffer pool管理--LRU调整

buf_LRU_old_adjust_len(buf_pool): //old_len==512,new_len=min(512*378/1024, 512-25),其实是512的3/8 // buf_pool->LRU_old_ratio 为378(innodb_old_blocks_pct默认值是37) old_len = buf_pool->LRU_old_len;

2017-05-30 22:23:46 381

原创 MySQLTuner--使用方法

Important Usage Guidelines: To run the script with the default options, run the script without arguments Allow MySQL server to run for at least 24-48 hours before trusting suggestions

2017-05-29 17:31:09 962

原创 MySQLTuner工具--效果

在阿里云博客看到一款性能统计工具,实验了一把,感觉有几项可以关注下。https://yq.aliyun.com/articles/52879?utm_content=m_14134[mysql26@localhost ~]$ ./tun --user root --socket /home/mysql26/bin/mysql.sock >> MySQLTuner 1.7.2 - Maj

2017-05-29 17:09:26 2747

原创 xshell连接本机虚拟机里的Linux环境

1、在Linux环境里执行ifconfig查看其IP2、在xshell里配置对应的IP就可以3、配置登录用户和密码4、即可登录

2017-05-29 17:00:57 530

原创 innodb double write buffer批量刷场景

buf_flush_batch-> buf_do_LRU_batch | buf_do_flush_list_batch->buf_flush_page_and_try_neighbors-> buf_flush_try_neighbors-> buf_flush_page有后台线程,也有前台用户线程触发checkpoint,此处是FLUSH LIST log_make_checkpoin

2017-05-28 09:34:56 412

原创 innodb double write buffer刷单页场景

buf_page_get_gen(debug)->buf_flush_page_try-> buf_flush_page-> buf_flush_write_block_low-> buf_dblwr_write_single_pagebuf_LRU_get_free_block ->buf_flush_single_page_from_LRU-> buf_flush_page如果在LRU

2017-05-27 22:14:01 404

转载 sync、fsync、fdatasync知识点

1.缓冲区简介人生三大错觉之一:在调用函数write()时,我们认为该函数一旦返回,数据便已经写到了文件中.但是这种概念只是宏观上的.实际上,操作系统实现某些文件I/O时(如磁盘文件),为了保证I/O的效率,在内核通常会用到一片专门的区域(内存或独立的I/O地址空间)作为I/O数据缓冲区.它用在输入输出设备和CPU之间,用来缓存数据,使得低速的设备和高速的CPU能够协调工作避免低速的输入输出设

2017-05-26 22:45:30 707

原创 innodb double write buffer--buf_dblwr_add_to_batch调用write、fsync的函数buf_dblwr_flush_buffered_writes

真正write、fsync double write到磁盘的函数 //如果不使用double write,那么fsync操作系统内容到磁盘。会有这种情况吗,调用批量函数的时候,已经排除这种情况了? if (!srv_use_doublewrite_buf || buf_dblwr == NULL) { /* Sync the writes to the disk. */ bu

2017-05-26 22:43:36 584

原创 innodb double write buffer--buf_dblwr_add_to_batch

将脏页放到double write buffer中。等待满。如果此时已满则1M 1M刷write、fsync(系统表空间)到磁盘。voidbuf_dblwr_add_to_batch(/*====================*/ buf_page_t* bpage) /*!< in: buffer block to write */{try_again: mutex_e

2017-05-26 22:36:53 498

原创 show engine innodb status函数接口

ha_innodb.cc:innodb_show_status主要调用函数为:srv_printf_innodb_monitor有兴趣的可以gdb跟踪下,看到输出结果对齐的很整齐,其实是通过塞空格达到的效果。

2017-05-24 22:09:03 369

原创 innodb double write buffer--buf_dblwr_write_single_page

写一个页到double write buffer,sync。size = 2 * TRX_SYS_DOUBLEWRITE_BLOCK_SIZE;//2M,即128页n_slots = size - srv_doublewrite_batch_size;//默认120页用于单页刷的double write只有8个os_event_reset(buf_dblwr->s_event);os_e

2017-05-21 21:59:32 540

原创 innodb double write buffer--刷新页

函数是buf_flush_write_block_lowvoid buf_flush_write_block_low(/*======================*/ buf_page_t* bpage, /*!< in: buffer block to write */ buf_flush_t flush_type, /*!< in: type of flush */ bool

2017-05-21 21:51:43 379

原创 innodb double write buffer--struct

/** Doublewrite control struct */struct buf_dblwr_t{ ib_mutex_t mutex; /*!< mutex protecting the first_free field and write_buf */ ulint block1; /*!< the page number of the first doublewrite block

2017-05-21 16:27:27 518

原创 系统表空间第6页Transaction system header页关于double write内容

double buffer信息存放在ibdata文件的第6个页中,偏移位置在页面的最后200个字节处。TRX_SYS_DOUBLEWRITE_FSEG                double buffer所在段的段头信息TRX_SYS_DOUBLEWRITE_MAGIC            用来判断是否已经初始化过该2次写页面TRX_SYS_DOUBLEWRITE_BLOCK

2017-05-20 20:58:17 384

原创 MySQL快速修改表结构,只针对更改varchar类型字段长度

1、创建表结构 create table t2(id int,c varchar(10));2、插入数据     insert into t1 values(1,'aaaaaaaaaa');3、创建需要更改成的临时表    create table t2(id int,c varchar(20));4、锁表    flush tables with read

2017-05-16 21:38:05 5417

转载 MySQL Innodb_fast_shutdown参数的内部过程介绍

http://blog.itpub.net/15498/viewspace-2136014/Innodb_fast_shutdown参数告诉innodb在它关闭的时候该做什么工作,innodb_fast_shutdown影响着innodb表的行为,该参数有0,1,2三个值可以选择:0表示在innodb关闭的时候,需要purge all, merge insert buffer,

2017-05-14 21:59:09 1350

原创 innodb purge协调线程

分为3个阶段第一阶段:while循环中调用rseg_history_len= srv_do_purge(srv_n_purge_threads, &n_total_purged);       while退出循环的条件      1)srv_purge_should_exit(n_total_purged)确定:                 Shutdown时退出。当innod

2017-05-14 21:48:43 588

原创 innodb purge--二级索引

1、流程:row_purge_remove_sec_if_poss if (row_purge_remove_sec_if_poss_leaf(node, index, entry)) { return; }retry: success = row_purge_remove_sec_if_poss_tree(node, index, entry);

2017-05-14 19:47:56 387

原创 innodb purge--聚集索引

row_purge_remove_clust_if_poss_low if(node->roll_ptr != row_get_rec_roll_ptr(rec, index, offsets)) { /*Someone else has modified the record later: do not remove */ gotofunc_exit;

2017-05-14 17:08:57 532

原创 innodb 回滚段内存结构

1、将undo页插入historylist时,如果是第一次插入,即该回滚段最早的事务,将相关信息保存到回滚段的内存结构中,即下面几个成员保存的是回滚段中最老事务的信息: trx_commit->trx_commit_low->trx_write_serialisation_history->trx_undo_update_cleanup->trx_purge_add_update_undo_

2017-05-07 17:30:32 1780

空空如也

yzs87的留言板

发表于 2020-01-02 最后回复 2020-01-02

写博客能不能添加个撤销键

发表于 2018-01-04 最后回复 2018-01-06

innodb插入意向锁如何使用

发表于 2015-06-07 最后回复 2015-06-07

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除