bitsCN.com
Mysql在数据量大的情况下,会遇到水平分表的情况。
1. 根据业务属性拆表
这种分表方式的算法大致是取模,hash,md5等。
用业务属性拆表,业务关系复杂的情况下,如果要根据其他条件查询,其他的条件都必须和这个属性关联起来,查询条件必须带有这个属性。
例子:
用户profile表根据用户ID取模进行水平拆分。
社区里有群组,群组里有应用,应用有各种类型。可以用群组ID,应用ID拆表。
问题:
根据某个条件查询时无法获取拆表的属性
1) 条件中含有分表的信息
比如用户在某网站下了订单,我们根据用户ID对订单进行了分表,这样用户可以方便地查询他所关联的订单。但用户投诉时,客服需要根据订单号查询订单,订单号中可以含有分表的信息,比如订单拆分成100张表,订单号中可以有两位用来表明该订单处于哪张表中
2) 用key-value store存储对应关联
原理是用key value store做索引表
3) 数据冗余
需要关联的表可以进行数据冗余。避免了查询。
例子:
购买礼品。购买虚拟礼品时,我们根据了购买者的ID进行了拆表,同时订单号中也含有了分表信息。但是用户还可能根据被赠送方进行查询,这时我们可以在购买成功后为被赠送方冗余生成一条记录。
4) 缓存,NOSQL
和数据冗余类似。例子中提到的群组应用的拆表例子,我们已经按照群组ID和应用类型进行了分表。但是当我要查询最近所有类型的应用时,就遇到困难了。我们需要把该群组的所有应用类型都查询一遍,而且还要再进行排序,分页等等。其实,可以用缓存的方式存储最近几百条应用。
2. 根据时间拆表
当表的关系比较复杂时,无法根据某个维度进行分表。但是有明显的时效性。
例子:
想必大家都用微薄,某人发的微薄,会被推送到千家万户。所以某条微薄是无法根据用户ID进行分表查询。而微薄是有很强的时效性的。一年前的默认的动态信息是不会再关心的。我们把微薄按时间分表,三个月一张表。而行级缓存(memcached)只存储了一个月。用户微薄收件箱(微薄ID列表)一般都是限长的。当缓存服务器重启或不命中时,需要查询Mysql,mysql按时间分表,缓存不命中的情况下,大部分情况下都是查近三个月的微薄。所以近1年的微薄我们可以存储在物理资源比较好的数据库服务器上。
3. 根据自增长ID拆表
这种分割法不是取模分,而是每张表存指定量的数据。如果数据量到了,就存放到新表中。这样可以完全控制每张表的数据量。关系非常简单并且有时效性的情况下可以用。
4. 数据迁移的方式
当一些很久之前的数据,很少再查询。比如员工工资表,我们可以只存今年的工资情况。而历史数据我们可以迁移到一张salary_old表中,保证数据不会丢失。但也可以用来查询。
分库的原理也类似。
by 第零空间 bitsCN.com

MySQLvs.TiDB:谁更适合你的业务?随着互联网和大数据的快速发展,数据存储和管理成为企业业务中重要的一部分。在选择合适的数据库解决方案时,很多企业都遇到了MySQL和TiDB这两个选择。本文将比较MySQL和TiDB的特点和优势,帮助你确定哪一个更适合你的业务。MySQL是一个开源的关系型数据库管理系统,早在1995年就诞生

前言最近这段ChatGPT真的非常火,和ChatGPT相关的AI 服务也是各种如火如荼的研究中。今天我们来看下ChatGPT在编码方面的应用,最近发现一个叫做“AI Coding Assistant” 的IntelliJ IDEA插件,它就是集合了ChatGPT的技术,我们来看看有多么的智能,是否以后真的有可能会代替我们程序员的工作。插件安装为了开始使用该插件,必须要有一个 OpenAI 的令牌。如果你不知道在哪里可以找到它,可以在https://platform.openai.c

融合通信业务是指通信技术和信息技术的融合业务,可以为中国移动手机用户、IMS固话用户和传统固话用户提供语音、传真、视频通话、被叫一号通等服务,并能够将三类用户统一组网,提供融合V网业务,为用户实现跨网络、跨区域、跨终端的融合通信。

好的软件不是靠程序分析、查错查出来的,而是由正确的人构建出来的。图成为日益重要的运算对象,图结构是对群体关系的一种抽象,可以描述丰富的对象和关系。图计算的核心是如何将数据建模为图结构以及如何将问题的解法转化为图结构上的计算问题,当问题涉及到关联分析时,图计算往往能够使得问题的解法很自然地表示为一系列对图结构操作和计算的过程。例如,使用基于网页链接的图结构的PageRank算法得到网页权重,作为搜索引擎排序的参考,利用图结构的用户行为数据来得到精确的群体偏好分析和个性化产品推荐结果。1.什么是图计

一、问题与挑战从图中可以看到,从17年开始,vivo的机器规模、服务数量都有很大的增长。在机器规模方面,从17年到22年大概是增长了五倍的左右,在服务数量方面也是基本上增长了十几倍。在规模增长的情况下,挑战和复杂度肯定随之上升,在vivo比较典型的挑战主要分为变更挑战和故障挑战。1、变更挑战变更中还是存在着或多或少的手工变更场景;我们的单次的发布时间是比较长的;存在很多的业务大量迁移的场景;谷歌SRE有这样一个概念:70%的故障是由变更引起的。对应到vivo也确实是存在这种情况,变更对线上稳定性

ChatGPT果然开始取代人类了!美国《财富》杂志网站近日报道,工作建议平台Resumebuilder.com对1,000名使用或计划使用ChatGPT的商业领袖进行了调查。结果显示,美国近50%的企业已经开始用ChatGPT了。大约一半的人表示,ChatGPT已经取代了他们公司的员工。果然,该来的还是来了!一半的美国公司在用ChatGPT了根据对这些企业领导者的调查,ChatGPT几乎涵盖了公司所有层面的业务。企业使用ChatGPT的原因有很多,66%用于写代码,58%用于写文案,57%用于客

标题:字节跳动在业务中是否使用Golang?探究与实例分析在当下的互联网行业中,Golang作为一种高效、简洁、并发性能优秀的编程语言,受到了越来越多公司的青睐。其中,以内容分享和短视频为主要业务的字节跳动公司,在其技术栈中是否也使用了Golang呢?本文将对字节跳动在业务中使用Golang的情况进行探究,并通过具体的代码示例来进行分析。Golang在字节跳

本文经AI新媒体量子位(公众号 ID: QbitAI)授权转载,转载请联系出处。受硅谷银行倒闭事件波及的科技公司,可以稍微松口气了。一方面,科技行业富豪已出手救急:ChatGPT背后公司OpenAI的CEO山姆·阿尔特曼(Sam Altman)就被曝,已经给因硅谷银行发不出工资的公司,提供了总额超过100万美元的资金援助。并且什么借条啊文件啊都没要,只是说“等你有钱了再还我”。另一方面,美国监管机构确定兜底。根据美国财政部、美联储(Fed)和美国联邦存储保险公司(FDIC)发布的联合声明,硅谷银


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具