数据库读写方法及装置制造方法及图纸

技术编号:14737771 阅读:65 留言:0更新日期:2017-03-01 11:16
本发明专利技术实施例公开了数据库读写方法及装置。数据库包含在终端中,数据库具有至少一个主连接和至少两个非主连接,主连接用于执行对数据库的写操作,非主连接用于执行对数据库的读操作,所述方法包括:终端获取对数据库的读操作;若读操作由第一应用发起,则使用第一非主连接执行读操作;第一应用为终端中的应用;其中,第一非主连接是预先设定的仅用于执行第一应用发起的读操作的非主连接;至少两个非主连接包括至少一个第一非主连接。采用本发明专利技术实施例所提供的方法及装置,第一非主连接仅用于执行第一应用发起的读操作,因此可以保证第一应用发起的读操作的执行效率不会受到其他应用读操作的影响。

【技术实现步骤摘要】

本专利技术实施例涉及终端领域,尤其涉及数据库读写方法及装置
技术介绍
为便于联系人信息的管理,现有终端通常采用联系人数据库保存联系人信息。终端上的应用可以通过读操作及写操作等数据库操作实现联系人信息的读写,从而实现快速拨号、联系人信息备份等功能。随着终端应用的日益多样化,需要读写联系人信息的应用也越来越多,从而使得终端所要处理的读操作及写操作也越来越多。为了提高数据库操作的执行效率,现有技术通常会采用预写日志(Write-AheadLogging,简称WAL)模式对各个应用发起的读操作及写操作进行调度。在WAL模式下,数据库的连接被分为主连接与非主连接两类,其中主连接可以执行读操作和写操作,非主连接只用于执行读操作。终端在获取到应用发起的读操作后,首先检测是否存在空闲的非主连接;如果存在空闲的非主连接,则使用空闲的非主连接执行该读操作;如果非主连接均被占用而主连接空闲,则可以使用主连接执行该读操作;如果主连接及非主连接都被占用,则会将该读操作放入待执行读操作队列的队尾,等待非主连接空闲时按照队列顺序逐一执行待执行读操作队列中的各个读操作。终端接收到应用发起的写操作之后,检测是否存在空闲的主连接;如果存在空闲的主连接,则使用空闲的非主连接执行该写操作;如果主连都被占用,则会将该读操作放入待执行写操作队列的队尾,等待主连接空闲时按照队列顺序逐一执行待执行写操作队列中的各个写操作。在实际使用中,存在对读操作执行效率较为敏感的特定应用,例如联系人应用等。如果该特定应用所发起的读操作执行效率过低,会造成这些应用或整个终端的用户体验下降。例如,如果联系人应用所发起的读操作执行效率过低,会导致终端联系人信息界面打开缓慢。而在WAL模式下,读操作执行效率受到并发的读操作数量影响,并发的读操作数量越多,读操作的执行效率越低。因此采用现有的WAL模式对各个应用发起的读操作及写操作进行调度,在并发的读操作比较多时,会严重影响读操作及写操作的执行效率,造成特定应用所发起读操作的执行效率低下。
技术实现思路
本专利技术实施例提供了数据库读写方法及装置,以解决在并发数据库操作较多时,读操作的执行效率低的问题。第一方面,本专利技术实施例提供了一种数据库读写方法,所述数据库包含在终端中,所述数据库具有至少一个主连接和至少两个非主连接,所述主连接用于执行对所述数据库的写操作,所述非主连接用于执行对所述数据库的读操作,该方法包括:所述终端获取对所述数据库的读操作;若所述读操作由第一应用发起,则使用第一非主连接执行所述读操作;所述第一应用为所述终端中的应用;其中,所述第一非主连接是预先设定的仅用于执行所述第一应用发起的读操作的非主连接;所述至少两个非主连接包括至少一个所述第一非主连接。结合第一方面,在第一方面第一种可能的实现方式中,所述方法还包括:若所述读操作由第二应用发起,则使用第二非主连接执行所述读操作;其中,所述第二应用与所述第一应用不同;所述第二非主连接是除所述第一非主连接之外的其它非主连接。结合第一方面或第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,所述方法还包括:若所述读操作由第二应用发起,则使用第二非主连接执行所述读操作;其中,所述第二应用与所述第一应用不同;所述第二非主连接是除所述第一非主连接之外的其它非主连接。结合第一方面第二种可能的实现方式,在第一方面第三种可能的实现方式中,所述方法还包括:当所有的所述第一非主连接均被占用时,检测是否存在空闲的第二非主连接;当存在空闲的所述第二非主连接时,使用空闲的所述第二非主连接执行所述读操作;其中,所述第二非主连接是除所述第一非主连接之外的其它非主连接。结合第一方面第三种可能的实现方式,在第一方面第四种可能的实现方式中,所述方法还包括:当所有的所述第二非主连接均被占用时,将所述读操作放入第一待处理队列中与所述第一应用的优先级所对应的位置。结合第一方面或第一方面第一至四种可能的实现方式其中任意一种,在第一方面第五种可能的实现方式中,所述数据库为联系人数据库。结合第一方面或第一方面第一至五种可能的实现方式其中任意一种,在第一方面第六种可能的实现方式中,所述第一应用为联系人应用。结合第一方面或第一方面第一至六种可能的实现方式其中任意一种,在第一方面第七种可能的实现方式中,所述方法还包括:所述终端获取对所述数据库的写操作;检测是否存在空闲的主连接;当存在空闲的主连接时,使用所述主连接执行所述写操作;当所有的所述主连接均被占用时,如果所述读操作由所述第一应用发起,则将所述写操作放入第二待处理队列中与所述第一应用对应的位置。第二方面,本专利技术实施例还提供了一种数据库读写装置,所述数据库包含在终端中,所述数据库具有至少一个主连接和至少两个非主连接,所述主连接用于执行对所述数据库的写操作,所述非主连接用于执行对所述数据库的读操作,所述装置包括:获取单元,用于获取对所述数据库的读操作;第一执行单元,用于在所述读操作由第一应用发起时,使用第一非主连接执行所述读操作;所述第一应用为所述终端中的应用;其中,所述第一非主连接是预先设定的仅用于执行所述第一应用发起的读操作的非主连接;所述至少两个非主连接包括至少一个所述第一非主连接。结合第二方面,在第二方面第一种可能的实现方式中,该装置还包括:第二执行单元,用于在所述读操作由第二应用发起时,使用第二非主连接执行所述读操作;其中,所述第二应用与所述第一应用不同;所述第二非主连接是除所述第一非主连接之外的其它非主连接。结合第二方面或第二方面第一种可能的实现方式,在第二方面第二种可能的实现方式中,所述第一执行单元包括:检测子单元,用于在所述读操作由所述第一应用发起时,检测是否存在空闲的所述第一非主连接;执行子单元,用于在存在空闲的所述第一非主连接时,使用空闲的所述第一非主连接执行所述读操作。结合第二方面第二种可能的实现方式,在第二方面第三种可能的实现方式中,所述检测子单元,还用于在所有的所述第一非主连接均被占用时,检测是否存在空闲的第二非主连接;所述执行子单元,还用于在存在空闲的所述第二非主连接时,使用空闲的所述第二非主连接执行所述读操作;其中,所述第二非主连接是除所述第一非主连接之外的其它非主连接。结合第二方面第三种可能的实现方式,在第二方面第四种可能的实现方式中,所述第一执行单元还包括:入队子单元,用于在所有的所述第二非主连接均被占用时,将所述读操作放入第一待处理队列中与所述第一应用的优先级所对应的位置。结合第二方面或第二方面第一至四种可能的实现方式其中任意一种,在第二方面第五种可能的实现方式中,所述数据库为联系人数据库。结合第二方面或第二方面第一至五种可能的实现方式其中任意一种,在第二方面第六种可能的实现方式中,所述第一应用为联系人应用。结合第二方面或第二方面第一至六种可能的实现方式其中任意一种,在第二方面第七种可能的实现方式中,所述获取单元,还用于获取对所述数据库的写操作;所述装置还包括第三执行单元,所述第三执行单元包括:主连接检测子单元,用于检测是否存在空闲的主连接;写操作执行子单元,用于在存在空闲的主连接时,使用所述主连接执行所述写操作;写操作入队子单元,用于在所有的所述主连接均被占用时,如果所述读操作由所述第一应用发起本文档来自技高网
...
数据库读写方法及装置

【技术保护点】
一种数据库读写方法,其特征在于,所述数据库包含在终端中,所述数据库具有至少一个主连接和至少两个非主连接,所述主连接用于执行对所述数据库的写操作,所述非主连接用于执行对所述数据库的读操作,所述方法包括:所述终端获取对所述数据库的读操作;若所述读操作由第一应用发起,则使用第一非主连接执行所述读操作;其中,所述第一应用为所述终端中的应用;所述第一非主连接是预先设定的仅用于执行所述第一应用发起的读操作的非主连接;所述至少两个非主连接包括至少一个所述第一非主连接。

【技术特征摘要】
1.一种数据库读写方法,其特征在于,所述数据库包含在终端中,所述数据库具有至少一个主连接和至少两个非主连接,所述主连接用于执行对所述数据库的写操作,所述非主连接用于执行对所述数据库的读操作,所述方法包括:所述终端获取对所述数据库的读操作;若所述读操作由第一应用发起,则使用第一非主连接执行所述读操作;其中,所述第一应用为所述终端中的应用;所述第一非主连接是预先设定的仅用于执行所述第一应用发起的读操作的非主连接;所述至少两个非主连接包括至少一个所述第一非主连接。2.如权利要求1所述的方法,其特征在于,所述方法还包括:若所述读操作由第二应用发起,则使用第二非主连接执行所述读操作;其中,所述第二应用与所述第一应用不同;所述第二非主连接是除所述第一非主连接之外的其它非主连接。3.如权利要求1或2所述的方法,其特征在于,所述若所述读操作由第一应用发起,则使用第一非主连接执行所述读操作包括:若所述读操作由所述第一应用发起,则检测是否存在空闲的所述第一非主连接;当存在空闲的所述第一非主连接时,使用空闲的所述第一非主连接执行所述读操作。4.如权利要求3所述的方法,其特征在于,所述方法还包括:当所有的所述第一非主连接均被占用时,检测是否存在空闲的所述第二非主连接;当存在空闲的所述第二非主连接时,使用空闲的所述第二非主连接执行所述读操作;其中,所述第二非主连接是除所述第一非主连接之外的其它非主连接。5.如权利要求4所述的方法,其特征在于,所述方法还包括:当所有的所述第二非主连接均被占用时,将所述读操作放入第一待处理队列中与所述第一应用的优先级所对应的位置。6.如权利要求1至5中任一项所述的方法,其特征在于,所述数据库为联系人数据库。7.如权利要求1至6中任一项所述的方法,其特征在于,所述第一应用为联系人应用。8.如权利要求1至7中任一项所述的方法,其特征在于,还包括:所述终端获取对所述数据库的写操作;检测是否存在空闲的主连接;当存在空闲的所述主连接时,使用空闲的所述主连接执行所述写操作;当所有的所述主连接均被占用时,如果所述读操作由所述第一应用发起,则将所述写操作放入第二待处理队列中与所述第一应用对应的位置。9.一种数据库读写装置,其特征在于,所述数据库包含在终端中,所述数据库具有至少一个主连接和至少两个非...

【专利技术属性】
技术研发人员:郭威熊元峰
申请(专利权)人:华为终端东莞有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1