• 0755-82538016
  • 0755-82560826
  • 深圳网站建设_APP小程序开发_博纳网络

    • 网站建设案例
      • ";

        营销网站建设

        全网营销网站

        高端网站建设

        商城网站建设

        外贸网站建设

        小程序开发

        区块链开发

        物联网项目开发

        定制app开发

        在线教育网站

        速成网站建设

        服装网站建设

        餐饮网站建设

        珠宝首饰网站

        机械制造网站

        文化旅游网站

        家装建材网站

        美容化妆品网站

        数码产品网站

        模板案例库

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 网站推广
      • ";

        网站优化基础

        建站优化

        网站优化

        营销推广

        整站优化

        推广帮助

        谷歌搜索

        推广方案

        推广套餐

        推广技巧

        百度排名

        巧用微博推广

        直播视频网站推广法

        微信推广网站方法

        网站外链推广

        公共微信号推广

        网站优化闲谈

        常见问题

        公司资讯

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 网站制作资讯
      • ";

        网站制作

        外贸网站建设

        网站设计

        网站代运营

        深圳网站建设专栏

        深圳小程序开发

        网站改版

        APP开发

        网站建设方案

        安全维护

        软件开发

        平台搭建

        建站行业资讯

        域名注册

        虚拟主机

        企业邮局

        国外主机

        VPS独享空间

        免备案香港服务器

        如何解析域名

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 网站报价
      • ";

        网站报价

        建站方案

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 公司动态
      • ";
        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 关注博纳
      • ";

        网站制作精英团队

        网站建设公司愿景

        公司介绍

        主营业务

        博纳文化

        加入博纳

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 联系我们
      • ";

        网站建设公司联系方式

        网站建设、网站制作公司乘车路线

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
      网站制作资讯

      当前位置:

        主页网站制作资讯APP开发聊天类型APP项目开发经验之数据库架构

      聊天类型APP项目开发经验之数据库架构

      发布时间:2018-11-23

      文章编辑:网站建设 文章来源:APP开发 浏览量:次

        APP项目开发对于聊天功能制作数据库架构的演进,深圳APP开发公司结合多年项目开发经验整理归纳了几种当前主要形式,一般数据库架构的演进过程如下:
      ·单机部署。
      ·读写分离,从主从到主多从。
      ·分表分库。
        社交App后台数据库架构的演进也是类似的.前两个阶段是比较通用,在分表分库阶段除了使用,博纳网络在前面APP开发时“分库”一文中介绍的数据库分布式处理软件MyCAT外,还能用业务层的分表分库策略。我们可能会有疑惑,为啥不用数据库分布式处理软件而要在业务层实现分表分库?APP开发公司程序员认为因为在业务层实现分表分库可以获得更大的灵活性.例如可以实现冷热数据的分离存储:最近的数据存储在高性能的设备上,旧的历史数据存储在廉价的设备以节省成本。下面介绍社交App后台数据库在业务层实现分表分库的方案。数据库的分表分库,首先要解决的是数据库自增id问题。
      1.社交类APP开发聊天功能数据库自增id处理方案
        数据库分表分库后,程序聚合了多张表的数据时有可能出现的问题是出现重复的id。在实现分表分库前,id是采用在表中自增的策略当表分散后就不能保证id的唯一性。为了保证分表后id的唯一而且自增,需要个全局统的发id号服务。
        假设业务上每秒峰值写入是100万,如果采用全局统的发id号服务,就是要区分每秒的100万条数据。多数互联网同行公司都会有自己的发id号算法,常见使用的是time+sequeue设计方式。例如,设计中id的长度为64位,则id的前32位(可表示数值。-4294967295)精确到秒(用时间戳表示),中间20位(可表示数值0-1048575)就可以表示O-100万之间的任意整数(即sequeue),最后12位存放其他业务信息。
      2.APP开发聊天类功能处理方案之分表分库策略
      常见的分表分库策略有下面两种
      ·按hash拆分。
      ·按时间拆分。
      (1)按hash拆分
        按照特定的hash算法,把张表的数据分布到多张表。例如,把内容表分为4张表,根据发表内容的用户id做hash运算,用算法id%4就能计算出这条数据落在哪张表上,如图9-19所示。
      按hash拆分是最常见、最简单的分表分库方案,适合于分表分库的前中期使用,在这个阶段数据库的数据通常有下面的特点。
      ·数据规模可控。
      ·增长速度可控。
      APP开发公司发现hash拆分有下面的缺点
      ·特殊用户的查询性能低。如果某些用户数据特别多,按照用id值hash策略会造成数据集中在某个数据表,造成查询和写入操作都集中在某一张表上。
      ·冷热数据没法分离存取。例如某些热点数据可以放在价格高、读写性能强的硬盘上提高凄写速度,玲门的数据可放在价格低、读写性能稍弱的硬盘。对于社交类的App来说,热门数据一般就是用户最近发表的内容,按照用户id值,hash分表没法满足这个需求。
      APP开发公司提醒您如果采用下面介绍的按时间拆分的策略,可以弥补hash分表的缺点。
      (2)按时间拆分
        按时间拆分的策略是将同时间段的数据放在同一张表,不同时间段的数据放在不同的表。例如,2015年9月份发表的内容记录在表
      “table 201509”。时间拆分如图9-20所示。
      APP开发聊天功能数据库结构示意图9-20时间拆分
      (3)综合的策略
        分表分库中可以综合使用hash和时间两种分表分库策略:用户发表内容,先按照用户的id的值hash到具体的库,再按照时间落到具体的表,如图9-21所示。
      APP开发经验分享之数据库图9-21综合使用hash和时间两种分表分库
        在图9-21中实现的是种数据库内的冷热数据分离策略,还有种更大范围内的分表分库方案可以实现玲热数据分离,先按照年份选定一个数据库集群,在集群内部按照用户id hash到具体的库,再按照月份确定到具体的表,如图9-22所示。
      APP开发经验分享图9-22更大范围的分表分库策略
        按照时间拆分Feed数据后需要解决个问题:因为社交类App常见的业务场景是显示用户最近发表的内容,怎么快速查找用户最近发表的内容?例如这样的需求:快速找到id为1001的用户最近发表的5条内容,难道要把图9-20中的4张表都查找一遍吗?这样效率太低了。
        解决这个问题需要引入一个二级索引表,通过这个二级索引表查找到具体的数据,如图9-23所示。
                  APP开发经验数据库所以表处理方案示意图9-23二级索引
      例如需要查找id为l001的用户的最近发表的5条数据,按图9-23的表结构,可在二级索引表“table_index”获知有3条数据在索引表“table 201509”,有2条数据在索引表“table 201508”。通过索引表“table 201509”查到3条数据的feed_id为5552、5551、5550.通过索引表“table 201508”查到2条数据的id为4552、4551,根据查找到的id很容易就能获取到详细的数据。好了,APP开发公司本文关于我们在制作聊天社交类APP时对于数据库演进处理方案的详细方法就分享到这里,谢谢您的关注,希望给您的APP开发项目以及后期管理时的工作有所帮助。博纳网络编辑整理。

      当前文章链接:/construction/appkaifa/1786.html
      上一篇:开发社交APP的基本结构表与推拉模式的制作方法 下一篇:社交APP开发聊天功能缓存架构升级实操流程
      返回列表
      如果您觉得案例还不错请帮忙分享:

      [声明]本网转载网络媒体稿件是为了传播更多的信息,此类稿件不代表本网观点,本网不承担此类稿件侵权行为的连带责任。故此,如果您发现本网站的内容侵犯了您的版权,请您的相关内容发至此邮箱【qin@198bona.com 】,我们在确认后,会立即删除,保证您的版权。

      相关案例推荐

      • 西湖艺术博览会

        西湖艺术博览会

        企业网站

        西湖艺术博览会

      • 苍迪电商

        苍迪电商

        企业网站

        苍迪电商

      • Sweet basil女装

        Sweet basil女装

        服装服饰

        Sweet basil女装

      资讯分类

      • 网站制作
      • 外贸网站建设
      • 网站设计
      • 网站代运营
      • 深圳网站建设专栏
      • 深圳小程序开发
      • 网站改版
      • APP开发
      • 网站建设方案
      • 安全维护
      • 软件开发
      • 平台搭建
      • 建站行业资讯
      • 域名注册
      • 虚拟主机
      • 企业邮局
      • 国外主机
      • VPS独享空间
      • 免备案香港服务器
      • 如何解析域名

      最新发布

      • 社区APP开发上线后影响用户使用的粘性有哪些?
      • 为什么说大健产业O2OAPP开发潜力无限
      • 网络公司对社区O2OAPP开发基本认识
      • 工业4.0时代怎样做好一个APP的开发工作?
      • APP开发公司分析APP应用开发下一个巨头在哪些领域?
      • APP电子商务平台开发前景如何?
      • 社交类型APP开发需要具备的五个必要条件
      • 社交类型APP平台开发使用小程序还是APP模式好?
      • 使用HTML语言开发APP商城可以吗?
      • 社区O2OAPP开发的方向选择

      相关资讯

      • APP网站制作流程以及栏目分布
      • 企业网站优化人员面对搜索引擎的困惑
      • 企业门户网站如何做好针对搜索引擎的优化工作
      • APP/PC购物商城网站如何做好产品图片的优化技巧
      • 网站软文内容以及网站外链存在的几种形式对网站有多大影响
      • 如何做好网站软文标题的描述更适合搜索引擎的需要?
      • 网站建设好后期出现被搜索引擎降权的几个主要因素
      • 小程序开发制作前途取决于市场,别被您的同行抢了先机
      • APP开发公司提醒您关注:电商平台要求商家“二选一”引多方不满 专家提建议
      • APP为什么会在我们的手机界面上变成僵尸图标?

      热门搜索

      • 手机网站建设
      • 商城网站建设
      • 淘宝tTP公司
      • tP外包
      • 影视网站建设
      • APP开发
      • 网站设计
      • 品牌网站建设
      • 商业网站制作
      • 深圳网站建设

      Copyright © 2021 博纳网络 版权所有  粤ICP备17054727号

      • 🏠

        首页

      • 💬

        咨询

      • 📞

        通话

      • 📂

        案例

      • ⬆

        返回