首页 / 专利库 / 检验与质量控制 / 拆模 / 一种数据库性能优化方法

一种数据库性能优化方法

阅读:704发布:2020-05-08

专利汇可以提供一种数据库性能优化方法专利检索,专利查询,专利分析的服务。并且本 发明 创造提供了一种 数据库 性能优化方法,包括如下步骤:S1.优化数据库文件,将文件拆分;S2.优化查询,统一客户端和后台读写 接口 ,提供数据库模 块 关闭接口,查询操作采用预编译模式;S3.优化文件管理,语句 指定 索引,剔除无效索引;S4.优化读写,采用WAL日志模式,单线程写,多线程读。本发明创造所述的一种数据库性能优化方法可以化整为零的按磁盘、时间段将its.db文件拆分,提高查询速度,降低db文件损坏几率以及修复成本。,下面是一种数据库性能优化方法专利的具体信息内容。

1.一种数据库性能优化方法,其特征在于:包括如下步骤:
S1.优化数据库文件,将文件拆分;
S2.优化查询,统一客户端和后台读写接口,提供数据库模关闭接口,查询操作采用预编译模式;
S3.优化文件管理,语句指定索引,剔除无效索引;
S4.优化读写,采用WAL日志模式,单线程写,多线程读。
2.根据权利要求1所述的一种数据库性能优化方法,其特征在于:所述步骤S1包括:
A1.将数据库拆分为多个db文件,按磁盘、序号命名,文件通过tab_cfg表记录起止时间;
A2.整点对当前数据库进行判断,超过纪录条数、天数限制新建数据库;
A3.满足数据删除条件且没有数据库连接情况下删除db文件;
A4.对一定时间内未操作数据库连接关闭,避免连接数过多问题;
A5.数据库主键调整,为保证设备唯一,每个数据库文件分配id,分库key由0自增,以(id<<22)+key作为模块对外主键;
A6.数据库文件大小检测,设定2G大小非法值,超出则删除重建。
3.根据权利要求1所述的一种数据库性能优化方法,其特征在于:步骤S2包括:
B1.数据库读操作并发,同一线程注册一次数据库句柄,同一句柄后不在多线程使用;
B2.数据库读操作提供sqlite3_get_table、sqlite3_prepare两种接口;
B3.对各个磁盘查询时间段内数据库创建连接,分别查询并组合查询结果;
B4.每个数据库用户读操作线程独立,建立需要的数据库连接,当天数据库连接常开,关闭一定时间内未操作连接,避免连接数过多;
B5.提供针对磁盘初始化、故障等统一关闭接口。
4.根据权利要求1所述的一种数据库性能优化方法,其特征在于:所述步骤S3包括:
C1.默认首个可用磁盘为数据库主盘,存放config数据库文件,针对主盘格式化操作时,将config文件转存于内存,不改变主盘;
C2.数据库文件操作错误码判断数据库损坏情况,通过数据库备份或重建索引方式进行后台修复;
C3.凌晨时间段对数据库进行损坏检查,并进行修复。
C4.增加对某磁盘某天抓拍纪录重建索引,保存图片文件时按天创建文件夹,需内核重建索引支持对按磁盘、文件类型和时间段条件重建;
C5.保留bk0简单备份恢复逻辑,当前数据库通过bk0、online文件修复,过往数据通过bk0还原。
5.根据权利要求1所述的一种数据库性能优化方法,其特征在于:所述步骤S4包括如下步骤:
D1.每个磁盘创建数据库写入线程,统一执行数据库写操作;
D2.优先级低操作进入序列,并保存记录文件,以备断电重写;
D3.从队列中取多条语句,打包成事务进行写入,高优先级操作会插入当前事务,以保证及时性;
D4.提供写操作同步、异步接口,满足不同场景需求。

说明书全文

一种数据库性能优化方法

技术领域

[0001] 本发明创造属于嵌入式设备大数据领域,尤其是涉及一种数据库性能优化方法。

背景技术

[0002] 作为智能交通方案的关键一环,交通主机主要承担接收前端相机抓拍纪录,保存本地并上传平台的任务。一个路口,由一台主机接入4至8台交通相机,高峰时段接收3至5条
过车纪录,每天数据量超过20万,配合多大容量磁盘,在满磁盘状态下数据总量超过千
万。主机设备多采用嵌入式方案实现,cpu、内存等资源有限,磁盘在长时间使用下性能、稳
定性降低,在这样的条件下,设备无法满足如此大数据量存储。同样,人脸nvr、人脸服务器
等设备,也存在人脸图片抓拍量过大导致的性能问题,影响用户易用性。

发明内容

[0003] 有鉴于此,本发明创造旨在提出一种数据库性能优化方法,以在硬件资源受限的条件下,支持千万级数据库快速读写,并提高数据稳定性
[0004] 为达到上述目的,本发明创造的技术方案是这样实现的:
[0005] 一种数据库性能优化方法,包括如下步骤:
[0006] S1.优化数据库文件,将文件拆分;
[0007] S2.优化查询,统一客户端和后台读写接口,提供数据库模块关闭接口,查询操作采用预编译模式;
[0008] S3.优化文件管理,语句指定索引,剔除无效索引;
[0009] S4.优化读写,采用WAL日志模式,单线程写,多线程读。
[0010] 进一步的,所述步骤S1包括:
[0011] A1.将数据库拆分为多个db文件,按磁盘、序号命名,文件通过tab_cfg表记录起止时间;
[0012] A2.整点对当前数据库进行判断,超过纪录条数、天数限制新建数据库;
[0013] A3.满足数据删除条件且没有数据库连接情况下删除db文件;
[0014] A4.对一定时间内未操作数据库连接关闭,避免连接数过多问题;
[0015] A5.数据库主键调整,为保证设备唯一,每个数据库文件分配id,分库key由0自增,以(id<<22)+key作为模块对外主键;
[0016] A6.数据库文件大小检测,设定2G大小非法值,超出则删除重建。
[0017] 进一步的,步骤S2包括:
[0018] B1.数据库读操作并发,同一线程注册一次数据库句柄,同一句柄后不在多线程使用;
[0019] B2.数据库读操作提供sqlite3_get_table、sqlite3_prepare两种接口;
[0020] B3.对各个磁盘查询时间段内数据库创建连接,分别查询并组合查询结果;
[0021] B4.每个数据库用户读操作线程独立,建立需要的数据库连接,当天数据库连接常开,关闭一定时间内未操作连接,避免连接数过多;
[0022] B5.提供针对磁盘初始化、故障等统一关闭接口。
[0023] 进一步的,所述步骤S3包括:
[0024] C1.默认首个可用磁盘为数据库主盘,存放config数据库文件,针对主盘格式化操作时,将config文件转存于内存,不改变主盘;
[0025] C2.数据库文件操作错误码判断数据库损坏情况,通过数据库备份或重建索引方式进行后台修复;
[0026] C3.凌晨时间段对数据库进行损坏检查,并进行修复。
[0027] C4.增加对某磁盘某天抓拍纪录重建索引,保存图片文件时按天创建文件夹,需内核重建索引支持对按磁盘、文件类型和时间段条件重建;
[0028] C5.保留bk0简单备份恢复逻辑,当前数据库通过bk0、online文件修复,过往数据通过bk0还原。
[0029] 进一步的,所述步骤S4包括如下步骤:
[0030] D1.每个磁盘创建数据库写入线程,统一执行数据库写操作;
[0031] D2.优先级低操作进入序列,并保存记录文件,以备断电重写;
[0032] D3.从队列中取多条语句,打包成事务进行写入,高优先级操作会插入当前事务,以保证及时性;
[0033] D4.提供写操作同步、异步接口,满足不同场景需求。
[0034] 相对于现有技术,本发明创造具有以下优势:
[0035] (1)本发明所述的一种数据库性能优化方法化整为零的按磁盘、时间段将its.db文件拆分,提高查询速度,降低db文件损坏几率以及修复成本。
[0036] (2)本发明所述的一种数据库性能优化方法统一客户端及后台读写接口,提供数据库模块关闭接口,查询操作采用预编译模式,有效控制数据库操作质量
[0037] (3)本发明所述的一种数据库性能优化方法采用单线程写,多线程读,避免长时间写事务。
附图说明
[0038] 构成本发明创造的一部分的附图用来提供对本发明创造的进一步理解,本发明创造的示意性实施例及其说明用于解释本发明创造,并不构成对本发明创造的不当限定。在
附图中:
[0039] 图1为本发明创造实施例所述的数据库查询流程示意图;
[0040] 图2为本发明创造实施例所述的数据库写入流程示意图;
[0041] 图3为本发明创造实施例所述的数据库文件管理流程示意图

具体实施方式

[0042] 需要说明的是,在不冲突的情况下,本发明创造中的实施例及实施例中的特征可以相互组合。
[0043] 在本发明创造的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明创造和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解
为对本发明创造的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明创造的描述中,除非另
有说明,“多个”的含义是两个或两个以上。
[0044] 在本发明创造的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,
可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上
述术语在本发明创造中的具体含义。
[0045] 下面将参考附图并结合实施例来详细说明本发明创造。
[0046] 如图1至图3所示,一种数据库性能优化方法,包括如下步骤:
[0047] S1.优化数据库文件,将文件拆分;
[0048] S2.优化查询,统一客户端和后台读写接口,提供数据库模块关闭接口,查询操作采用预编译模式;
[0049] S3.优化文件管理,语句指定索引,剔除无效索引;
[0050] S4.优化读写,采用WAL日志模式,单线程写,多线程读。
[0051] 所述步骤S1包括:
[0052] A1.将数据库拆分为多个db文件,按磁盘、序号命名,文件通过tab_cfg表记录起止时间;
[0053] A2.整点对当前数据库进行判断,超过纪录条数、天数限制新建数据库;
[0054] A3.满足数据删除条件且没有数据库连接情况下删除db文件;
[0055] A4.对一定时间内未操作数据库连接关闭,避免连接数过多问题;
[0056] A5.数据库主键调整,为保证设备唯一,每个数据库文件分配id,分库key由0自增,以(id<<22)+key作为模块对外主键;
[0057] A6.数据库文件大小检测,设定2G大小非法值,超出则删除重建。
[0058] 如图1所示,步骤S2包括:
[0059] B1.数据库读操作并发,同一线程注册一次数据库句柄,同一句柄后不在多线程使用;
[0060] B2.数据库读操作提供sqlite3_get_table、sqlite3_prepare两种接口;
[0061] B3.对各个磁盘查询时间段内数据库创建连接,分别查询并组合查询结果;
[0062] B4.每个数据库用户读操作线程独立,建立需要的数据库连接,当天数据库连接常开,关闭一定时间内未操作连接,避免连接数过多;
[0063] B5.提供针对磁盘初始化、故障等统一关闭接口。
[0064] 如图2所示,所述步骤S3包括:
[0065] C1.默认首个可用磁盘为数据库主盘,存放config数据库文件,针对主盘格式化操作时,将config文件转存于内存,不改变主盘;
[0066] C2.数据库文件操作错误码判断数据库损坏情况,通过数据库备份或重建索引方式进行后台修复;
[0067] C3.凌晨时间段对数据库进行损坏检查,并进行修复。
[0068] C4.增加对某磁盘某天抓拍纪录重建索引,保存图片文件时按天创建文件夹,需内核重建索引支持对按磁盘、文件类型和时间段条件重建;
[0069] C5.保留bk0简单备份恢复逻辑,当前数据库通过bk0、online文件修复,过往数据通过bk0还原。
[0070] 如图3所示,所述步骤S4包括如下步骤:
[0071] D1.每个磁盘创建数据库写入线程,统一执行数据库写操作;
[0072] D2.优先级低操作进入序列,并保存记录文件,以备断电重写;
[0073] D3.从队列中取多条语句,打包成事务进行写入,高优先级操作会插入当前事务,以保证及时性;
[0074] D4.提供写操作同步、异步接口,满足不同场景需求
[0075] 以上所述仅为本发明创造的较佳实施例而已,并不用以限制本发明创造,凡在本发明创造的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明创造
的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈