CN113656401A - 基于PostgreSql数据平均分表方法、装置、设备及介质 - Google Patents
基于PostgreSql数据平均分表方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN113656401A CN113656401A CN202110780481.2A CN202110780481A CN113656401A CN 113656401 A CN113656401 A CN 113656401A CN 202110780481 A CN202110780481 A CN 202110780481A CN 113656401 A CN113656401 A CN 113656401A
- Authority
- CN
- China
- Prior art keywords
- data
- sublist
- latest
- sub
- stored
- 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
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000013500 data storage Methods 0.000 claims abstract description 59
- 230000008569 process Effects 0.000 claims abstract description 16
- 238000012935 Averaging Methods 0.000 claims description 13
- 238000001514 detection method Methods 0.000 claims description 2
- 239000007788 liquid Substances 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 239000000344 soap Substances 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
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)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了基于PostgreSql数据平均分表方法、装置、设备及介质,所述方法包括:预先创建用于判断在数据存储过程中是否需要创建新的数据分表的索引表,预先设置每张数据分表所能容纳数据量的预设值;当接收到数据存储请求,通过所述索引表,检测数据库中最新的数据分表的数据量是否达到预设值;当数据库中最新的数据分表的数据量小于所述预设值,则将需存储的数据存储在所述最新的数据分表;当数据库中最新的数据分表的数据量达到所述预设值,则创建另一个新的数据分表,并将需存储的数据存储在新创建的数据分表中;当数据存储完成,则更新索引表中最新的数据分表的对应信息。实现了能够将数据平均分表的同时易于扩展的分表方案。
Description
技术领域
本发明涉及数据处理领域,尤其涉及的是一种基于PostgreSql数据平均分表方法、装置、终端设备及存储介质。
背景技术
在当今的大数据时代,人们的一举一动都会被记录成信息储存起来,所以对于数据的存储和管理成为了大数据时代中的重点关注对象,大多情况下当一份表格的数据量超过一定程度时就容易导致系统或者文件的崩溃,一般的做法就是将庞大的数据分表格存储,而现有技术中常用方式有基于时间的分表以及基于Hash分片的分表,前者存在分表不均衡的问题,后者存在难以扩展分表数量的问题,因此现有技术中没有一种既能够平均分表有易于扩展的分表方案。
因此,现有技术还有待改进和发展。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种基于PostgreSql数据平均分表方法、装置、终端设备及存储介质,本发明解决了现有技术中基于时间维度的分表方式和基于哈希分片的分表方式无法做到在将数据平均分表的同时易于扩展的问题。
为了解决上述技术问题,本发明采用的技术方案如下:
一种基于PostgreSql数据平均分表方法,其中,所述方法包括:
预先创建用于判断在数据存储过程中是否需要创建新的数据分表的索引表,预先设置每张数据分表所能容纳数据量的预设值;
当接收到数据存储请求,通过所述索引表,检测数据库中最新的数据分表的数据量是否达到预设值;
当数据库中最新的数据分表的数据量小于所述预设值,则将需存储的数据存储在所述最新的数据分表;
当数据库中最新的数据分表的数据量达到所述预设值,则创建另一个新的数据分表,并将需存储的数据存储在新创建的数据分表中;
当数据存储完成,则更新索引表中最新的数据分表的对应信息。
所述的基于PostgreSql数据平均分表方法,其中,所述当接收到数据存储请求,通过所述索引表,检测数据库中最新的数据分表的数据量是否达到预设值的步骤还包括:
当接收到数据存储请求,通过所述索引表,检测到数据库中没有数据分表,则创建第一个数据分表,并将需存储的数据存储于在新创建的第一个数据分表中。
所述的基于PostgreSql数据平均分表方法,其中,所述预先创建用于判断在数据存储过程中是否需要创建新的数据分表的索引表,预先设置每张数据分表所能容纳数据量的预设值的步骤中:
所述索引表中包括数据分表的序号、数据分表的名称、数据分表创建的时间,数据分表最后一次存储数据的时间以及数据分表当前的数据量;
所述数据分表创建的时间以及数据分表最后一次存储数据的时间包括具体的年、月、日、时、分、秒。
所述的基于PostgreSql数据平均分表方法,其中,当接收到数据存储请求,通过所述索引表,检测数据库中最新的数据分表的数据量是否达到预设值的步骤包括:
当数据库接收到数据存储请求;
通过索引表,检测数据库中最新的数据分表的数据量是否达到预设值。
所述的基于PostgreSql数据平均分表方法,其中,所述当数据库中最新的数据分表的数据量小于所述预设值,则将需存储的数据存储在所述最新的数据分表的步骤包括:
通过索引表判断当前数据库中最新的数据分表的数据量小于所述预设值;
将需存储的数据存储在所述最新的数据分表中。
所述的基于PostgreSql数据平均分表方法,其中,所述当数据库中最新的数据分表的数据量达到所述预设值,则创建另一个新的数据分表,并将需存储的数据存储在新创建的数据分表中的步骤包括:
通过索引表判断当前数据库中最新的数据分表的数据量等于所述预设值;
创建另一个新的数据分表;
将需存储的数据存储在新创建的数据分表中。
所述的基于PostgreSql数据平均分表方法,其中,所述当数据存储完成,则更新索引表中最新的数据分表的对应信息的步骤包括:
当数据存储完成,通过存储数据时执行的命令更新索引表;
当数据库创建新的数据分表时,索引表加入新创建的数据分表的信息;
当数据库仅将需存储的数据存储于最新的数据分表中时,索引表对应更新所述最新的数据分表最后一次存储数据的时间以及当前数据量。
一种基于PostgreSql数据平均分表装置,其中,所述装置包括:
预设模块,用于创建数据分表的索引表以及预先设置每张数据分表所能容纳数据量的预设值;
接收模块,用于接收当有数据需要存储时发来的数据存储请求;
检测模块,用于检测数据库中最新的数据分表的数据量是否达到预设值;
创建模块,用于当数据库中最新的数据分表的数据量达到所述预设值时创建新的数据分表;
存储模块,用于将需存储的数据存储于在新的数据分表中;
更新模块,用于更新索引表中最新的数据分表的对应信息。
一种终端设备,其中,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于PostgreSql数据平均分表程序,所述执行基于PostgreSql数据平均分表程序时,实现任一项所述的基于PostgreSql数据平均分表方法的步骤。
一种计算机可读存储介质,其中,其上存储有基于PostgreSql数据平均分表程序,上所述基于PostgreSql数据平均分表程序被处理器执行时,实现任一项所述的基于PostgreSql数据平均分表方法的步骤。
有益效果:与现有技术相比,本发明提供了一种基于PostgreSql数据平均分表方法,所述方法采用:预先创建用于判断在数据存储过程中是否需要创建新的数据分表的索引表,预先设置每张数据分表所能容纳数据量的预设值;当接收到数据存储请求,通过所述索引表,检测数据库中最新的数据分表的数据量是否达到预设值;当数据库中最新的数据分表的数据量小于所述预设值,则将需存储的数据存储在所述最新的数据分表;当数据库中最新的数据分表的数据量达到所述预设值,则创建另一个新的数据分表,并将需存储的数据存储在新创建的数据分表中;当数据存储完成,则更新索引表中最新的数据分表的对应信息。通过此方法使得每一张数据分表的数据量都相同,且每当新的数据分表存储的数据量达到预设值后可以轻松扩展新的数据分表,做到平均分表的同时易于扩展的特点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的基于PostgreSql数据平均分表方法的具体实施方式的流程图。
图2是本发明实施例提供的检测到有新数据存储请求时判断最新的数据分表的数据量是否达到预设值的流程示意图。
图3是本发明实施例提供的当最新的数据分表的数据量小于预设值将数据存储于所述最新的数据分表中的流程示意图。
图4是本发明实施例提供的当最新的数据分表的数据量等于预设值创建新数据分表并存储数据的流程示意图。
图5是本发明实施例提供的完成数据存储后更新索引表的流程示意图。
图6是本发明第三实施例中索引表gps_time_scope的示意图。
图7是本发明第三实施例中PostgreSql数据库中所有表格的示意图。
图8是本发明实施例提供的基于PostgreSql数据平均分表装置的原理框图。
图9是本发明实施例提供的终端设备的内部结构原理图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
随着大数据时代的来临,人们的一举一动,不仅是在网络上进行购物下单,还是浏览网页,都会被互联网记录下来变成一条一条的数据,同时在物联网技术的支持下,通过各式各样的传感器,人们在现实生活中的各种行为也可以被记录到大数据中,以及在某些环境恶劣的无法靠人力监管的地方也可以通过物联网和大数据的技术对其进行管控。
但是因为数据量的暴涨,海量数据的存储和管理就成为了一大挑战,数据的存储单位也不再是常见的GB、TB而到达了PB甚至是EB或ZB,如此海量的数据早已不是一张表格能够容纳的下的,例如使用excel存储十行数据时计算机可以轻轻松松的进行运算,存储一百行数据时计算机也可以不费力的进行处理,但当数据量达到一千行一万行甚至十万、百万、千万行的时候,计算机的处理速度就明显不够了,还可能出现卡顿、死机、文件损坏等问题。所以出现了将数据分表存储的大数据处理技术,将一万行数据分为十张表格,每张表格仅存储一千行数据,对于存储和处理数据的终端设备来说仅需对需要处理的一张或若干张表进行处理即可,但在现有技术中基于时间维度的分表方法和基于哈希分片的分表方法存在无法在平均分表的同时做到易于拓展分表的问题。
为了解决上述问题,本发明实施例提供一种基于PostgreSql数据平均分表方法,根据本实施例的基于PostgreSql数据平均分表方法可以在终端设备接收到新数据存储请求的时候自动检测数据库中最新的数据分表的数据量是否小于预设值,若小于预设值则直接将新数据存储在所述最新的数据分表中,若所述数据量已到达预设值或数据库中不存在数据分表时,则创建新的数据分表并将新数据存储于所述创建的新的数据分表中。实现将海量数据平均分表的同时能够便于拓展分表的目的。
示例性方法
第一实施例
如图1中所示,本发明实施例提供一种基于PostgreSql数据平均分表方法,所述基于PostgreSql数据平均分表方法可用于电脑、云端存储设备等用于存储、处理数据的终端设备中。
在本实施例中主要使用PostgreSql数据库,因为该数据库是一个特性非常齐全的开源对象-关系型数据库管理系统,其不仅可以满足一般关系型数据库的功能特性,还能定制化扩展自己需要的特性。
在本发明实施例中所述方法包括如下步骤:
步骤S100、预先创建用于判断在数据存储过程中是否需要创建新的数据分表的索引表,预先设置每张数据分表所能容纳数据量的预设值;
其中,所述预先创建用于判断在数据存储过程中是否需要创建新的数据分表的索引表,预先设置每张数据分表所能容纳数据量的预设值的步骤中:
所述索引表中包括数据分表的序号、数据分表的名称、数据分表创建的时间,数据分表最后一次存储数据的时间以及数据分表当前的数据量;
所述数据分表创建的时间以及数据分表最后一次存储数据的时间包括具体的年、月、日、时、分、秒。
在本实施例中,在数据库对新数据进行分表存储之前需创建索引表,以及设定每张数据分表最大所能存储的数据量,即预设值。所述索引表可用于当新数据需要存储时判断所述数据库中是否存在数据分表,以及判断数据库中最新的数据分表的数据量是达到预设值。所述数据分表为用于将大量数据分开存储的区域,并且每个数据分表仅能容纳不超过预设值的数据。其中,所述索引表中包含数据分表的序号,代表数据分表创建的顺序,数据分表的名称、各数据分表当前的数据量、数据分表的创建时间以及数据分表最后一次存储数据的时间,其时间可表示为年、月、日、时、分、秒的形式,且根据存储数据时的具体应用可更改时间的精度,例如数据存储的频率较快则可以将时间精确到秒的小数点后的若干位数,若数据存储的频率较慢,则时间精确到分钟即可,由此可节省一定的计算资源。
举例说明,设置一PostgreSql数据库用于存储在某网店下单网购洗手液的用户的信息,且该洗手液产品销量较高,平均每分钟有一个人下单购买,则在使用数据平均分表的方式存储数据之前在所述数据库中建立数据分表的索引表,所述索引表的内容包括各数据分表的序号,创建的第一张数据分表为1,之后的分表从1开始依次往后排序;数据分表的名称可以是洗手液-用户信息等带有提示性的名称;因为平均每分钟1个人下单,所以数据分表创建的时间以及分表最后一次存储数据的时间可以精确到秒,例如洗手液-用户信息表3的创建时间为2021.6.1-12:30:12,最后一次存储数据的时间为2021.6.1-15:25:11;以及当前各数据分表的数据量。预先设置数据分表最大所能容纳的数据大小的预设值为一千五百条用户信息,根据下单的频率,记录一千五百条用户信息所用的时间约为一天,且数据量小,易于商家导出并用于自动填写快递单号发出快递等处理。
进一步地,步骤S200、当接收到数据存储请求,通过所述索引表,检测数据库中最新的数据分表的数据量是否达到预设值;
在本实施例中,当检测到有新数据即将存储于PostgreSql数据库的数据分表中时,通过索引表检测数据库中最新的数据分表的数据量是否到达预设值。所述最新的数据分表可以由索引表中数据分表的序号决定,例如数字最大的数据分表为最新的数据分表,也可通过数据分表创建的时间以及数据分表最后一次存储数据的时间判断,且在数据库中最新的数据分表有可能未存满也有可能已存满,但除了最新的数据分表之外的数据分表的数据量必然达到所述预设值。
具体地,如图2所示,步骤S200包括:
步骤S201、当数据库接收到数据存储请求;
步骤S202、通过索引表,检测数据库中最新的数据分表的数据量是否达到预设值。
举例说明,当有用户通过购物平台下单洗手液并填写相应的用户信息后,PostgreSql数据库检测到有新数据或检测到数据存储请求时,所述数据库通过所述索引表判断当前数据库中最新的数据分表的数据量是否达到预设值的1500条用户信息。
进一步地,步骤S300、当数据库中最新的数据分表的数据量小于所述预设值,则将需存储的数据存储在所述最新的数据分表;
在本实施例中,若通过所述索引表判断数据库中序号最大的数据分表或创建时间、最后一次存储数据的时间最晚的数据分表的数据量小于预设值,则将需存储的数据直接存储在所述最新的数据分表中。
具体地,如图3所示,步骤S300包括:
步骤S301、通过索引表判断当前数据库中最新的数据分表的数据量小于所述预设值;
步骤S302、将需存储的数据存储在所述最新的数据分表中。
举例说明,当用户网购下单洗手液后,存储购买洗手液的用户信息的PostgreSql数据库检索索引表内容,当数据库中存在数据分表例如洗手液-用户信息1、洗手液-用户信息2、洗手液-用户信息3三张数据分表,则进一步通过索引表判断最新的数据分表即洗手液-用户信息3数据分表当前的数据量,当所述数据量为985,小于预设值的1500则将新数据存储于洗手液-用户信息3数据分表中。
进一步地,步骤S400,当数据库中最新的数据分表的数据量达到所述预设值,则创建另一个新的数据分表,并将需存储的数据存储在新创建的数据分表中;
在本实施例中,若通过索引表判断PostgreSql数据库中最新的数据分表的数据量等于预设值,则PostgreSql数据库需要创建新的数据分表用于存储新数据。
具体地,如图4所示,所述步骤S400包括:
步骤S401、通过索引表判断当前数据库中最新的数据分表的数据量等于所述预设值;
步骤S402、创建另一个新的数据分表;
步骤S403、将需存储的数据存储在新创建的数据分表中。
举例说明,存储下单购买洗手液的用户信息的PostgreSql数据库通过索引表判断当前数据库中存在洗手液-用户信息1以及洗手液-用户信息2两张数据分表,洗手液-用户信息2数据分表对应的数据量为1500正好等于预设值,则因为洗手液-用户信息2数据分表存储的数据量已达到上限,PostgreSql数据库创建另一新的数据分表洗手液-用户数据3,此时名为洗手液-用户数据3的数据分表为数据库中最新的数据分表,并将新数据存储于该数据分表中。
另一方面,所述当接收到数据存储请求,通过所述索引表,检测数据库中最新的数据分表的数据量是否达到预设值的步骤还包括:
当接收到数据存储请求,通过所述索引表,检测到数据库中没有数据分表,则创建第一个数据分表,并将需存储的数据存储于在新创建的第一个数据分表中。
举例说明,当第一个用户通过购物平台下单购买洗手液并填写响应用户信息后,PostgreSql数据库检测到有新数据或检测到数据存储请求时,通过索引表检测到所述数据库中没有数据分表,则创建第一个数据分表,命名为洗手液-用户信息1,此时洗手液-用户信息1为第一个数据分表的分表名,其数据分表序号为1,当前数据量为0,创建完成第一个数据分表后将需存储的数据例如用户名A、地址B、手机号码C等用户信息存储在所述洗手液-用户信息1的数据分表中。
进一步地,步骤S500、当数据存储完成,则更新索引表中最新的数据分表的对应信息。
具体地,如图5所示,所述步骤S500包括:
步骤S501、通过存储新数据时执行的命令更新索引表;
步骤S502、当数据库创建新的数据分表时,索引表加入新创建的数据分表的信息;
步骤S503、当数据库仅将新数据存储于最新的数据分表中时,索引表对应更新所述最新的数据分表最后一次存储数据的时间以及当前数据量。
举例说明,索引表更新时可以通过调用最近一次存储新数据时执行的命令进行对应的更新,也可以通过对最新的数据分表进行扫描的方式更新索引表中记录的数据分表的信息。例如获取当判断所述序号3的数据分表的数据量小于预设值并直接将新数据存储于序号3的数据分表的命令,则在更新索引表时对应只更新序号3最后一次存储数据的时间以及当前数据量使其加一即可;若获取到判断PostgreSql数据库中序号3的数据分表的数据量等于预设值,则创建另一个新的数据分表并将新数据存储于该数据分表的命令,则在更新索引表时对应添加一张新的数据分表,并更新对应数据分表的表名,数据分表的创建时间,数据分表最后一次存储数据的时间,数据分表当前的存储量等信息。
进一步地,在所述当数据存储完成,则更新索引表中最新的数据分表的对应信息的步骤之后还包括:
所述数据分表的表名、数据分表创建的时间以及数据分表最后一次存储数据的时间还用于索引特定数据时使用。
举例说明,当洗手液卖家与用户A产生纠纷时,可以根据用户A提供的购买时间快速的在索引表中找到对应时间段的数据分表,并在该数据分表内进一步查找即可找到用户A的交易记录,而不是在所有的交易记录中查找用户A的交易记录,有效提高了卖家A在查找信息以及后续填写快递信息发快递时的检索效率与处理效率。
在第二实施例中,为提高数据库的运行稳定性,可利用PostgreSql中对DDL的事务进行管理,当后续步骤中出现异常时会进行回滚,分表就不会创建成功,因此不会造成冗余表的出现。例如当数据分表a存满数据,需要将新数据D1存储于新的数据分表b中,但由于新数据D1存在数据缺失等异常导致存储失败时,新数据D1实际并没有存储进数据库汇总,数据分表b为空表,则创建数据分表b的动作将会撤回,也就避免了数据库中出现冗余表。起到了提高数据库稳定性、节省磁盘空间、提高数据查询速度的有益效果。
在第三实施例中,如图6所示,图6为本实施例的索引表,为本方案测试多种带有gps定位功能的装置、设备例如手机运动app、汽车、单车等在各时间点的定位的数据分表,其索引表包括数据分表的序号、数据分表的名称、开始存储数据的时间、最后一次存储数据的时间以及当前数据量,其时间精度到达秒的小数点后四位数,并且设定各数据分表的预设值为一百万,当个数据分表记录满一百万条数据后停止记录。如图7所示,gps_record_1-9分别为记录了九个设备的时间与定位关系的数据分表,gps_record_main为gps_record_1-9的数据分表模板,使PostgreSql数据库创建数据分表时更加稳定,gps_time_scope为九个数据分表的索引表,可以通过索引表的内容直接确定所要查询的数据分表,例如查询记录有2020-11-13凌晨0点数据的表格,可以直接定位到图6中的gps_record_8。
如图8中所示,本发明实施例提供一种基于PostgreSql数据平均分表装置,该装置包括:预设模块810、接收模块820、检测模块830、创建模块840、存储模块850、更新模块860。具体地,所述预设模块810,用于创建数据分表的索引表以及预先设置每张数据分表所能容纳数据量的预设值;所述接收模块820,用于接收当有数据需要存储时发来的数据存储请求;所述检测模块830,用于检测数据库中最新的数据分表的数据量是否达到预设值;所述创建模块840,用于当数据库中最新的数据分表的数据量达到所述预设值时创建新的数据分表;所述存储模块850,用于将需存储的数据存储于在新的数据分表中;所述更新模块860,用于更新索引表中最新的数据分表的对应信息。
基于上述实施例,本发明还提供了一种终端设备,其原理框图可以如图9所示。该终端设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏。其中,该终端设备的处理器用于提供计算和控制能力。该终端设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该终端设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于PostgreSql数据平均分表。该终端设备的显示屏可以是液晶显示屏或者电子墨水显示屏。
本领域技术人员可以理解,图9中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的终端设备的限定,具体的终端设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种终端设备,终端设备包括存储器、处理器及存储在处理器上并可在处理器上运行的基于PostgreSql数据平均分表程序,处理器执行如下步骤:
预先创建用于判断在数据存储过程中是否需要创建新的数据分表的索引表,预先设置每张数据分表所能容纳数据量的预设值;
当接收到数据存储请求,通过所述索引表,检测数据库中最新的数据分表的数据量是否达到预设值;
当数据库中最新的数据分表的数据量小于所述预设值,则将需存储的数据存储在所述最新的数据分表;
当数据库中最新的数据分表的数据量达到所述预设值,则创建另一个新的数据分表,并将需存储的数据存储在新创建的数据分表中;
当数据存储完成,则更新索引表中最新的数据分表的对应信息。
其中,所述当接收到数据存储请求,通过所述索引表,检测数据库中最新的数据分表的数据量是否达到预设值的步骤还包括:
当接收到数据存储请求,通过所述索引表,检测到数据库中没有数据分表,则创建第一个数据分表,并将需存储的数据存储于在新创建的第一个数据分表中。
其中,所述预先创建用于判断在数据存储过程中是否需要创建新的数据分表的索引表,预先设置每张数据分表所能容纳数据量的预设值的步骤中:
所述索引表中包括数据分表的序号、数据分表的名称、数据分表创建的时间,数据分表最后一次存储数据的时间以及数据分表当前的数据量;
所述数据分表创建的时间以及数据分表最后一次存储数据的时间包括具体的年、月、日、时、分、秒。
其中,当接收到数据存储请求,通过所述索引表,检测数据库中最新的数据分表的数据量是否达到预设值的步骤包括:
当数据库接收到数据存储请求;
通过索引表,检测数据库中最新的数据分表的数据量是否达到预设值。
其中,所述当数据库中最新的数据分表的数据量小于所述预设值,则将需存储的数据存储在所述最新的数据分表的步骤包括:
通过索引表判断当前数据库中最新的数据分表的数据量小于所述预设值;
将需存储的数据存储在所述最新的数据分表中。
其中,所述当数据库中最新的数据分表的数据量达到所述预设值,则创建另一个新的数据分表,并将需存储的数据存储在新创建的数据分表中的步骤包括:
通过索引表判断当前数据库中最新的数据分表的数据量等于所述预设值;
创建另一个新的数据分表;
将需存储的数据存储在新创建的数据分表中。
其中,所述当数据存储完成,则更新索引表中最新的数据分表的对应信息的步骤包括:
当数据存储完成,通过存储数据时执行的命令更新索引表;
当数据库创建新的数据分表时,索引表加入新创建的数据分表的信息;
当数据库仅将需存储的数据存储于最新的数据分表中时,索引表对应更新所述最新的数据分表最后一次存储数据的时间以及当前数据量。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
综上所述,本发明公开了基于PostgreSql数据平均分表方法、装置、设备及介质,所述方法包括:预先创建用于判断在数据存储过程中是否需要创建新的数据分表的索引表,预先设置每张数据分表所能容纳数据量的预设值;当接收到数据存储请求,通过所述索引表,检测数据库中最新的数据分表的数据量是否达到预设值;当数据库中最新的数据分表的数据量小于所述预设值,则将需存储的数据存储在所述最新的数据分表;当数据库中最新的数据分表的数据量达到所述预设值,则创建另一个新的数据分表,并将需存储的数据存储在新创建的数据分表中;当数据存储完成,则更新索引表中最新的数据分表的对应信息。实现了能够将数据平均分表的同时易于扩展的分表方案。
应当理解的是,本发明公开的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种基于PostgreSql数据平均分表方法,其特征在于,所述方法包括:
预先创建用于判断在数据存储过程中是否需要创建新的数据分表的索引表,预先设置每张数据分表所能容纳数据量的预设值;
当接收到数据存储请求,通过所述索引表,检测数据库中最新的数据分表的数据量是否达到预设值;
当数据库中最新的数据分表的数据量小于所述预设值,则将需存储的数据存储在所述最新的数据分表;
当数据库中最新的数据分表的数据量达到所述预设值,则创建另一个新的数据分表,并将需存储的数据存储在新创建的数据分表中;
当数据存储完成,则更新索引表中最新的数据分表的对应信息。
2.根据权利要求1所述的基于PostgreSql数据平均分表方法,其特征在于,所述当接收到数据存储请求,通过所述索引表,检测数据库中最新的数据分表的数据量是否达到预设值的步骤还包括:
当接收到数据存储请求,通过所述索引表,检测到数据库中没有数据分表,则创建第一个数据分表,并将需存储的数据存储于在新创建的第一个数据分表中。
3.根据权利要求1所述的基于PostgreSql数据平均分表方法,其特征在于,所述预先创建用于判断在数据存储过程中是否需要创建新的数据分表的索引表,预先设置每张数据分表所能容纳数据量的预设值的步骤中:
所述索引表中包括数据分表的序号、数据分表的名称、数据分表创建的时间,数据分表最后一次存储数据的时间以及数据分表当前的数据量;
所述数据分表创建的时间以及数据分表最后一次存储数据的时间包括具体的年、月、日、时、分、秒。
4.根据权利要求1所述的基于PostgreSql数据平均分表方法,其特征在于,当接收到数据存储请求,通过所述索引表,检测数据库中最新的数据分表的数据量是否达到预设值的步骤包括:
当数据库接收到数据存储请求;
通过索引表,检测数据库中最新的数据分表的数据量是否达到预设值。
5.根据权利要求1所述的基于PostgreSql数据平均分表方法,其特征在于,所述当数据库中最新的数据分表的数据量小于所述预设值,则将需存储的数据存储在所述最新的数据分表的步骤包括:
通过索引表判断当前数据库中最新的数据分表的数据量小于所述预设值;
将需存储的数据存储在所述最新的数据分表中。
6.根据权利要求1所述的基于PostgreSql数据平均分表方法,其特征在于,所述当数据库中最新的数据分表的数据量达到所述预设值,则创建另一个新的数据分表,并将需存储的数据存储在新创建的数据分表中的步骤包括:
通过索引表判断当前数据库中最新的数据分表的数据量等于所述预设值;
创建另一个新的数据分表;
将需存储的数据存储在新创建的数据分表中。
7.根据权利要求1所述的基于PostgreSql数据平均分表方法,其特征在于,所述当数据存储完成,则更新索引表中最新的数据分表的对应信息的步骤包括:
当数据存储完成,通过存储数据时执行的命令更新索引表;
当数据库创建新的数据分表时,索引表加入新创建的数据分表的信息;
当数据库仅将需存储的数据存储于最新的数据分表中时,索引表对应更新所述最新的数据分表最后一次存储数据的时间以及当前数据量。
8.一种基于PostgreSql数据平均分表装置,其特征在于,所述装置包括:
预设模块,用于创建数据分表的索引表以及预先设置每张数据分表所能容纳数据量的预设值;
接收模块,用于接收当有数据需要存储时发来的数据存储请求;
检测模块,用于检测数据库中最新的数据分表的数据量是否达到预设值;
创建模块,用于当数据库中最新的数据分表的数据量达到所述预设值时创建新的数据分表;
存储模块,用于将需存储的数据存储于在新的数据分表中;
更新模块,用于更新索引表中最新的数据分表的对应信息。
9.一种终端设备,其特征在于,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于PostgreSql数据平均分表程序,所述执行基于PostgreSql数据平均分表程序时,实现如权利要求1-7任一项所述的基于PostgreSql数据平均分表方法的步骤。
10.一种计算机可读存储介质,其特征在于,其上存储有基于PostgreSql数据平均分表程序,上所述基于PostgreSql数据平均分表程序被处理器执行时,实现如权利要求1-7任一项所述的基于PostgreSql数据平均分表方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110780481.2A CN113656401A (zh) | 2021-07-09 | 2021-07-09 | 基于PostgreSql数据平均分表方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110780481.2A CN113656401A (zh) | 2021-07-09 | 2021-07-09 | 基于PostgreSql数据平均分表方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113656401A true CN113656401A (zh) | 2021-11-16 |
Family
ID=78477968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110780481.2A Pending CN113656401A (zh) | 2021-07-09 | 2021-07-09 | 基于PostgreSql数据平均分表方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113656401A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110296103A1 (en) * | 2010-05-31 | 2011-12-01 | Fujitsu Limited | Storage apparatus, apparatus control method, and recording medium for storage apparatus control program |
CN103425663A (zh) * | 2012-05-16 | 2013-12-04 | 中兴通讯股份有限公司 | 嵌入式系统数据库创建表、存记录、删记录的方法和装置 |
CN105095393A (zh) * | 2015-06-30 | 2015-11-25 | 努比亚技术有限公司 | 一种数据存储方法及装置 |
CN106844564A (zh) * | 2016-12-30 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种网盘文件分表方法及装置 |
-
2021
- 2021-07-09 CN CN202110780481.2A patent/CN113656401A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110296103A1 (en) * | 2010-05-31 | 2011-12-01 | Fujitsu Limited | Storage apparatus, apparatus control method, and recording medium for storage apparatus control program |
CN103425663A (zh) * | 2012-05-16 | 2013-12-04 | 中兴通讯股份有限公司 | 嵌入式系统数据库创建表、存记录、删记录的方法和装置 |
CN105095393A (zh) * | 2015-06-30 | 2015-11-25 | 努比亚技术有限公司 | 一种数据存储方法及装置 |
CN106844564A (zh) * | 2016-12-30 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种网盘文件分表方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110781214A (zh) | 数据库读写方法、装置、计算机设备和存储介质 | |
CN110837520A (zh) | 一种数据处理方法、平台及系统 | |
CN111797134A (zh) | 分布式数据库的数据查询方法、装置和存储介质 | |
CN110134681B (zh) | 数据存储与查询方法、装置、计算机设备及存储介质 | |
CN110442585B (zh) | 数据更新方法、数据更新装置、计算机设备及存储介质 | |
CN108763341B (zh) | 电子装置、自动化建表方法及存储介质 | |
CN112883030A (zh) | 数据收集方法、装置、计算机设备和存储介质 | |
CN111767297B (zh) | 大数据处理方法、装置、设备及介质 | |
CN113094387A (zh) | 一种数据查询方法、装置、电子设备及机器可读存储介质 | |
CN110162540B (zh) | 区块链账本数据的查询方法、电子装置及存储介质 | |
CN107622090B (zh) | 对象的获取方法、装置及系统 | |
CN113515717A (zh) | 导航页面更新方法、装置、电子设备及存储介质 | |
CN111639087B (zh) | 数据库中数据更新方法、装置和电子设备 | |
CN113656401A (zh) | 基于PostgreSql数据平均分表方法、装置、设备及介质 | |
CN111026963A (zh) | 数据查询的方法及装置、配置信息的设置方法及装置 | |
CN113094367A (zh) | 数据处理方法、装置和服务器 | |
CN113722296A (zh) | 一种农业信息处理方法、装置、电子设备及存储介质 | |
CN113282617A (zh) | 数据查询方法以及业务系统翻页方法 | |
CN112835886A (zh) | 数据表字段添加方法和装置 | |
US20240211961A1 (en) | System and method for managing issues using knowledge base metadata | |
CN116339717B (zh) | 一种数据执行方法、装置、设备和介质 | |
CN116821102B (zh) | 数据迁移方法、装置、计算机设备和存储介质 | |
CN111507566B (zh) | 物品生产单的生成方法、装置、计算机设备和存储介质 | |
CN111274263B (zh) | 可视化数据库变更语句生成方法、装置及存储介质 | |
CN115659406B (zh) | 一种数据访问方法 |
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 |