范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

技术分享MySQLchangebuffer何时生效

  作者:胡呈清
  爱可生 DBA 团队成员,擅长故障分析、性能优化,个人博客:https://www.jianshu.com/u/a95ec11f67a8,欢迎讨论。
  本文来源:原创投稿
  *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。
  已知 change buffer 的原理
  参考资料:https://juejin.im/post/6844903875271475213
  对于普通二级索引,当插入、修改、删除二级索引记录时,即使数据不在 innodb buffer pool 中,也不需要先把数据从磁盘读取到内存。只需要在 change buffer 中完成 DML 操作,下次读取时才会从磁盘读取数据页到内存,并与 change buffer 进行 merge,从而得到正确的数据。这减少了 DML 时的随机 IO。 疑问
  按照上述原理,使用 change buffer 二级索引不需要读取磁盘,那 delete、update 是如何得到 affected rows 的? 答
  不妨先作出假设: 如果 delete、update 是以主键、唯一索引做为筛选条件,则读取磁盘或者 innodb buffer pool 中的主键、唯一索引来确定 affected rows。对于普通索引页上记录的删除或者修改,还是直接使用 change buffer,不需要单独将普通索引页从磁盘上读取到内存。 如果 delete、update 是以普通二级索引做为筛选条件,以 delete 为例(update 内部实现是先 delete 再 insert):delete from t where a=100; 如果索引页不在内存中,则需要先从磁盘读取 a 索引,找到 a = 100 的记录对应的 id(主键值),再从磁盘扫描主键索引(回表)将 id 满足条件的记录读取到内存。然后在 innodb buffer pool 中把对应的主键索引页、二级索引页中的记录删除。这里不使用 change buffer。 验证
  接下来设计两个实验来验证上述假设。 实验1-以主键为筛选条件做 delete
  用 sysbench 造一张 100 万行的表,表中有一个主键和一个普通索引: CREATE TABLE `sbtest1` (   `id` int NOT NULL AUTO_INCREMENT,   `k` int NOT NULL DEFAULT "0",   `c` char(120) COLLATE utf8mb4_bin NOT NULL DEFAULT "",   `pad` char(60) COLLATE utf8mb4_bin NOT NULL DEFAULT "",   PRIMARY KEY (`id`),   KEY `k_2` (`k`) );
  重启 mysqld ,清空 innodb buffer pool,注意参数: innodb_buffer_pool_size = 64M innodb_buffer_pool_load_at_startup = 0 innodb_buffer_pool_dump_at_shutdown = 0 innodb_buffer_pool_dump_pct = 0
  执行 delete,并使用 show engine innodb statusG 观察INSERT BUFFER AND ADAPTIVE HASH INDEX  部分信息,判断是否使用 change buffer:mysql> delete from sbtest1 where id=1; Query OK, 1 row affected (0.00 sec) mysql> show engine innodb statusG ------------------------------------- INSERT BUFFER AND ADAPTIVE HASH INDEX ------------------------------------- Ibuf: size 1, free list len 29, seg size 31, 1 merges merged operations:  insert 0, delete mark 1, delete 0 discarded operations:  insert 0, delete mark 0, delete 0   mysql> delete from sbtest1 where id=2; Query OK, 1 row affected (0.00 sec) ------------------------------------- INSERT BUFFER AND ADAPTIVE HASH INDEX ------------------------------------- Ibuf: size 1, free list len 29, seg size 31, 2 merges merged operations:  insert 0, delete mark 2, delete 0 discarded operations:  insert 0, delete mark 0, delete 0   mysql> delete from sbtest1 where id=3; Query OK, 1 row affected (0.00 sec)   ------------------------------------- INSERT BUFFER AND ADAPTIVE HASH INDEX ------------------------------------- Ibuf: size 1, free list len 29, seg size 31, 3 merges merged operations:  insert 0, delete mark 3, delete 0 discarded operations:  insert 0, delete mark 0, delete 0   mysql> select * from sbtest1 where id=4; mysql> delete from sbtest1 where id=4; ------------------------------------- INSERT BUFFER AND ADAPTIVE HASH INDEX ------------------------------------- Ibuf: size 1, free list len 29, seg size 31, 4 merges merged operations:  insert 0, delete mark 4, delete 0 discarded operations:  insert 0, delete mark 0, delete 0
  上述实验说明:如果 delete 是以主键做为筛选条件,对于普通索引k,如果索引页不在内存中(select * from sbtest1 where id=4 读取的只是主键索引页,不会读取k索引页),会使用 change buffer(每次 delete 后,delete mark 都增加1)。 实验2-以普通索引为筛选条件做 delete
  重新造数据,重启 mysqld 清空 buffer pool。下面实验结果说明:如果 delete 以普通索引做为筛选条件,对于普通索引k,如果索引页不在内存中,不会使用 change buffer。言外之意就是需要读取磁盘了。 ##delete where id=1,delete mark +1,说明使用了change buffer mysql>  delete from sbtest1 where id=1; Query OK, 1 row affected (0.01 sec) ------------------------------------- INSERT BUFFER AND ADAPTIVE HASH INDEX ------------------------------------- Ibuf: size 1, free list len 29, seg size 31, 1 merges merged operations:  insert 0, delete mark 1, delete 0 discarded operations:  insert 0, delete mark 0, delete 0   ##delete where k=367246,delete mark 不变,说明没有使用change buffer mysql> select * from sbtest1 where id=2; +----+--------+-------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------+ | id | k      | c                                                                                                                       | pad                                                         | +----+--------+-------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------+ |  2 | 367246 | 42909700340-70078987867-62357124096-35495169193-85675377266-14643719347-30417020186-80900182681-50382374444-66260611196 | 74781290517-41121402981-50604677924-34464478849-89102349959 | +----+--------+-------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------+ 1 row in set (0.00 sec)  mysql> delete from sbtest1 where k=367246; Query OK, 1 row affected (0.01 sec)  ------------------------------------- INSERT BUFFER AND ADAPTIVE HASH INDEX ------------------------------------- Ibuf: size 1, free list len 29, seg size 31, 1 merges merged operations:  insert 0, delete mark 1, delete 0 discarded operations:  insert 0, delete mark 0, delete 0

收到垃圾广告短信,回复T退订,完全没用怎么办?相信大家在网购或者注册某一网站之后,一定收到过类似的促销或者垃圾短信,烦不胜烦。不想再受打扰,按照提示回复TN退订,千万不要!!!这么做只会提醒对方,这个号码一直有人在用,是个活跃移动支付网新闻周评信用卡新政,给收单行业透露的信息移动支付网消息12月16日,银保监会发布了一个有意思的文件,关于进一步促进信用卡业务规范健康发展的通知(征求意见稿)(以下简称通知),用今年的一大热词来形容,这一文件可谓是推动信用2022年中国智能家居照明行业市场现状及发展趋势分析来源阿拉丁照明网行业主要上市企业三雄极光(300625)阳光照明(600261)佛山照明(000541)等本文核心数据中国智能家居产品结构智能家居照明控制形式中国智能家居照明发展阶中国到店消费新趋势洞察报告(10大潜力城市10大潜力品类)来源阿里巴巴本地生活报告公布了到店消费10大潜力城市和10大潜力品类。未来一年,如果你选择在以下城市经营某个潜力品类,很可能你会比同行赚更多钱。大纲目录1新到店消费时代2Z世代到店知乎高赞拼多多和国家电网,选哪个?知乎上有人问本人是某top3本硕,EE专业,秋招拿到了老家不差的地级市国网(东部沿海,非江浙山东)供电局与平多多的offer。现在在纠结,应该选择哪一个。选择国网供电局的offer国家邮政局江苏率先基本实现快递服务建制村全覆盖国家邮政局数据显示,江苏省13790个建制村中,13778个村已通达4个以上品牌快递服务,通达率为99。91,13354个村已通达7个以上品牌快递服务,通达率为96。83。今年1至美容店为什么要用美容院预约系统微信小程序?1。消费者通过小程序做服务项目的预约,高效灵活,可以灵活预约技师,时间段和服务项目2。通过小程序比较贴合美容商家,在线售卖服务项目,卡项和产品,完成交易闭环3。还可以通过小程序的营请问一下买了6700xt拿去挖两个月矿(不超频),挖完还能继续打游戏吗。对显卡有什么影响吗?就是挖三年,只要不坏,照常打游戏。矿卡损坏大部分是显存,因为厂家设计没有导热垫,挖过矿的一眼就可以看出来显存已经烧烤了,以后玩游戏大概率显存会出现虚焊损坏。我有一张早期矿渣7750台式电脑忘关了,能运转多久不会坏?这是一篇纯技术文,如果您感兴趣可以耐着性子看完。当然电脑坏掉的情况非常复杂,有软件故障,比如常见的死机和崩溃。这类故障非常难以估计,所以不在我这篇文章的讨论范围内。我现在把你的问题买相机之前应该考虑哪些?买相机之前应该考虑哪些?这个问题很好,因为我也是去年才入手了全画幅,之前都是C画幅在用。直到去年感觉全画幅才能拍出我要的效果,所以入手了全画幅。我就用我的切身体会来回答题主这个问题拼多多上9。9元抢苹果手机是真的吗?你相信吗?你抢到了吗?我不相信,不可能。假的。拼多多就是一个坑,有点像淘宝刚开始的时候,为了做大赚钱而不择手段。它的广告往往吹得天花乱坠,而实际上就是各种的营销套路,利用数据模型和中奖概率或者官方解释权
实用可靠的车怎么选?这3款网友调侃能传世,20万公里不大修年轻人买车大多都更看重颜值,因为他们觉得颜值即正义,但对于年龄层更大的中年群体来说,他们选车时往往都更注重实用性可靠性。为此,通常在销量榜单前列的几款车型,它们基本都不与高颜值挂钩新款路虎极光L上市,轴距加长就想跟BBA竞争?网友先降10万再说提起路虎这个汽车品牌,在很多年轻人看来似乎没有太多触动,但是在老一辈的用户心中,路虎品牌曾经的地位还是不可撼动。只不过这家命运多舛的豪华品牌,如今在中国汽车市场的表现确实不太可观。车圈大事件周迅入驻五菱,担任全球代言人,网友国货高级感提到国货之光国民汽车品牌等等词汇,大家最先想到的会是哪一个品牌?或许很多朋友都和笔者一样,会率先想到五菱。从销量上,五菱汽车的用户总数已超过2300万,这一佳绩无疑都位列在了国产品微观海贼王世界,浅谈影响孩子成长的三个重要因素孩子的成长教育问题一直是社会关注的焦点,家长学校乃至社会一直致力于寻找更好的方法来让孩子快乐健康地成长。但方法千千万万,今天我就从海贼王的世界里,谈谈哪些因素对孩子的成长产生深远的海贼王大妈篇中路飞被钉在墙上是BUG还是能力不足?众所周知,海贼王世界里最吸引人之一的就是恶魔果实。通过食用不同属性的恶魔果实,食用者就会获得该属性的超能力。海贼王世界中,不少人就是通过开发自身的恶魔果实而站在了新世界的金字塔尖,私人家庭影院遇上智能华为智慧屏X65让网友直呼真香!华为发布P40后又带来一款重磅产品,旗下首款旗舰智慧屏华为智慧屏X65。4月1日,华为在居然之家国际馆打造了一场高品质的家居生活体验,这款华为智慧屏X65凭借其强大的音画实力及AI华为儿童手表4X评测,让孩子放肆让家长放心是如何做到的?随着疫情的缓解以及暑假的到来,很多家长都选择走出家门,带上孩子去逛逛商场遛遛公园,感受那种久违的自由。而在这个时候,如何保护孩子们安全这个老生常谈的问题,再次引起大家的重视。不过值选好电视究竟能否保护孩子眼睛健康?看专业人士怎么说近两年,国家多级单位一直在强调要共同呵护好孩子的眼睛,关注孩子们的眼睛健康。之所以这么做,一方面因为孩子们的眼睛在发育期青春期本就脆弱,另一方面则是因为互联网时代,孩子们观看屏幕的华为智慧屏SPro65体验,选它不止为自己,更为了孩子画质好,音质佳,还有多项和手机之间打通任督二脉的创新体验,不只是一台电视,更是一台超级智慧终端。在华为智慧屏SPro65上市时我们就第一时间体验了这款产品,最近也收到很多购买了这款如何解决网站PC端和移动端排名不一致?新网建站资讯随着移动设备的不断普及,目前移动端的流量基本上已经和PC端的流量旗鼓相当,甚者有过之而无不及。对于SEO来说,PC端的网站可以做SEO优化,那么移动端的同样也可以做SE近964万!单词域名Enjoy。com交易价格曝光新网域名资讯2015年的时候,国外一终端收购了单词域名enjoy。com享受的乐趣,并很快搭建了一个移动零售领域的终端,但是一直到今年4月份公司计划合并上市前夕,大家都不知道该域名