CN106503260B - 一种提高数据库的有效存储空间的方法和装置 - Google Patents

一种提高数据库的有效存储空间的方法和装置 Download PDF

Info

Publication number
CN106503260B
CN106503260B CN201611028781.0A CN201611028781A CN106503260B CN 106503260 B CN106503260 B CN 106503260B CN 201611028781 A CN201611028781 A CN 201611028781A CN 106503260 B CN106503260 B CN 106503260B
Authority
CN
China
Prior art keywords
data
data table
database
volume
storage space
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.)
Active
Application number
CN201611028781.0A
Other languages
English (en)
Other versions
CN106503260A (zh
Inventor
任娜
杨挺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201611028781.0A priority Critical patent/CN106503260B/zh
Publication of CN106503260A publication Critical patent/CN106503260A/zh
Application granted granted Critical
Publication of CN106503260B publication Critical patent/CN106503260B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种提高数据库的有效存储空间的方法和装置。该方法包括:选定数据库中的一个或多个数据表;对于一个或多个数据表中的每个数据表:获取该数据表的整体文件数据量,以及获取该数据表中的实际有效数据的数据量;根据该数据表的整体文件数据量和实际有效数据的数据量确定是否需要对该数据表进行处理;如果确定需要对该数据表进行处理,则对该数据表中的无效数据的存储空间进行回收。本发明通过清理无效数据的存储空间的方式,释放磁盘空间的浪费空间,有效防止因无效数据的占用而造成的磁盘空间的浪费。

Description

一种提高数据库的有效存储空间的方法和装置
技术领域
本发明涉及计算机技术领域,具体涉及一种提高数据库的有效存储空间的方法和装置。
背景技术
数据库是按照数据结构来组织、存储和管理数据的仓库。业务端将数据存入相应的数据库,以便进行有效的存储和管理,如果某数据已经不再被需要,就会从数据库中将相应的数据删除。但是,在实际操作中,删除数据库中的数据只是在数据库中进行相应数据的标记位层面上的删除,并不是真正的将数据本身删除,例如,有效数据的标记位为“0”,该数据仍然可以被查询或获取到;被删除后的无效数据的标记位为“1”,该数据就无法被查询或获取到,但是该数据仍然存在数据库中,除非有新的数据将其覆盖掉。这样,被删除的数据仍会占用数据库的磁盘空间,造成磁盘空间的浪费。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种提高数据库的有效存储空间的方法和相应的装置。
依据本发明的一个方面,提供了一种提高数据库的有效存储空间的方法,包括:
选定数据库中的一个或多个数据表;
对于所述一个或多个数据表中的每个数据表:
获取该数据表的整体文件数据量,以及获取该数据表中的实际有效数据的数据量;
根据该数据表的整体文件数据量和实际有效数据的数据量确定是否需要对该数据表进行处理;
如果确定需要对该数据表进行处理,则对该数据表中的无效数据的存储空间进行回收。
可选地,所述选定数据库中的一个或多个数据表包括:
选定数据库中的整体文件数据量大于第一预设值的数据表。
可选地,所述获取该数据表的整体文件数据量包括:
获取该数据表中的索引文件大小和数据文件大小,以及获取该数据表中的分区数据的数据量大小;
取三者之和作为该数据表的整体文件数据量。
可选地,所述获取该数据表中的实际有效数据的数据量包括:
从该数据库的信息计划表中获取该数据库中的有效数据长度值和有效索引长度值,以两者之和作为该数据表中的实际有效数据的数据量。
可选地,所述根据该数据表的整体文件数据量和实际有效数据的数据量确定是否需要对该数据表进行处理包括:
计算该数据表的整体文件数据量和实际有效数据的数据量的差值;
计算所述差值占该数据表的整体文件数据量的比例值;
当所述比例值大于第二预设值时,确定需要对该数据表进行处理。
可选地,所述对该数据表中的无效数据的存储空间进行回收包括:
采用改表的方式将该数据表中的数据进行重排,以回收该数据表中的无效数据的存储空间;
或者,
利用数据库自身的回收命令,对该数据表中的无效数据的存储空间进行回收。
可选地,在对该数据表中的无效数据的存储空间进行回收之前,该方法进一步包括:
对该数据库的访问量分布进行统计;
如果该数据库存在访问量低于第三预设值的时间段,则在该时间段登录数据库,利用数据库自身的回收命令,对该数据表中的无效数据的存储空间进行回收;
如果该数据库不存在访问量低于第三预设值的时间段,则采用改表的方式将该数据表中的数据进行重排。。
根据本发明的另一方面,提供了一种提高数据库的有效存储空间的装置,其中,该装置包括:
选定单元,适于选定数据库中的一个或多个数据表;
对于所述一个或多个数据表中的每个数据表:
数据量获取单元,适于获取该数据表的整体文件数据量,以及获取该数据表中的实际有效数据的数据量;
处理确定单元,适于根据该数据表的整体文件数据量和实际有效数据的数据量确定是否需要对该数据表进行处理;
处理执行单元,适于如果确定需要对该数据表进行处理,则对该数据表中的无效数据的存储空间进行回收。
可选地,所述选定单元,适于选定数据库中的整体文件数据量大于第一预设值的数据表。
可选地,所述数据量获取单元,适于获取该数据表中的索引文件大小和数据文件大小,以及获取该数据表中的分区数据的数据量大小;取三者之和作为该数据表的整体文件数据量。
可选地,所述数据量获取单元,适于从该数据库的信息计划表中获取该数据库中的有效数据长度值和有效索引长度值,以两者之和作为该数据表中的实际有效数据的数据量。
可选地,所述处理确定单元,适于计算该数据表的整体文件数据量和实际有效数据的数据量的差值;计算所述差值占该数据表的整体文件数据量的比例值;
当所述比例值大于第二预设值时,确定需要对该数据表进行处理。
可选地,所述处理执行单元,适于采用改表的方式将该数据表中的数据进行重排,以回收该数据表中的无效数据的存储空间;或者,适于利用数据库自身的回收命令,对该数据表中的无效数据的存储空间进行回收。
可选地,所述处理执行单元,进一步适于对该数据库的访问量分布进行统计;如果该数据库存在访问量低于第三预设值的时间段,则在该时间段登录数据库,利用数据库自身的回收命令,对该数据表中的无效数据的存储空间进行回收;如果该数据库不存在访问量低于第三预设值的时间段,则采用改表的方式将该数据表中的数据进行重排。
根据本发明的技术方案,首先判断数据表是否需要清理无效数据,选定数据库中的一个或者多个数据表,并获取该数据表的整体文件的数据量,以及该数据表的实际有效数据量,通过该数据表的整体文件数据量和实际有效数据的数据量确定是否需要对该数据表进行处理,如果数据表中的无效数据量过大,就确定需要对该数据表进行处理,为了清理无效数据占用的磁盘空间,对该数据表中的无效数据的存储空间进行回收。综上所述,本发明通过清理无效数据的存储空间的方式,释放磁盘空间的浪费空间,有效防止因无效数据的占用而造成的磁盘空间的浪费。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种提高数据库的有效存储空间的方法的流程示意图;
图2示出了根据本发明一个实施例的一种提高数据库的有效存储空间的装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种提高数据库的有效存储空间的方法的流程示意图。如图1所示,该方法包括:
步骤S110,选定数据库中的一个或多个数据表。
对于一个或多个数据表中的每个数据表,执行如下的步骤S120-S140。
步骤S120,获取该数据表的整体文件数据量,以及获取该数据表中的实际有效数据的数据量。
因为数据库删除属于标记位删除,并没有真正删除数据、释放空间,且被删除的数据属于无效数据,数据表中的整体文件的数据量就包括有效数据和无效数据。为了确定该数据表是否需要进行无效数据的清理,提高数据表的有效存储空间,需要获取该数据表的整体稳健数据量和实际有效数据的数据量,以获得该数据表中的无效数据的数据量。
在本发明的一个实施例中,可以通过“information_schema.tables”获取数据表,通过读的方式获取该数据表的文件数据量以及通过“(truncate(DATA_LENGTH/1024+INDEX_LENGTH/1024,0))”、“TABLE_ROWS”获取数据表的实际数据量。
步骤S130,根据该数据表的整体文件数据量和实际有效数据的数据量确定是否需要对该数据表进行处理。
根据该数据表的整体文件数据量和实际有效数据的数据量可以获得无效数据的数据量,根据无效数据量的大小或者占用的比例进行判断该数据表是否需要处理。
步骤S140,如果确定需要对该数据表进行处理,则对该数据表中的无效数据的存储空间进行回收。
如果无效数据量的大小或者占用的比例已经超过阈值,就确定该数据表需要处理,进而对该数据表中的无效数据的存储空间进行回收。
可见,本方法通过清理无效数据的存储空间的方式,释放磁盘空间的浪费空间,有效防止因无效数据的占用而造成的磁盘空间的浪费。
数据表的存储空间一定,但是已经存储的数据量不一定都很大,对于存储量较小的数据表来说,可以不需要进行无效数据的存储空间的回收,就能满足新数据的存储需求。但是对于数据表中本身的数据量就很大的情况下,如果不及时处理,就可能引起数据写不进去的后果。所以,在本发明的一个实施例中,选定数据库中的一个或多个数据表包括:选定数据库中的整体文件数据量大于第一预设值的数据表。这里的第一预设值可以根据数据表自身的属性进行设定,例如,数据表总共可以容纳1千万条数据,那么就可以设定第一预设值为7百万条,当超过7百万条数据的时候,为了提高数据表的有效存储空间,就对该数据表进行处理。
在本发明的一个实施例中,步骤S120中的获取该数据表的整体文件数据量包括:获取该数据表中的索引文件大小和数据文件大小,以及获取该数据表中的分区数据的数据量大小;取三者之和作为该数据表的整体文件数据量。
数据表中的整体文件应该包含所有占用数据表磁盘空间的所有文件,包括:数据表中的数据文件,索引文件。还需要指出的是,还包括数据表中的分区表数据。为了满足大数据库的管理,需要创建和使用分区表和分区索引,分区表允许将数据分成为分区甚至子分区,即将数据分成块,以便对大量数据的进行更好的管理,这里的每个分区可以单独管理,可以不依赖其他分区而单独发挥作用,因此可以提供更具有可用性的结构。可见,分区表也占用数据表的磁盘空间,也会包含无效数据,在进行数据表的整体文件数据量的获取时,也需要获取数据表中的分区表的数据量。将上述的数据文件、索引文件和分区文件的总和作为该数据表的整体文件数据量。
在本发明的一个实施例中,步骤S130中的获取该数据表中的实际有效数据的数据量包括:从该数据库的信息计划表中获取该数据库中的有效数据长度值和有效索引长度值,以两者之和作为该数据表中的实际有效数据的数据量。
数据表中的有效数据信息会保存在信息计划表中,在获取实际数据的数据量时,通过信息计划表分别获取数据库中有效数据长度值和有效索引长度值,其总和作为该数据表中的实际有效数据的数据量。
在本发明的一个实施例中,步骤S130中根据该数据表的整体文件数据量和实际有效数据的数据量确定是否需要对该数据表进行处理包括:计算该数据表的整体文件数据量和实际有效数据的数据量的差值,获得无效数据量的大小;计算差值占该数据表的整体文件数据量的比例值,获得无效数据量所占的比例;当比例值大于第二预设值时,确定需要对该数据表进行处理,否则不进行处理。这里的第二预设值可根据数据库自身的属性进行设定,例如,数据表的数据量大小为100G,当无效数据所占的比例大于10%时,对数据表进行处理。
在本发明的一个实施例中,对该数据表中的无效数据的存储空间进行回收包括两种方式:
(1)采用改表的方式将该数据表中的数据进行重排,以回收该数据表中的无效数据的存储空间。因为已经删除的无效数据分布在数据表中的不同位置,而且它会一直存在,除非有新的数据写入将该无效数据覆盖,但是对于顺序写入的新数据,需要一定量的空间,某个无效数据无法提供这个大的空间,那么该无效数据就不会被覆盖,顺序写入的新数据会继续写道数据表下面未被占用的新的空间。这样就会使无效数据无法被覆盖,一直占用数据表的磁盘空间,造成资源浪费。所以,本实施例中,可以对数据表中的数据进行重排,即改表处理,将有效数据按顺序排列,置于数据表前面的位置,无效数据就会置于数据表下面的位置,易于被新写入的数据覆盖。例如,数据表未进行处理前的数据排列是date 1、date2、date3、date4、date5,这里date3是无效数据,那么改表后,变成date 1、date2、date4、date5、date3。需要说明的是,在进行改表操作的时候可以直接调用PT工具,且改表进行过程中不会进行锁表,依然可以对数据表进行写入、查询等正常操作。
(2)利用数据库自身的回收命令,对该数据表中的无效数据的存储空间进行回收。回收命令属于数据库自己的处理方式,只需要调用回收的脚本即可。虽然这种方式的速度较快,但是这种方式会进行锁表,数据库无法进行正常的写入、查询等操作。所以,在数据库量小、访问量较小的请情况下可以进行该方法的处理。
在本发明的一个实施例中,步骤S140中的在对该数据表中的无效数据的存储空间进行回收之前,图1所示的方法进一步包括:对该数据库的访问量分布进行统计;如果该数据库存在访问量低于第三预设值的时间段,则在该时间段登录数据库,利用数据库自身的回收命令,对该数据表中的无效数据的存储空间进行回收;如果该数据库不存在访问量低于第三预设值的时间段,则采用改表的方式将该数据表中的数据进行重排。
虽然已经知道某一个数据表需要进行回收处理了,但是为了不影响数据库的正常业务,可以对数据库的访问时间分布进行统计,在访问量低于第三预设值的时候进行数据库自己的回收处理,这个时候需要锁表;如果该数据表的访问量一直很大,那么就不能采用锁表回收的方式,则通过对数据库进行改表的方式将该数据表中的数据进行重排。该第三预设值可以根据实际情况设定。
图2示出了根据本发明一个实施例的一种提高数据库的有效存储空间的装置的结构示意图。如图2所示,该提高数据库的有效存储空间的装置包括:
选定单元210,适于选定数据库中的一个或多个数据表.
对于一个或多个数据表中的每个数据表:
数据量获取单元220,适于获取该数据表的整体文件数据量,以及获取该数据表中的实际有效数据的数据量。
因为数据表中被删除的数据仍存在,且被删除的数据属于无效数据,数据表中的整体文件的数据量就包括有效数据和无效数据。为了确定该数据表是否需要进行无效数据的清理,提高数据表的有效存储空间,需要获取该数据表的整体稳健数据量和实际有效数据的数据量,以获得该数据表中的无效数据的数据量。
在本发明的一个实施例中,可以通过“information_schema.tables”获取数据表,通过读的方式获取该数据表的文件数据量以及通过“(truncate(DATA_LENGTH/1024+INDEX_LENGTH/1024,0))”、“TABLE_ROWS”获取数据表的实际数据量。
处理确定单元230,适于根据该数据表的整体文件数据量和实际有效数据的数据量确定是否需要对该数据表进行处理。
根据该数据表的整体文件数据量和实际有效数据的数据量可以获得无效数据的数据量,根据无效数据量的大小或者占用的比例进行判断该数据表是否需要处理。
处理执行单元240,适于如果确定需要对该数据表进行处理,则对该数据表中的无效数据的存储空间进行回收。
如果无效数据量的大小或者占用的比例已经超过阈值,就确定该数据表需要处理,进而对该数据表中的无效数据的存储空间进行回收。
可见,本装置通过清理无效数据的存储空间的方式,释放磁盘空间的浪费空间,有效防止因无效数据的占用而造成的磁盘空间的浪费。
数据表的存储空间一定,但是已经存储的数据量不一定都很大,对于存储量较小的数据表来说,可以不需要进行无效数据的存储空间的回收,就能满足新数据的存储需求。但是对于数据表中本身的数据量就很大的情况下,如果不及时处理,就可能引起数据写不进去的后果。所以,在本发明的一个实施例中,选定单元210,适于选定数据库中的整体文件数据量大于第一预设值的数据表。这里的第一预设值可以根据数据表自身的属性进行设定,例如,数据表总共可以容纳1千万条数据,那么就可以设定第一预设值为7百万条,当超过7百万条数据的时候,为了提高数据表的有效存储空间,就对该数据表进行处理。
在本发明的一个实施例中,数据量获取单元220,适于获取该数据表中的索引文件大小和数据文件大小,以及获取该数据表中的分区数据的数据量大小;取三者之和作为该数据表的整体文件数据量。
数据表中的整体文件应该包含所有占用数据表磁盘空间的所有文件,包括:数据表中的数据文件,索引文件。还需要指出的是,还包括数据表中的分区表数据。为了满足大数据库的管理,需要创建和使用分区表和分区索引,分区表允许将数据分成为分区甚至子分区,即将数据分成块,以便对大量数据的进行更好的管理,这里的每个分区可以单独管理,可以不依赖其他分区而单独发挥作用,因此可以提供更具有可用性的结构。可见,分区表也占用数据表的磁盘空间,也会包含无效数据,在进行数据表的整体文件数据量的获取时,也需要获取数据表中的分区表的数据量。将上述的数据文件、索引文件和分区文件的总和作为该数据表的整体文件数据量。
在本发明的一个实施例中,数据量获取单元220,适于从该数据库的信息计划表中获取该数据库中的有效数据长度值和有效索引长度值,以两者之和作为该数据表中的实际有效数据的数据量。
数据表中的有效数据信息会保存在信息计划表中,在获取实际数据的数据量时,通过信息计划表分别获取数据库中有效数据长度值和有效索引长度值,其总和作为该数据表中的实际有效数据的数据量。
在本发明的一个实施例中,处理确定单元230,适于计算该数据表的整体文件数据量和实际有效数据的数据量的差值,获得无效数据量的大小;计算差值占该数据表的整体文件数据量的比例值,获得无效数据量所占的比例;当比例值大于第二预设值时,确定需要对该数据表进行处理,否则不进行处理。这里的第二预设值可根据数据库自身的属性进行设定,例如,数据表的数据量大小为100G,当无效数据所占的比例大于10%时,对数据表进行处理。
在本发明的一个实施例中,处理执行单元240适于:
(1)采用改表的方式将该数据表中的数据进行重排,以回收该数据表中的无效数据的存储空间。因为已经删除的无效数据分布在数据表中的不同位置,而且它会一直存在,除非有新的数据写入将该无效数据覆盖,但是对于顺序写入的新数据,需要一定量的空间,某个无效数据无法提供这个大的空间,那么该无效数据就不会被覆盖,顺序写入的新数据会继续写道数据表下面未被占用的新的空间。这样就会使无效数据无法被覆盖,一直占用数据表的磁盘空间,造成资源浪费。所以,本实施例中,可以对数据表中的数据进行重排,即改表处理,将有效数据按顺序排列,置于数据表前面的位置,无效数据就会置于数据表下面的位置,易于被新写入的数据覆盖。例如,数据表未进行处理前的数据排列是date 1、date2、date3、date4、date5,这里date3是无效数据,那么改表后,变成date 1、date2、date4、date5、date3。需要说明的是,在进行改表操作的时候可以直接调用PT工具,且改表进行过程中不会进行锁表,依然可以对数据表进行写入、查询等正常操作。
(2)适于利用数据库自身的回收命令,对该数据表中的无效数据的存储空间进行回收。回收命令属于数据库自己的处理方式,只需要调用回收的脚本即可。虽然这种方式的速度较快,但是这种方式会进行锁表,数据库无法进行正常的写入、查询等操作。所以,在数据库量小、访问量较小的请情况下可以进行该方法的处理。
在本发明的一个实施例中,处理执行单元240,进一步适于对该数据库的访问量分布进行统计;如果该数据库存在访问量低于第三预设值的时间段,则在该时间段登录数据库,利用数据库自身的回收命令,对该数据表中的无效数据的存储空间进行回收;如果该数据库不存在访问量低于第三预设值的时间段,则采用改表的方式将该数据表中的数据进行重排。
虽然已经知道某一个数据表需要进行回收处理了,但是为了不影响数据库的正常业务,可以对数据库的访问时间分布进行统计,在访问量低于第三预设值的时候进行数据库自己的回收处理,这个时候需要锁表;如果该数据表的访问量一直很大,那么就不能采用锁表回收的方式,则通过对数据库进行改表的方式将该数据表中的数据进行重排。该第三预设值可以根据实际情况设定。
根据本发明的技术方案,首先判断数据表是否需要清理无效数据,选定数据库中的一个或者多个数据表,并获取该数据表的整体文件的数据量,以及该数据表的实际有效数据量,通过该数据表的整体文件数据量和实际有效数据的数据量确定是否需要对该数据表进行处理,如果数据表中的无效数据量过大,就确定需要对该数据表进行处理,为了清理无效数据占用的磁盘空间,对该数据表中的无效数据的存储空间进行回收。综上所述,本发明通过清理无效数据的存储空间的方式,释放磁盘空间的浪费空间,有效防止因无效数据的占用而造成的磁盘空间的浪费。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的提高数据库的有效存储空间的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种提高数据库的有效存储空间的方法,包括:
选定数据库中的一个或多个数据表;
对于所述一个或多个数据表中的每个数据表:
获取该数据表的整体文件数据量,以及获取该数据表中的实际有效数据的数据量;
根据该数据表的整体文件数据量和实际有效数据的数据量确定是否需要对该数据表进行处理;
如果确定需要对该数据表进行处理,则对该数据表中的无效数据的存储空间进行回收;
所述选定数据库中的一个或多个数据表包括:
选定数据库中的整体文件数据量大于第一预设值的数据表;
所述获取该数据表的整体文件数据量包括:
获取该数据表中的索引文件大小和数据文件大小,以及获取该数据表中的分区数据的数据量大小;
取三者之和作为该数据表的整体文件数据量。
2.如权利要求1所述的方法,其中,所述获取该数据表中的实际有效数据的数据量包括:
从该数据库的信息计划表中获取该数据库中的有效数据长度值和有效索引长度值,以两者之和作为该数据表中的实际有效数据的数据量。
3.如权利要求1所述的方法,其中,所述根据该数据表的整体文件数据量和实际有效数据的数据量确定是否需要对该数据表进行处理包括:
计算该数据表的整体文件数据量和实际有效数据的数据量的差值;
计算所述差值占该数据表的整体文件数据量的比例值;
当所述比例值大于第二预设值时,确定需要对该数据表进行处理。
4.如权利要求1-3中任一项所述的方法,其中,所述对该数据表中的无效数据的存储空间进行回收包括:
采用改表的方式将该数据表中的数据进行重排,以回收该数据表中的无效数据的存储空间;
或者,
利用数据库自身的回收命令,对该数据表中的无效数据的存储空间进行回收。
5.如权利要求4所述的方法,其中,在对该数据表中的无效数据的存储空间进行回收之前,该方法进一步包括:
对该数据库的访问量分布进行统计;
如果该数据库存在访问量低于第三预设值的时间段,则在该时间段登录数据库,利用数据库自身的回收命令,对该数据表中的无效数据的存储空间进行回收;
如果该数据库不存在访问量低于第三预设值的时间段,则采用改表的方式将该数据表中的数据进行重排。
6.一种提高数据库的有效存储空间的装置,其中,该装置包括:
选定单元,适于选定数据库中的一个或多个数据表;
对于所述一个或多个数据表中的每个数据表:
数据量获取单元,适于获取该数据表的整体文件数据量,以及获取该数据表中的实际有效数据的数据量;
处理确定单元,适于根据该数据表的整体文件数据量和实际有效数据的数据量确定是否需要对该数据表进行处理;
处理执行单元,适于如果确定需要对该数据表进行处理,则对该数据表中的无效数据的存储空间进行回收;
所述选定单元,适于选定数据库中的整体文件数据量大于第一预设值的数据表;
所述数据量获取单元,适于获取该数据表中的索引文件大小和数据文件大小,以及获取该数据表中的分区数据的数据量大小;取三者之和作为该数据表的整体文件数据量。
7.如权利要求6所述的装置,其中,
所述数据量获取单元,适于从该数据库的信息计划表中获取该数据库中的有效数据长度值和有效索引长度值,以两者之和作为该数据表中的实际有效数据的数据量。
8.如权利要求6所述的装置,其中,
所述处理确定单元,适于计算该数据表的整体文件数据量和实际有效数据的数据量的差值;计算所述差值占该数据表的整体文件数据量的比例值;当所述比例值大于第二预设值时,确定需要对该数据表进行处理。
9.如权利要求6-8中任一项所述的装置,其中,
所述处理执行单元,适于采用改表的方式将该数据表中的数据进行重排,以回收该数据表中的无效数据的存储空间;或者,适于利用数据库自身的回收命令,对该数据表中的无效数据的存储空间进行回收。
10.如权利要求9所述的装置,其中,
所述处理执行单元,进一步适于对该数据库的访问量分布进行统计;如果该数据库存在访问量低于第三预设值的时间段,则在该时间段登录数据库,利用数据库自身的回收命令,对该数据表中的无效数据的存储空间进行回收;如果该数据库不存在访问量低于第三预设值的时间段,则采用改表的方式将该数据表中的数据进行重排。
CN201611028781.0A 2016-11-18 2016-11-18 一种提高数据库的有效存储空间的方法和装置 Active CN106503260B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611028781.0A CN106503260B (zh) 2016-11-18 2016-11-18 一种提高数据库的有效存储空间的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611028781.0A CN106503260B (zh) 2016-11-18 2016-11-18 一种提高数据库的有效存储空间的方法和装置

Publications (2)

Publication Number Publication Date
CN106503260A CN106503260A (zh) 2017-03-15
CN106503260B true CN106503260B (zh) 2020-04-28

Family

ID=58327444

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611028781.0A Active CN106503260B (zh) 2016-11-18 2016-11-18 一种提高数据库的有效存储空间的方法和装置

Country Status (1)

Country Link
CN (1) CN106503260B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107391327A (zh) * 2017-06-30 2017-11-24 郑州云海信息技术有限公司 一种存储设备的性能测试方法、装置及服务器
CN107315840A (zh) * 2017-07-20 2017-11-03 郑州云海信息技术有限公司 数据库中存储空间的管理方法和装置
CN112181938B (zh) * 2019-07-05 2024-06-14 杭州海康威视数字技术股份有限公司 数据库清理方法、装置和计算机可读存储介质
CN114706797B (zh) * 2022-06-08 2022-09-16 天津南大通用数据技术股份有限公司 一种回收存储空间的方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1936865A (zh) * 2005-09-22 2007-03-28 康佳集团股份有限公司 数据文件的无效数据块回收方法
CN101692252A (zh) * 2009-08-31 2010-04-07 上海宝信软件股份有限公司 文件空闲块的分配和回收方法
CN102184140A (zh) * 2011-04-01 2011-09-14 航天恒星科技有限公司 一种面向实时数据库的表文件空间分配方法
CN103049393A (zh) * 2012-10-23 2013-04-17 北京奇虎科技有限公司 内存空间管理方法和装置
CN103678337A (zh) * 2012-09-06 2014-03-26 华为技术有限公司 数据清除方法、装置及系统
CN104572920A (zh) * 2014-12-27 2015-04-29 北京奇虎科技有限公司 一种数据整理方法和装置
CN105512325A (zh) * 2015-12-21 2016-04-20 华为技术有限公司 多版本数据索引的更新、删除与建立方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104182436B (zh) * 2014-02-25 2017-10-03 无锡天脉聚源传媒科技有限公司 一种清理数据库的方法及装置
CN105045850B (zh) * 2015-07-06 2018-08-14 西北工业大学 云存储日志文件系统中垃圾数据回收方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1936865A (zh) * 2005-09-22 2007-03-28 康佳集团股份有限公司 数据文件的无效数据块回收方法
CN101692252A (zh) * 2009-08-31 2010-04-07 上海宝信软件股份有限公司 文件空闲块的分配和回收方法
CN102184140A (zh) * 2011-04-01 2011-09-14 航天恒星科技有限公司 一种面向实时数据库的表文件空间分配方法
CN103678337A (zh) * 2012-09-06 2014-03-26 华为技术有限公司 数据清除方法、装置及系统
CN103049393A (zh) * 2012-10-23 2013-04-17 北京奇虎科技有限公司 内存空间管理方法和装置
CN104572920A (zh) * 2014-12-27 2015-04-29 北京奇虎科技有限公司 一种数据整理方法和装置
CN105512325A (zh) * 2015-12-21 2016-04-20 华为技术有限公司 多版本数据索引的更新、删除与建立方法及装置

Also Published As

Publication number Publication date
CN106503260A (zh) 2017-03-15

Similar Documents

Publication Publication Date Title
CN107391653B (zh) 一种分布式NewSQL数据库系统及图片数据储存方法
CN106503260B (zh) 一种提高数据库的有效存储空间的方法和装置
CN110321344B (zh) 关联数据的信息查询方法、装置、计算机设备及存储介质
US9183268B2 (en) Partition level backup and restore of a massively parallel processing database
CN102110121B (zh) 一种数据处理方法及其系统
CN103678494B (zh) 客户端同步服务端数据的方法及装置
US9483513B2 (en) Storing large objects on disk and not in main memory of an in-memory database system
CN104809237A (zh) LSM-tree索引的优化方法和装置
US10037355B2 (en) Mechanisms for merging index structures in MOLAP while preserving query consistency
CN105868228A (zh) 为olap和oltp事务提供无锁读取和写入操作的内存数据库系统
CN103744628B (zh) SSTable文件存储方法及装置
CN109086141B (zh) 内存管理方法和装置以及计算机可读存储介质
US20130254240A1 (en) Method of processing database, database processing apparatus, computer program product
CN110888837B (zh) 对象存储小文件归并方法及装置
WO2017096892A1 (zh) 索引构建方法、查询方法及对应装置、设备、计算机存储介质
JP2013525881A5 (zh)
CN107092701A (zh) 一种多维数据模型的数据处理方法及装置
CN105787037A (zh) 一种重复数据的删除方法及装置
US20150234898A1 (en) Apparatus and method for processing query in database with hybrid storage
CN103886109A (zh) 一种实现数据库行锁的方法及装置
CN106547805A (zh) 优化数据库索引的方法和装置
CN106161193A (zh) 一种邮件处理方法、装置和系统
CN106776702B (zh) 一种处理主从式数据库系统中的索引的方法和装置
CN111581123B (zh) 基于分类的存储器分配的锁定
CN115080680B (zh) 用于高精地图的激光点云数据处理方法、装置及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240104

Address after: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.