CN103870483A - 一种动态调整内存空间批量存储数据的方法 - Google Patents
一种动态调整内存空间批量存储数据的方法 Download PDFInfo
- Publication number
- CN103870483A CN103870483A CN201210538286.XA CN201210538286A CN103870483A CN 103870483 A CN103870483 A CN 103870483A CN 201210538286 A CN201210538286 A CN 201210538286A CN 103870483 A CN103870483 A CN 103870483A
- Authority
- CN
- China
- Prior art keywords
- memory table
- data
- memory
- num
- state
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 9
- 238000003780 insertion Methods 0.000 claims description 10
- 230000037431 insertion Effects 0.000 claims description 10
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 230000007423 decrease Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明一种动态调整内存空间批量存储数据的方法,当向数据库批量插入数据时,利用数据库内存表的读写速度比实体表的速度快的特点,把数据先存到内存表,保证数据能及时存入数据库,再把数据从内存表写入实体表内,以便把数据更及时快速地保存起来,其中内存表与实体表的对应关系设置成n:1,为了控制内存表所占用的内存空间,需要控制内存表的存储数据的行数跟内存表的个数,间接地调整了内存的空间。
Description
技术领域
本发明涉及一种动态调整内存空间批量存储数据的方法。
技术背景
当向数据库存储的数据量大且频繁时,数据库的性能会受到严重的考验,导致插入数据的速度下降,甚至出现表死锁、内存耗尽、数据库崩溃的现象。为此,通常会根据数据库性能参数值,增加设置内存表的数量,以减少表死锁的概率,但内存表的数量已被固定,若数量设置少了,批量插入大量的数据时将导致性能受限,若数量设置多了,当批量插入数据的量小时,浪费了内存空间,延长了数据保存到实体表中。
发明内容
本发明的目的在于提供一种动态调整内存空间批量存储数据的方法,让数据能更及时、更快的存入到数据库中。
一种动态调整内存空间批量存储数据的方法,包括如下步骤:
步骤1、将内存表的状态设定分成“未把数据转出到实体表的状态”和“把数据转出到实体表的状态”两种状态;
步骤2、初始化内存表个数和内存表允许保存的最大行数;
步骤3、判断当前内存表的个数num与上一次初始化的内存表个数per_num的大小,如果小于上一次初始化的内存表个数per_num,先把未用到的第num+1到第per_num个内存表中的数据转存到实体表中,丢弃第num+1到per_num个内存表,释放内存空间,如果大于上一次初始化的内存表个数per_num,则创建per_num+1到num的内存表;
步骤4、生成一个(0~9)之间的随机整数N,判断第N个内存表是否处于“把数据转出到实体表的状态”,如果是,则再重新随机生成一个(0~9)之间的随机数N,直到第N个内存表处于“未把数据转出到实体表的状态”,把数据插入该第N个内存表中,并把插入数据行数insert_row记录到数据库的每次插入行数的记录表Table_Batch_Rows中;
步骤5、记录每次插入表的数据行数insert_row、插入时间insert_time,并将所述数据保存到每次插入行数的记录表Table_Batch_Rows中,间隔预置时间T从插入行数的记录表Table_Batch_Rows计算出最近的时间T内每个时间段内平均插入的数据,作为内存表允许保存的最大行数的值,当插入数据的速度低于阈值时,可手动调整内存表个数;
步骤6、判断此时的第N个内存表的行数是否达到内存表允许保存最大行数,如果达到,设置该第N个内存表的状态处于“把数据转出到实体表的状态”,并把该第N个内存表的数据转存到实体表中,然后清空内存表,设置该第N个内存表的状态处于“未把数据转出到实体表的状态”;如果未达到内存表允许保存的最大行数,则进行下一次批量存储操作,返回步骤4。
本发明一种动态调整内存空间批量存储数据的方法,当向数据库批量插入数据时,利用数据库内存表的读写速度比实体表的速度快的特点,把数据先存到内存表,保证数据能及时存入数据库,再把数据从内存表写入实体表内,以便把数据更及时快速地保存起来,其中内存表与实体表的对应关系设置成n:1,为了控制内存表所占用的内存空间,需要控制内存表的存储数据的行数跟内存表的个数,间接地调整了内存的空间。
具体实施方式
本发明一种动态调整内存空间批量存储数据的方法,具体包括如下步骤:
步骤1、将内存表的状态设定分成“未把数据转出到实体表的状态”和“把数据转出到实体表的状态”两种状态;
步骤2、初始化内存表个数和内存表允许保存的最大行数;
初始化内存表个数table_num为2,设定内存表编号为table_num_0到table_num_3;
初始化设定内存表允许保存的最大行数row_num 为50;
步骤3、判断当前内存表的个数num与上一次初始化的内存表个数per_num的大小,如果小于上一次初始化的内存表个数per_num,先把未用到的第num+1到第per_num个内存表中的数据转存到实体表中,丢弃第num+1到per_num个内存表,释放内存空间,如果大于上一次初始化的内存表个数per_num,则创建per_num+1到num的内存表;
步骤4、生成一个(0~9)之间的随机整数N,判断第N个内存表是否处于“把数据转出到实体表的状态”,如果是,则再重新随机生成一个(0~9)之间的随机数N,直到第N个内存表处于“未把数据转出到实体表的状态”,把数据插入该第N个内存表中,这样做的目的是防止表在在删除操作时,同时进行插入操作,导致死锁;并把插入数据行数insert_row记录到数据库的每次插入行数的记录表Table_Batch_Rows中;
步骤5、为了能让内存表允许保存的最大行数能自动调整,可通过步骤4记录每次插入表的数据行数insert_row,插入时间insert_time,并将所述数据保存到每次插入行数的记录表Table_Batch_Rows中,设定定时器每一小时(时间可预置)从插入行数的记录表Table_Batch_Rows计算出最近一小时每10分钟内平均插入的数据,作为内存表允许保存的最大行数row_num的值,能自动调整内存表允许保存的最大行数row_num,从而间接自动地调整了内存表的大小。当插入的数据变慢时,可手动调整内存表个数,内存表个数table_num范围为1到10,内存表个数太大会影响数据存到实体表的速度,也会占用太多已经分配给数据库的内存,这个值要根据具体环境测出最优值;
步骤6、判断此时的第N个内存表的行数是否达到内存表允许保存最大行数,如果达到,设置该第N个内存表的状态处于“把数据转出到实体表的状态”,并把该第N个内存表的数据转存到实体表中,然后清空内存表,设置该第N个内存表的状态处于“未把数据转出到实体表的状态”;如果未达到内存表允许保存的最大行数,则进行下一次批量存储操作,返回步骤4。
以上所述,仅是本发明较佳实施例而已,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (1)
1.一种动态调整内存空间批量存储数据的方法,其特征在于包括如下步骤:
步骤1、将内存表的状态设定分成“未把数据转出到实体表的状态”和“把数据转出到实体表的状态”两种状态;
步骤2、初始化内存表个数和内存表允许保存的最大行数;
步骤3、判断当前内存表的个数num与上一次初始化的内存表个数per_num的大小,如果小于上一次初始化的内存表个数per_num,先把未用到的第num+1到第per_num个内存表中的数据转存到实体表中,丢弃第num+1到per_num个内存表,释放内存空间,如果大于上一次初始化的内存表个数per_num,则创建per_num+1到num的内存表;
步骤4、生成一个(0~9)之间的随机整数N,判断第N个内存表是否处于“把数据转出到实体表的状态”,如果是,则再重新随机生成一个(0~9)之间的随机数N,直到第N个内存表处于“未把数据转出到实体表的状态”,把数据插入该第N个内存表中,并把插入数据行数insert_row记录到数据库的每次插入行数的记录表Table_Batch_Rows中;
步骤5、记录每次插入表的数据行数insert_row、插入时间insert_time,并将所述数据保存到每次插入行数的记录表Table_Batch_Rows中,间隔预置时间T从插入行数的记录表Table_Batch_Rows计算出最近的时间T内每个时间段内平均插入的数据,作为内存表允许保存的最大行数的值,当插入数据的速度低于阈值时,可手动调整内存表个数;
步骤6、判断此时的第N个内存表的行数是否达到内存表允许保存最大行数,如果达到,设置该第N个内存表的状态处于“把数据转出到实体表的状态”,并把该第N个内存表的数据转存到实体表中,然后清空内存表,设置该第N个内存表的状态处于“未把数据转出到实体表的状态”;如果未达到内存表允许保存的最大行数,则进行下一次批量存储操作,返回步骤4。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210538286.XA CN103870483B (zh) | 2012-12-13 | 2012-12-13 | 一种动态调整内存空间批量存储数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210538286.XA CN103870483B (zh) | 2012-12-13 | 2012-12-13 | 一种动态调整内存空间批量存储数据的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103870483A true CN103870483A (zh) | 2014-06-18 |
CN103870483B CN103870483B (zh) | 2018-04-20 |
Family
ID=50909026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210538286.XA Active CN103870483B (zh) | 2012-12-13 | 2012-12-13 | 一种动态调整内存空间批量存储数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103870483B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033271A (zh) * | 2018-07-10 | 2018-12-18 | 上海达梦数据库有限公司 | 基于列存储的数据插入方法、装置、服务器及存储介质 |
CN112487095A (zh) * | 2020-12-09 | 2021-03-12 | 浪潮云信息技术股份公司 | 一种分布式数据库事务数据存储优化的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050165731A1 (en) * | 2002-08-20 | 2005-07-28 | Tokyo Electron Limited | Method for processing data based on the data context |
CN101127041A (zh) * | 2007-08-28 | 2008-02-20 | 激动集团股份有限公司 | 一种业务规则基础数据的缓冲方法 |
CN101241492A (zh) * | 2007-02-06 | 2008-08-13 | 中兴通讯股份有限公司 | 具有容量动态控制功能的内存数据存储装置及其实现方法 |
US20100332457A1 (en) * | 2009-06-27 | 2010-12-30 | Goetz Graefe | Database segment searching |
CN102129458A (zh) * | 2011-03-09 | 2011-07-20 | 胡劲松 | 关系型数据库的存储方法及装置 |
-
2012
- 2012-12-13 CN CN201210538286.XA patent/CN103870483B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050165731A1 (en) * | 2002-08-20 | 2005-07-28 | Tokyo Electron Limited | Method for processing data based on the data context |
CN101241492A (zh) * | 2007-02-06 | 2008-08-13 | 中兴通讯股份有限公司 | 具有容量动态控制功能的内存数据存储装置及其实现方法 |
CN101127041A (zh) * | 2007-08-28 | 2008-02-20 | 激动集团股份有限公司 | 一种业务规则基础数据的缓冲方法 |
US20100332457A1 (en) * | 2009-06-27 | 2010-12-30 | Goetz Graefe | Database segment searching |
CN102129458A (zh) * | 2011-03-09 | 2011-07-20 | 胡劲松 | 关系型数据库的存储方法及装置 |
Non-Patent Citations (3)
Title |
---|
曾春等: "HUABASE:基于列存储的关系型数据库系统", 《计算机研究与发展》 * |
甘亮等: "一种构建StreamCube的超大维表连接算法", 《计算机研究与发展》 * |
郭玉钗等: "多表多记录存储管理及其应用", 《计算机辅助设计与图形学学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033271A (zh) * | 2018-07-10 | 2018-12-18 | 上海达梦数据库有限公司 | 基于列存储的数据插入方法、装置、服务器及存储介质 |
CN109033271B (zh) * | 2018-07-10 | 2021-03-02 | 上海达梦数据库有限公司 | 基于列存储的数据插入方法、装置、服务器及存储介质 |
CN112487095A (zh) * | 2020-12-09 | 2021-03-12 | 浪潮云信息技术股份公司 | 一种分布式数据库事务数据存储优化的方法 |
CN112487095B (zh) * | 2020-12-09 | 2023-03-28 | 浪潮云信息技术股份公司 | 一种分布式数据库事务数据存储优化的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103870483B (zh) | 2018-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102358563B1 (ko) | 로우 해머 핸들링과 함께 리프레쉬 동작을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템 | |
US12002501B2 (en) | Apparatuses and methods for distributed targeted refresh operations | |
CN106856098B (zh) | 一种用于DRAM或eDRAM刷新的装置及其方法 | |
CN103959388B (zh) | 用于调度包括电力状态的存储器刷新操作的方法 | |
TW200737189A (en) | Apparatus and method for self-refreshing dynamic random access memory cells | |
CN106843762A (zh) | 管理存储区域的方法及固态硬盘 | |
CN106033319A (zh) | 固态硬盘动态建立转换层的方法 | |
CN104850501B (zh) | 一种ddr存储器访存地址映射方法及访存地址映射单元 | |
CN108139872A (zh) | 一种缓存管理方法、缓存控制器以及计算机系统 | |
US11688451B2 (en) | Apparatuses, systems, and methods for main sketch and slim sketch circuit for row address tracking | |
CN1945736A (zh) | 用于存储装置的与温度相关的自刷新模块 | |
CN106155579A (zh) | 固态硬盘动态储存转换层数据的方法 | |
CN103870483A (zh) | 一种动态调整内存空间批量存储数据的方法 | |
CN107273056A (zh) | 一种Ceph文件系统的数据存储方法及装置 | |
CN110413224A (zh) | 数据存储方法、装置及存储器 | |
CN107844436A (zh) | 一种缓存中脏数据的组织管理方法、系统及存储系统 | |
CN106406493A (zh) | 能降低功耗的电子装置及降低电子装置功耗的方法 | |
CN105373350A (zh) | 一种数据管理方法及装置 | |
CN103700401A (zh) | 快闪存储器编程及读取的方法 | |
CN107463506A (zh) | 一种电能表的数据存储管理方法 | |
CN107577431A (zh) | 一种存储池构建方法及装置 | |
CN105892949B (zh) | 一种提高混合固态硬盘性能的方法及系统 | |
CN103065676A (zh) | 半导体装置的刷新控制电路和方法 | |
TW201928966A (zh) | 動態隨機存取記憶體及其操作方法 | |
KR101689458B1 (ko) | 반도체 메모리 장치 및 반도체 메모리 장치 제어 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 361009 Xiamen Torch High tech Zone Software Park Innovation Building C Area 303-E, Xiamen, Fujian Province Patentee after: Xiamen Yaxun Zhilian Technology Co.,Ltd. Country or region after: China Address before: Xiamen City, Fujian province 361009 software industry base in view of the road No. 46 Patentee before: XIAMEN YAXON NETWORK Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |