CN107656936B - 一种即时通信领域的终端数据库构建方法 - Google Patents
一种即时通信领域的终端数据库构建方法 Download PDFInfo
- Publication number
- CN107656936B CN107656936B CN201610595093.6A CN201610595093A CN107656936B CN 107656936 B CN107656936 B CN 107656936B CN 201610595093 A CN201610595093 A CN 201610595093A CN 107656936 B CN107656936 B CN 107656936B
- Authority
- CN
- China
- Prior art keywords
- database
- group member
- group
- message
- information
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- 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/23—Updating
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Library & Information Science (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种即时通讯领域的终端数据库构建方法,本发明通过将数据库涉及的各种数据分为***信息数据库、群成员数据库和聊天消息数据库;所述***信息数据库中信息包括最近联系人、好友、个人设置、***配置和群组;所述群成员数据库中信息包括群成员信息和群成员时间戳;所述聊天消息数据库中的信息包括聊天消息。采用本发明的数据库构建方法能能大大降低即时通讯应用/软件的终端开发难度,减少开发时间,降低开发的资金、时间成本;能够显著提高及时通讯应用/软件的执行效率,降低能耗提高用户的使用体验;在使用后期终端聊天数据备份维护的时候,使用存档数据库进行备份,不影响当前数据库继续提供快速的读写服务,便于备份维护。
Description
技术领域
本发明涉及即时通信领域,具体涉及一种即时通信领域的终端数据库构建方法。
背景技术
即时通信,指的是一种基于互联网的即时交流消息的业务,也称为“实时通信”,简称为IM。允许两人或多人使用网络实时的传递文字消息,文件,语音和视频交流。
在当前各种桌面设备,移动设备普及的情况下,及时通信领域的市场需求***性地增长,软件和应用数量也大幅度的增长。但是实际使用中好的产品却不多,大部分产品使用体验较差,或者是开始安装使用的时候体验较好,使用一段时间后***越来越慢,体验变差。
造成这样的现象一部分是由于网络IO没处理好,这个会涉及到服务器部分,终端开发人员没办法完全解决;一部分是磁盘IO没有处理好,也就是终端缓存数据没有处理好。由于现在终端缓存的结构化数据基本都在本地数据库存储,实际上是数据库处理的问题,这个就在终端可以处理好。
在工程应用中,提高数据库效率的方法基本上都是增加索引,或者分表的方法。但是具体到某个领域,又有不同的特点。不同领域的软件或者应用有不同的业务特点,同一领域的产品又有不同的功能侧重点,所以设计一套即时通信领域的高效本地缓存数据库处理方法成为一个重要的课题。
现有的终端数据库大多采用的处理方法是用损失缓存数据的方法或者不分类别,不优化处理等不成熟的方法。但是,这样最终会造成***的整体效率不高,使用人员的体验不好。
也有一些软件/应用使用了数据库优化方法,但是也存在不少问题:1.优化手段单一,常规的办法就是加索引,由于没有根据实际业务分类,随着数据量的增大常会出现越使用越慢的情况;2.进行分表优化,缺乏***的方法论,全靠开发人员的经验,影响工作的交接,常会出现数据不同步,资源浪费的情况。
发明内容
本发明的目的在于,为解决上述技术问题,提供一种可以在大数据量的情况下,保证***的整体效率的即时通信领域的终端数据库构建方法。
为解决上述技术问题,本发明采用如下的技术方案:一种即时通信领域的终端数据库构建方法,步骤包括:将数据库涉及的各种数据分为***信息数据库、群成员数据库和聊天消息数据库;所述***信息数据库中信息包括最近联系人、好友、个人设置、***配置和群组;所述群成员数据库中信息包括群成员信息和群成员时间戳;所述聊天消息数据库中的信息包括聊天消息。
如前述的即时通信领域的终端数据库构建方法,用于存储所述***信息数据库中信息的数据表放在一个单独数据库中,在***运行时可以缓存到内存中,也可以直接操作数据库。
如前述的即时通信领域的终端数据库构建方法,所述群成员数据库包括群成员信息表,用于存储所述群成员信息,所述群成员信息的名称根据群的唯一ID来动态生成;所述群成员信息表个数与群个数相同。
如前述的即时通信领域的终端数据库构建方法,对所述群成员信息的进行读取时,可以根据群的唯一ID找到群成员数据库表,读取只在所述群成员数据库表上进行。
如前述的即时通信领域的终端数据库构建方法,所述群成员数据库还包括群成员时间戳表,用于记录各个群成员时间戳信息。
如前述的即时通信领域的终端数据库构建方法,所述聊天消息数据库包括:当前消息数据库和历史存档数据库;所述聊天消息包括:当前消息和历史存档消息;并分别存储于所述消息数据库和历史存档数据库的消息表中,所述消息表的名称根据聊天对象的唯一ID动态生成。
如前述的即时通信领域的终端数据库构建方法,所述当前消息数据库和历史存档数据库的消息表均包括联系人消息表及群消息表。
如前述的即时通信领域的终端数据库构建方法,所述当前消息数据库的联系人消息表及群消息表存储的消息数量具有上限阈值,在所述消息数量大于所述阈值时,删除较早的消息,保持所述联系人消息表及群消息表里的条目数不大于所述阈值。
如前述的即时通信领域的终端数据库构建方法,在有新消息到来的时候先写当前消息数据库,后写历史存档数据库。
与现有技术相比,本发明通过将数据库涉及的各种数据分为***信息数据库、群成员数据库和聊天消息数据库;所述***信息数据库中信息包括最近联系人、好友、个人设置、***配置和群组;所述群成员数据库中信息包括群成员信息和群成员时间戳;所述聊天消息数据库中的信息包括聊天消息,使用该方法能大大降低即时通信应用/软件的终端开发难度,减少开发时间,降低开发的资金、时间成本;能够显著提高及时通讯应用/软件的执行效率,降低能耗提高用户的使用体验;在使用后期终端聊天数据备份维护的时候,使用存档数据库进行备份,不影响当前数据库继续提供快速的读写服务,便于备份维护。
附图说明
图1为本发明方法流程示意图;
图2为本发明中加载***信息数据库流程图;
图3为本发明中加载群成员数据库流程图;
图4为本发明中加载群成员数据库流程图。
下面结合附图和具体实施方式对本发明作进一步的说明。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
本发明实施例1,如图1所示,所述***信息数据库中信息包括最近联系人、好友、个人设置、***配置和群组;用于存储所述***信息数据库中信息的数据表放在一个单独文件数据库中,可命名为MAIN_DB;
***信息数据库中文件因为数量不大,在***运行中可以缓存到内存中,也可以直接操作数据库,对***的性能及体验影响不大;
再建立群成员数据库GMBER_DB;群成员数据库中信息包括群成员信息和群成员时间戳;
群成员数据库中的群成员信息表,表的名称可以根据群的唯一ID来动态生成。比如群的唯一ID为10000,群成员表的名称可以命名为gbr_10000_tbl。有多少个群,就有多少张群成员信息表;
群成员数据库中的群成员时间戳表,用于记录各个群成员时间戳信息;
及时通讯中对群成员信息的读取得时候,可以根据群的唯一标识找到数据库表,读取只在这张表上进行,操作数据集较小,并且不影响其他群的读写操作;
再建立聊天消息数据库MSG_DB,OLDMSG_DB。MSD_DB为当前消息数据库,OLDMSG_DB为历史存档数据库;
MSG_DB里面只有一种表,就是消息表,表的名称可以根据聊天对象的唯一ID来动态生成;
聊天对象分为人和群,如果人和群的ID是同一体系,比如聊天对象的ID为10000,消息表的名称可以命名msg_10000_tbl;
如果人和群的ID不是同一体系,比如群的ID为10000,群消息表的名称可以命名为msg_1_10000_tbl,人的ID为10000,人消息表的名称可以命名为msg_2_10000_tbl。
MSG_DB和OLDMSG_DB数据库结构一样,表名和表的数量都一样;
MSG_DB里面的表存储的消息有数量上限,可以设置一个最大消息数阈值,适用的大部分场景是使用者需要快速查看最近聊天信息记录的场景,由于每张表中的数据量小,所以可以快速的进行检索;
OLDMSG_DB里面存储是在本地产生的全部历史信息,表的命名方式和MSG_DB相同,表的数量也相同;
MSG_DB表里有一最大消息数阈值,当里面的消息数量大于这个阈值的时候,删除较早的消息,保持每张表里的条目数不大于该阈值。
由于消息读的次数和读时候的体验远远大于写消息的时候,所以有新消息到来的时候先写MSG_DB里的当前表,后写OLDMSG_DB的历史表。
应用/软件在认证通过后,如图2所示,加载***信息数据库流程:先从服务器加载数据的时间戳,再根据本地时间戳和服务器时间戳进行比对,先加载***信息数据库,最后保存数据到MAIN_DB中。
如图3所示,加载群成员数据库:首先在群组表里找到群group_1,获取群成员时间戳,如果群成员时间戳表不存在,则建立数据库GMBER_DB,建立群成员表gbr_1_tbl,比对本地时间戳和网络时间戳,更新群gbr_1_tbl的成员数据表。
如图4所示,加载群成员数据库:在群group_1中发送消息,网络接口调用成功后,产生消息msg1,判断消息数据库MSG_DB是否存在,如果不存在,则建立数据库MSG_DB。判断msg_g1_tbl是否存在,如果不存在,则再建立表msg_g1_tbl表,并将聊天数据msg1***msg_g1_tbl表;
判断历史数据库OLDMSG_DB是否存在,如果不存在,则建立数据库OLDMSG_DB。判断OLDMSG_DB是否存在表msg_g1_tbl,如果不存在,则建立表msg_g1_tbl。然后将消息数据msg1***msg_g1_tbl;
最后判断msg_g1_tbl表的数据量是否大于消息阈值5000条,如果大于该阈值,则批量删除消息到2000条,保留最近的2000条。
在需要查看群group_1的最新10条消息记录时,判断MSG_DB是否存在,如果不存在,返回。如果存在,判断消息表msg_g1_tbl是否存在,如果不存在,返回。如果存在,到msg_g1_tbl查询消息记录,由于单表数据库量不超过5000条,使用的SQLITE数据库基本查询在毫秒级返回。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (8)
1.一种即时通信领域的终端数据库构建方法,其特征在于,步骤包括:将数据库涉及的各种数据分为***信息数据库、群成员数据库和聊天消息数据库;所述***信息数据库中信息包括最近联系人、好友、个人设置、***配置和群组;所述群成员数据库中信息包括群成员信息和群成员时间戳;所述聊天消息数据库包括当前消息数据库和历史存档数据库,所述聊天消息数据库中的信息包括聊天消息;
用于存储所述***信息数据库中信息的数据表放在一个单独数据库中,在***运行时可以缓存到内存中,用于直接操作数据库;
所述群成员数据库中包括群成员信息表和群成员时间戳表;所述群成员信息表包括:群ID和群成员;所述群成员时间戳表用于记录各个群成员时间戳;其中,每个群对应一张群成员信息表;
所述方法还包括:加载群成员数据库,包括:在群组表里找到群标识,根据所述群标识,从述群成员时间戳表中获取群成员时间戳,比对本地时间戳和网络时间戳,更新群标识对应的群成员信息表;其中,网络时间戳为从服务器加载的相应数据的时间戳。
2.如权利要求1所述的即时通信领域的终端数据库构建方法,其特征在于,所述群成员数据库包括群成员信息表,用于存储所述群成员信息,所述群成员信息的名称根据群的唯一ID来动态生成;所述群成员信息表个数与群个数相同。
3.如权利要求1所述的即时通信领域的终端数据库构建方法,其特征在于,对所述群成员信息的进行读取时,可以根据群的唯一ID找到群成员数据库表,读取只在所述群成员数据库表上进行。
4.如权利要求1所述的即时通信领域的终端数据库构建方法,其特征在于,所述群成员数据库还包括群成员时间戳表,用于记录各个群成员时间戳信息。
5.如权利要求1所述的即时通信领域的终端数据库构建方法,其特征在于,所述聊天消息数据库包括:当前消息数据库和历史存档数据库;所述聊天消息包括:当前消息和历史存档消息;并分别存储于所述消息数据库和历史存档数据库的消息表中,所述消息表的名称根据聊天对象的唯一ID动态生成。
6.如权利要求5所述的即时通信领域的终端数据库构建方法,其特征在于,所述当前消息数据库和历史存档数据库的消息表均包括联系人消息表及群消息表。
7.如权利要求6所述的即时通信领域的终端数据库构建方法,其特征在于,所述当前消息数据库的联系人消息表及群消息表存储的消息数量具有上限阈值,在所述消息数量大于所述阈值时,删除较早的消息,保持所述联系人消息表及群消息表里的条目数不大于所述阈值。
8.如权利要求7所述的即时通信领域的终端数据库构建方法,其特征在于,在有新消息到来的时候先写当前消息数据库,后写历史存档数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610595093.6A CN107656936B (zh) | 2016-07-26 | 2016-07-26 | 一种即时通信领域的终端数据库构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610595093.6A CN107656936B (zh) | 2016-07-26 | 2016-07-26 | 一种即时通信领域的终端数据库构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107656936A CN107656936A (zh) | 2018-02-02 |
CN107656936B true CN107656936B (zh) | 2021-03-02 |
Family
ID=61127403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610595093.6A Active CN107656936B (zh) | 2016-07-26 | 2016-07-26 | 一种即时通信领域的终端数据库构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107656936B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108989062B (zh) | 2018-07-25 | 2020-05-01 | 北京达佳互联信息技术有限公司 | 更新群成员数据的方法、装置、终端、***及存储介质 |
CN109446204B (zh) * | 2018-11-27 | 2022-04-15 | 北京微播视界科技有限公司 | 一种即时通信的数据存储方法、装置、电子设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1992625A (zh) * | 2005-12-28 | 2007-07-04 | 腾讯科技(深圳)有限公司 | 基于即时通讯的多议题讨论组信息流的处理方法 |
US7725552B2 (en) * | 2006-01-24 | 2010-05-25 | Markport Limited | Content and service delivery in telecommunication networks |
CN101997783A (zh) * | 2009-08-21 | 2011-03-30 | 阿里巴巴集团控股有限公司 | 即时通讯工具联系人结构化分组的实现方法及服务器 |
-
2016
- 2016-07-26 CN CN201610595093.6A patent/CN107656936B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1992625A (zh) * | 2005-12-28 | 2007-07-04 | 腾讯科技(深圳)有限公司 | 基于即时通讯的多议题讨论组信息流的处理方法 |
US7725552B2 (en) * | 2006-01-24 | 2010-05-25 | Markport Limited | Content and service delivery in telecommunication networks |
CN101997783A (zh) * | 2009-08-21 | 2011-03-30 | 阿里巴巴集团控股有限公司 | 即时通讯工具联系人结构化分组的实现方法及服务器 |
Non-Patent Citations (1)
Title |
---|
QQ5.9.1版本;乐游网;《QQ5.9.1》;20160720;图1-4 * |
Also Published As
Publication number | Publication date |
---|---|
CN107656936A (zh) | 2018-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391758B (zh) | 数据库切换方法、装置及设备 | |
CN109033360B (zh) | 一种数据查询方法、装置、服务器及存储介质 | |
CN103607312B (zh) | 用于服务器***的数据请求处理方法及*** | |
CN109582470B (zh) | 一种数据处理方法及数据处理装置 | |
KR20110079740A (ko) | 데이터 동기화를 위한 검색 기반 사양 | |
US10824612B2 (en) | Key ticketing system with lock-free concurrency and versioning | |
US11507277B2 (en) | Key value store using progress verification | |
CN111414424B (zh) | 一种配置数据自动同步redis的方法、***、介质及设备 | |
CN111654532A (zh) | 一种配置文件集中管理***、方法及装置 | |
CN111930768A (zh) | 增量数据获取方法、发送方法、装置及其计算机存储介质 | |
CN107656936B (zh) | 一种即时通信领域的终端数据库构建方法 | |
CN113076290A (zh) | 文件删除方法、装置、设备、***及存储介质 | |
US11080239B2 (en) | Key value store using generation markers | |
CN114356878A (zh) | 一种非结构化数据分布式存储方法及装置 | |
CN108280215B (zh) | 一种基于Solr的电商索引文件的混合式更新方法 | |
EP3343395A1 (en) | Data storage method and apparatus for mobile terminal | |
KR20160026138A (ko) | 클라우드 데이터 시스템의 급속 동기화 방법 및 그를 이용한 클라우드 데이터 시스템 | |
CN106549983B (zh) | 一种数据库的访问方法及终端、服务器 | |
US10248314B2 (en) | Migrate nickname cache for email systems and devices | |
CN110888847A (zh) | 一种回收站***及文件回收方法 | |
CN113905022B (zh) | 一种群聊构建方法、设备及存储介质 | |
CN116049306A (zh) | 数据同步方法、装置、电子设备以及可读存储介质 | |
CN108763498B (zh) | 用户身份识别方法、装置、电子设备及可读存储介质 | |
CN114328129A (zh) | 消息发送方法、装置、设备及存储介质 | |
CN115080504A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |