[发明专利]一种数据库更新的方法及装置有效
申请号: | 201711275922.3 | 申请日: | 2017-12-06 |
公开(公告)号: | CN110019130B | 公开(公告)日: | 2022-09-06 |
发明(设计)人: | 张广舟;林晓斌;范孝剑;窦贤明;曾文旌;周正中;熊亮春;张文杰 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F16/21 | 分类号: | G06F16/21;G06F16/23 |
代理公司: | 北京清源汇知识产权代理事务所(特殊普通合伙) 11644 | 代理人: | 冯德魁;窦晓慧 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 更新 方法 装置 | ||
本申请公开了一种数据库更新的方法和装置,所述方法包括:基于对数据库的更新操作,在更新操作所对应的原始数据空间的末尾创建新增数据空间;将所述原始数据空间中的数据复制到新增数据空间;在所述原始数据空间中记录更新数据。本申请的方法可改善数据库表膨胀的问题。
技术领域
本申请涉及数据库技术领域,具体涉及一种数据库更新的方法。本申请同时涉及一种数据库更新的装置。
背景技术
大多数的MySQL事务型存储引擎,如InnoDB,Falcon以及PBXT都不会使用一种简单的行锁机制。他们都和另外一种用来增加并发性的被称为“MVCC(Multi-VersionConcurrency Control,多版本并发控制)”的机制来一起使用。MVCC不只使用在MySQL中,Oracle、PostgreSQL以及其它一些数据库系统也同样使用它,通过使用MVCC算法自动提供并发控制。MVCC可维持一个数据的多个版本,使读写操作没有冲突。MVCC优化了数据库并发系统,使系统在有大量并发用户时得到较高的性能,并且可以无需关闭服务器就可直接进行热备份。
采用多版本并发控制的数据库系统,集中执行大量更新操作时,容易产生表膨胀。例如,一次性更新一张表中的所有数据时,数据库会保留所有的旧版本(因为这些数据可能会被并发的事务读取),而从表的末尾分配新的表空间。采用前述方法,当更新事务提交后,并且其他活跃事务也提交后,可以把旧页面的数据清理,但这样会留下空白页面;另一方面,表这些数据页面是存放在文件中的,虽然旧页面的数据被清理了,但表文件的长度仍然是包含旧页面空间,表的空间就出现的膨胀,久而久之,这种膨胀可能会越来越严重。
要想将膨胀的空间收回,必须把整个表重建;而重建表需要对表加排他锁,从而会影响业务系统的运行。
发明内容
本申请提供一种数据库更新的方法,以改善现有数据库多版本并发控制的表膨胀问题。本申请另外提供一种数据库更新的装置。
本申请提供的一种数据库更新的方法,包括:
基于对数据库的更新操作,在更新操作所对应的原始数据空间的末尾创建新增数据空间;
将所述原始数据空间中的数据复制到新增数据空间;
在所述原始数据空间中记录更新数据。
此外,本申请还提供一种数据库更新的方法,其包括:
基于对数据库的更新操作,将所述更新操作所对应的原始数据空间中的数据复制到数据库其它数据空间;
在所述原始数据空间中记录更新数据。
此外,本申请还提供一种用于数据库更新的装置,其包括:
创建单元,用于基于对数据库的更新操作,在更新操作所对应的原始数据空间的末尾创建新增数据空间;
复制单元,用于将所述原始数据空间中的数据复制到新增数据空间;
更新执行单元,用于在所述原始数据空间中记录更新数据。
此外,本申请还提供一种用于数据块更新的装置,其包括:
复制单元,用于基于对数据库的更新操作,将所述更新操作所对应的原始数据空间中的数据复制到数据库其它数据空间;
更新执行单元,在所述原始数据空间中记录更新数据。
此外,本申请还提供一种服务器,其包括存储器和处理器,其中,所述存储器存储处理器可执行指令,所述处理器用于执行所述储处理器可执行指令:
基于对数据库的更新操作,在更新操作所对应的原始数据空间的末尾创建新增数据空间;
将所述原始数据空间中的数据复制到新增数据空间;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711275922.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据仓管技术的商务智能系统的设计
- 下一篇:一种复盘业务的方法和装置