CN103870483B - 一种动态调整内存空间批量存储数据的方法 - Google Patents
一种动态调整内存空间批量存储数据的方法 Download PDFInfo
- Publication number
- CN103870483B CN103870483B CN201210538286.XA CN201210538286A CN103870483B CN 103870483 B CN103870483 B CN 103870483B CN 201210538286 A CN201210538286 A CN 201210538286A CN 103870483 B CN103870483 B CN 103870483B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- memory table
- num
- time
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 9
- 238000003780 insertion Methods 0.000 claims abstract description 20
- 230000037431 insertion Effects 0.000 claims abstract description 20
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000004321 preservation Methods 0.000 claims 1
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000007423 decrease Effects 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内每个时间段内平均插入的数据,作为内存表允许保存的最大行数的值,当插入数据的速度低于阈值时,可手动调整内存表个数,该内存表个数是根据具体环境测出的最优值,范围为1到10;
步骤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 CN103870483A (zh) | 2014-06-18 |
CN103870483B true 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) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033271B (zh) * | 2018-07-10 | 2021-03-02 | 上海达梦数据库有限公司 | 基于列存储的数据插入方法、装置、服务器及存储介质 |
CN112487095B (zh) * | 2020-12-09 | 2023-03-28 | 浪潮云信息技术股份公司 | 一种分布式数据库事务数据存储优化的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101127041A (zh) * | 2007-08-28 | 2008-02-20 | 激动集团股份有限公司 | 一种业务规则基础数据的缓冲方法 |
CN101241492A (zh) * | 2007-02-06 | 2008-08-13 | 中兴通讯股份有限公司 | 具有容量动态控制功能的内存数据存储装置及其实现方法 |
CN102129458A (zh) * | 2011-03-09 | 2011-07-20 | 胡劲松 | 关系型数据库的存储方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050058374A (ko) * | 2002-08-20 | 2005-06-16 | 도쿄 일렉트론 가부시키가이샤 | 데이터 콘텍스트 기반 데이터 처리방법 |
US8108400B2 (en) * | 2009-06-27 | 2012-01-31 | Hewlett-Packard Development Company, L.P. | Database segment searching |
-
2012
- 2012-12-13 CN CN201210538286.XA patent/CN103870483B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101241492A (zh) * | 2007-02-06 | 2008-08-13 | 中兴通讯股份有限公司 | 具有容量动态控制功能的内存数据存储装置及其实现方法 |
CN101127041A (zh) * | 2007-08-28 | 2008-02-20 | 激动集团股份有限公司 | 一种业务规则基础数据的缓冲方法 |
CN102129458A (zh) * | 2011-03-09 | 2011-07-20 | 胡劲松 | 关系型数据库的存储方法及装置 |
Non-Patent Citations (3)
Title |
---|
HUABASE:基于列存储的关系型数据库系统;曾春等;《计算机研究与发展》;20101013;第524-528页 * |
一种构建StreamCube的超大维表连接算法;甘亮等;《计算机研究与发展》;20110115;第48卷(第1期);第55-67页 * |
多表多记录存储管理及其应用;郭玉钗等;《计算机辅助设计与图形学学报》;19970131;第9卷(第1期);第29-34页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103870483A (zh) | 2014-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108231109B (zh) | 动态随机存取存储器dram的刷新方法、设备以及系统 | |
CN101510181A (zh) | 一种总线仲裁方法和总线仲裁装置 | |
CN109716281B (zh) | 用于非易失性存储器的用户可配置的耗损均衡的系统、方法和设备 | |
CN103870483B (zh) | 一种动态调整内存空间批量存储数据的方法 | |
EP3039683A1 (en) | Refresh rate adjust | |
KR101533957B1 (ko) | Dram 셀프 리프레쉬로부터의 고속 엑시트 | |
CN103778071A (zh) | 缓存的空间分配方法及装置 | |
CN103959388B (zh) | 用于调度包括电力状态的存储器刷新操作的方法 | |
US20190065057A1 (en) | Methods and apparatus to configure performance of a solid state drive based on host write bandwidth | |
CN101930345B (zh) | 一种基于块访问的闪存读写方法 | |
CN105489240A (zh) | 一种用于DRAM或eDRAM刷新的装置及其方法 | |
DE102020119400A1 (de) | Techniken zum setzen eines 2-ebenen-auto-schliess-timers zum zugriff auf eine speichervorrichtung | |
CN109086008A (zh) | 固态硬盘的数据处理方法以及固态硬盘 | |
CN107844436A (zh) | 一种缓存中脏数据的组织管理方法、系统及存储系统 | |
CN105373350A (zh) | 一种数据管理方法及装置 | |
CN103739383A (zh) | 食用菌菌种培养基及其制备方法 | |
CN102637148B (zh) | 一种基于ddr sdram的栈式数据缓存装置及其方法 | |
CORREIA et al. | Sowing performance by a metering mechanism of continuous flow in different slope conditions | |
CN105608050A (zh) | 数据存储方法及系统 | |
KR101689458B1 (ko) | 반도체 메모리 장치 및 반도체 메모리 장치 제어 방법 | |
CN105052304B (zh) | 一种促进甘蔗陈年杂交种子萌发的方法 | |
CN101763310B (zh) | 数据存储控制方法 | |
CN107169140A (zh) | 一种基于自动配比监控的备件库存预警系统 | |
CN106775450A (zh) | 一种混合存储系统中的数据分布方法 | |
CN103514132A (zh) | 一种用于大数据量高速率通讯的数据优化方法 |
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 | ||
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 |