CN110147349A - 一种文件数据库管理方法 - Google Patents
一种文件数据库管理方法 Download PDFInfo
- Publication number
- CN110147349A CN110147349A CN201910276417.3A CN201910276417A CN110147349A CN 110147349 A CN110147349 A CN 110147349A CN 201910276417 A CN201910276417 A CN 201910276417A CN 110147349 A CN110147349 A CN 110147349A
- Authority
- CN
- China
- Prior art keywords
- data
- deletion
- row
- state
- document data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种文件数据库管理方法,包括数据的删除和数据的插入,文件数据库的文件头记录数据库中状态为“删除”的行的总行数;进行数据的删除时,首先将要删除的数据所在行的状态从“正常”改为“删除”,并更新文件数据库文件头的“已删除”的总行数;进行数据的插入时,若判断目前数据库没有状态为“删除”的数据,那么在数据库末尾增加一行,将需插入的数据放入此行;如果已经存在状态为“删除”的数据,将需插入的数据覆盖第一行状态为“删除”的行,并将该行数据的状态从“删除”改为“正常”,同时更新数据库的文件头状态为“删除”的行的数量。此种方法可优化数据库存储空间,提高数据库操作效率。
Description
技术领域
本发明涉及一种文件数据库管理方法,能够优化文件数据库存储性能。
背景技术
文件数据库又叫嵌入式数据库,是将整个数据库的内容保存在单个索引文件中,以便于数据库的发布。文件数据库对于小型数据的存储有着很多的优点,比如免安装、支持跨平台、数据量不太大时速度快等优点。
很多企业或研究机构,会自主开发文件数据库系统,具体是定义一张表结构,把每条数据按表结构的格式以二进制形式写入文件,数据库存储着一条或多条数据,每条数据的长度都是表结构的结构体长度,就形成了一个简单的文件数据库。
文件数据库的基本操作有增、删、改、查,本发明对文件数据库性能的优化主要体现在优化增、删的操作。
目前对文件数据库插入数据的做法,都是在文件数据库的末尾,按数据库表结构的格式增加一行数据。
删除文件数据库数据的操作,如果把要删除的行从文件数据库删除,需要重写整个数据库文件,把被删除的行后面的数据往前移,这样对于数据库性能是非常差的,因为假设数据库文件大小为10MB,如果删除数据库的第一条数据,要把这10MB的内容重新写入文件。所以目前都是采用假删除的技术来实现文件数据库的数据删除,所谓假删除就是对要删除的行记录一个标志,标志该行的状态为“删除”,以此提高数据库操作性能。
现有对文件数据库插入数据和删除数据的方法有很明显的缺陷:
(1)把要删除的行从文件数据库删除,那就需要重写整个文件数据库,把被删除的行后面的数据往前移,每次删除一条数据都要重新写入整个文件数据库,效率非常低下;
(2)在文件数据库末尾追加一条新数据,删除数据的方式为是对要删除的行记录一个标志,标志该行的状态为“删除”,实际上该条数据还是存在于文件数据库中,在多次删除数据后,数据库状态为“删除”的数据越来越多,会导致文件数据库越来越庞大,影响数据库的读写性能。
发明内容
本发明的目的,在于提供一种文件数据库管理方法,其可优化数据库存储空间,提高数据库操作效率。
为了达成上述目的,本发明的解决方案是:
一种文件数据库管理方法,为文件数据库中各行数据设置状态位,包含“正常”和“删除”,且文件数据库的文件头记录数据库中状态为“删除”的行的总行数;所述管理方法包括数据的删除和数据的插入,通过对状态位的修改,实现数据的删除和插入。
上述数据的删除包括如下步骤:
步骤a1,在文件数据库中找到要删除的数据,将该行数据的状态从“正常”改为“删除”;
步骤a2,相应的,更新文件数据库文件头的“已删除”的总行数。
上述数据的插入包括如下步骤:判断文件数据库中是否有状态为“删除”的数据,如果没有,那么在数据库末尾增加一行,将需插入的数据放入此行;如果已经存在状态为“删除”的数据,将需插入的数据覆盖第一行状态为“删除”的行,并将该行数据的状态从“删除”改为“正常”,同时更新数据库的文件头状态为“删除”的行的数量。
其中,判断文件数据库中是否有状态为“删除”的数据的方法是,根据文件数据库记录的状态为“删除”的行的总行数来判断。
采用上述方案后,本发明具有如下改进:
(1)为了解决每次删除文件数据库的一条数据都要重新写入整个数据库文件,效率非常低下的问题,本发明把删除数据库方式改为标记数据状态为“删除”,这样,删除文件数据库的数据不需要重新写入整个数据库文件,只需要把要删除的行的状态改为“删除”;
(2)为了解决现有数据库操作方式是插入数据都要在文件数据库末尾追加一条新数据,删除数据的是对要删除的行记录一个标志,标志该行的状态为“删除”,本发明把插入数据的方式改为覆盖到状态为“删除”的数据;
(3)由于目前文件数据库频繁删除和插入数据导致数据库文件越来越庞大,影响数据库的读写性能,本发明通过将插入数据到文件数据库的方式设为优先查找状态为“删除”的数据的位置,并覆盖写到该位置,假设表A一行数据的长度是1kb,往表A执行1024次插入一条数据再删除该数据,现有方式的文件数据库大小=1kb*1024次=1mb,而采用本发明,文件数据库大小=1kb;
(4)本发明能够优化数据库存储空间,提高数据库操作效率,只要对业务系统升级新数据库组件,就能达到优化数据库执行效率的目的,不影响原有的业务数据。
附图说明
图1是本发明中删除数据的流程图;
图2是本发明中插入数据的流程图。
具体实施方式
以下将结合附图,对本发明的技术方案进行详细说明。
本发明提供一种文件数据库管理方法,包括数据的删除和数据的插入,文件数据库的文件头记录数据库中状态为“删除”的行的总行数;如图1所示,是数据的删除的流程图,包括如下步骤:
步骤a1,在文件数据库中找到要删除的数据,将该行数据的状态从“正常”改为“删除”;
步骤a2,相应的,更新文件数据库文件头的“已删除”的总行数。
如图2所示,是数据的插入流程图,包括如下步骤:
步骤b1,根据文件数据库记录的状态为“删除”的行的总行数,判断目前数据库是否有状态为“删除”的数据,如果没有,那么在数据库末尾增加一行,将需插入的数据放入此行;如果已经存在状态为“删除”的数据,那么将需插入的数据覆盖第一行状态为“删除”的行,并将该行数据的状态从“删除”改为“正常”,同时更新数据库的文件头状态为“删除”的行的数量。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
Claims (4)
1.一种文件数据库管理方法,其特征在于:为文件数据库中各行数据设置状态位,包含“正常”和“删除”,且文件数据库的文件头记录数据库中状态为“删除”的行的总行数;所述管理方法包括数据的删除和数据的插入,通过对状态位的修改,实现数据的删除和插入。
2.如权利要求1所述的一种文件数据库管理方法,其特征在于:所述数据的删除包括如下步骤:
步骤a1,在文件数据库中找到要删除的数据,将该行数据的状态从“正常”改为“删除”;
步骤a2,相应的,更新文件数据库文件头的“已删除”的总行数。
3.如权利要求1所述的一种文件数据库管理方法,其特征在于:所述数据的插入包括如下步骤:判断文件数据库中是否有状态为“删除”的数据,如果没有,那么在数据库末尾增加一行,将需插入的数据放入此行;如果已经存在状态为“删除”的数据,将需插入的数据覆盖第一行状态为“删除”的行,并将该行数据的状态从“删除”改为“正常”,同时更新数据库的文件头状态为“删除”的行的数量。
4.如权利要求3所述的一种文件数据库管理方法,其特征在于:判断文件数据库中是否有状态为“删除”的数据的方法是,根据文件数据库记录的状态为“删除”的行的总行数来判断。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910276417.3A CN110147349A (zh) | 2019-04-08 | 2019-04-08 | 一种文件数据库管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910276417.3A CN110147349A (zh) | 2019-04-08 | 2019-04-08 | 一种文件数据库管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110147349A true CN110147349A (zh) | 2019-08-20 |
Family
ID=67589376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910276417.3A Pending CN110147349A (zh) | 2019-04-08 | 2019-04-08 | 一种文件数据库管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110147349A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0614150A2 (en) * | 1993-03-04 | 1994-09-07 | Mitsubishi Denki Kabushiki Kaisha | Backup, restoration, migration systems of a database |
CN103425663A (zh) * | 2012-05-16 | 2013-12-04 | 中兴通讯股份有限公司 | 嵌入式系统数据库创建表、存记录、删记录的方法和装置 |
CN107066588A (zh) * | 2017-04-17 | 2017-08-18 | 星环信息科技(上海)有限公司 | 一种数据库及相应的方法与设备 |
-
2019
- 2019-04-08 CN CN201910276417.3A patent/CN110147349A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0614150A2 (en) * | 1993-03-04 | 1994-09-07 | Mitsubishi Denki Kabushiki Kaisha | Backup, restoration, migration systems of a database |
CN103425663A (zh) * | 2012-05-16 | 2013-12-04 | 中兴通讯股份有限公司 | 嵌入式系统数据库创建表、存记录、删记录的方法和装置 |
CN107066588A (zh) * | 2017-04-17 | 2017-08-18 | 星环信息科技(上海)有限公司 | 一种数据库及相应的方法与设备 |
Non-Patent Citations (1)
Title |
---|
灵颖桥人: "数据库数据物理删除和逻辑删除", 《HTTP://BLOG.CSDN.NET/QQ_22076345/ARTICLE/DETAILS/83661905》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8782368B2 (en) | Storing chunks in containers | |
CN105224237A (zh) | 一种数据存储方法及装置 | |
CN103246696A (zh) | 高并发数据库的访问方法及应用于多服务器系统的方法 | |
CN104731886B (zh) | 一种海量小文件的处理方法及系统 | |
CN107239569A (zh) | 一种分布式文件系统子树存储方法及装置 | |
CN100507919C (zh) | 一种fat文件系统及其处理方法 | |
CN109558335B (zh) | 一种基于Nor Flash存储器的嵌入式系统的文件存储格式 | |
CN104657366A (zh) | 海量日志写入数据库的方法、装置和日志容灾系统 | |
US20060271567A1 (en) | System and method for user edit merging with preservation of unrepresented data | |
CN106528026B (zh) | 文本显示方法及装置 | |
CN107729504A (zh) | 一种处理大数据对象的方法及系统 | |
CN109684292A (zh) | 一种闪存数据库快速进行数据恢复的方法 | |
CN103345501A (zh) | 数据库更新方法和装置 | |
CN105260139B (zh) | 一种磁盘管理方法以及系统 | |
CN103713926A (zh) | 一种预更新软件客户端的方法及系统 | |
CN105573673A (zh) | 一种基于数据库的数据缓存系统 | |
CN107273449A (zh) | 一种基于内存数据库的断点处理方法及系统 | |
CN1963810A (zh) | 在Flash存储介质上的关于文件分配表的缓存实现方法 | |
CN102799583B (zh) | 一种面向对象的存取方法及系统 | |
CN101986302B (zh) | 媒体文件关联方法和设备 | |
CN103544097A (zh) | 嵌入式系统的日志存储方法、系统及日志读取方法和系统 | |
CN103116652B (zh) | 一种基于拉链信息的索引存储管理方法 | |
CN102737171B (zh) | 一种病毒文件存储的方法、装置及存储设备 | |
CN105630406B (zh) | 利用mram作为编辑缓存区的存储系统及编辑缓存方法 | |
CN110288340B (zh) | 一种基于Java智能合约的数据集合存储方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190820 |