分库:

1、数据库分库而不是分表,分表需要考虑后期的查询问题,此外还需要注意分表的算法(哈希算法)。

2、热数据只占全部数据的一部分,因此每次优先查询热库,以下情况才查询冷库

-  当查询条件未命中(结果集为空)时,查询冷库。

-  当查询条件部分命中时,查询冷库。

3、为了区分部分命中和全部命中,可以在热库中建一张R表存放每次查询冷库的查询条件和查询结果数量和查询结果的主键,每次查询热库时,对比相同查询条件的查询结果数量是否一致。一致,则本次查询结束。不一致,则需要到冷库中进行查询。

4、更优方案:不一致的情况,只到冷库中查询未查到的数据。此时R表需要存放的不仅是查询结果数量,还有查询结果的所有主键。

5、举例说明:100条中80条还是热数据 20条变成了冷数据,其实应该只是对冷数据库发起这20条数据的请求。此时需要将R表数据拿出来比对,只查一部分冷数据。

6、热库=>冷库 : 查询和使用热数据时,将一段时间不再使用的热数据移到冷库。

7、冷库=>热库 :查询冷库时,将本次查询的结果移到热库,附上最新查询日期。

8、数据同步(每次查询进行或达到一定量级进行)

9、关于命中的处理:制定查询条件字典 如 where a=? and b=? 这个条件的字典为

public static IDictionary QueryKeyValues=new IDictionary{

(0,1),(1,2),(3,3)

}

先进行查询条件的字典命中处理=> 假设此时的查询方法为 queryFunction(int a,int b)

queryFunction(int a,int b) {}

public object QueryFunction(int a,int b) {

1.若 存在于 QueryKeyValues中则到R表中找出查询条件为的IdString都有哪些 以此将Id分开存取

2.获得IdString后 比对需要到冷库查询的List singleId

3.循环执行单条语句查询逻辑 SingleColdDBQuery(List singleId)

}

分表:

举个简单的例子,按数据的新旧分表

eg:比如我现在有一个订单表,日均写入几万几十万数据进去,可以这样处理,存储数据的时候存储双份,order表存一份数据,order_history表同样也存一份数据,然后呢,order表弄一个定时任务,每天定期删除30天以上的数据(一般半夜删数据),一天无非几万条数据,性能影响几乎没有,不过量多的话,删除就要小心点,不然很容易就锁表,可以查一下一个月前的数据的区间范围(表的主键id范围),然后呢按区间删除,几千几千的删除(可以自行调节,保证 IOPS跟CUP别跑满就行),这样就能保证不会锁表;order_history表不做任何删除操作,只插入新的数据,保留最原始的数据。

说一下表的查询,一个月以内的数据直接在order表查询就行,一个月以上的旧数据在history表查,order_history表的查询可以配合搜索引擎进行处理(比如阿里云的opensearch),每次查出对应的主键id(节省opensearch的流量,要钱的!),然后再去order_history根据主键查数据,这里底层封装好就行

mysql冷热分离的技术_冷热数据分离思路相关推荐

  1. mysql数据库存储多语言_数据库---数据控制语言(DCL)

    mysql中,权限是系统内定的一些"名词"(单词),大约30个,每个权限表示"可以做什么工作". 则分配权限就是相当于让某个用户可以做哪些工作. 主要权限如下: ...

  2. C#语言和SQL Server数据库技术_程序数据集散地:数据库

    一.新建数据库: 1.右键点击数据库点击新建 2.命名数据库,初始大小可设置 3.选择保存路径,点击确定建立数据库 二.分离和附加数据库 1.分离 (1)鼠标右键选择要分离的数据库  -->  ...

  3. 多备份cloud 5技术:传统数据备份思路的完美移植

    多备份是专注于业务数据云端备份.恢复.迁移.存储和归档的云平台(SaaS)应用提供商.其中,为了实现数据的足够安全,我们采用了自主研发的cloud 5技术. 问题的来源 2014年2月份,一位用户匆匆 ...

  4. hadoop应用开发技术..._大数据技术与应用——万物皆可数据化

    万|物|皆|可|数|据|化 大数据技术与应用  专业概况 专业名称:大数据技术与应用 专业代码:610215 专业方向:数据可视化技术 数据采集与处理  行业趋势  近几年来,互联网行业发展风起云涌, ...

  5. mysql数据库集群技术_使用MySQL-Cluster搭建MySQL数据库集群

    1.MySQL集群的作用: - 解决访问节点的单点故障 - 数据存储节点的单点故障 - 解决数据存储节点数据备份问题 2.集群: 使用一组服务器提供相同的服务 3.关于MySQL-Cluster: M ...

  6. 网页防篡改技术_大数据让档案“活”起来:用区块链技术防篡改,用量子加密技术防盗窃...

    梵瀚科技带来了"档案管理+区块链+量子加密"这一技术,吸引了众多目光. 网络时代,档案信息在形成.处理.传输.存储和利用的各个阶段,都面临着安全风险.档案怎么玩,电子档案到底能保密 ...

  7. python大数据技术_大数据技术python

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  8. 大数据搜索引擎技术_网络数据搜索技术

    大数据搜索引擎技术 Nowadays this is a very big problem to search appropriate data on web search engines. This ...

  9. mysql修改字段占用磁盘_给数据减肥 让MySQL数据库跑的更快

    [IT168 专稿]在数据库优化工作中,使数据尽可能的小,使表在硬盘上占据的空间尽可能的小,这是最常用.也是最有效的手段之一.因为缩小数据,相对来说可以提高硬盘的读写速度,并且在查询过程中小表的内容处 ...

最新文章

  1. 咋样回复计算机桌面删除的东西,被删除的文件怎么恢复 四个妙招巧解决【图解】...
  2. Android中获取定位经纬度信息
  3. C:C++ 函数返回多个参数
  4. Python使用TCP协议编写会聊天的小机器人
  5. I00011 打印包含7的三位数
  6. matlab2c使用c++实现matlab函数系列教程-sum函数
  7. 程序员35岁之后的职业发展
  8. 中小学数字化标准音乐教室建设及设备配套方案
  9. js中获取当前url路径
  10. 【Python】Talk Python To Me Podcast播客
  11. 小波分析中db1,db2,db3小波有何不同?
  12. python交互式程序设计导论答案第五周_学堂在线_计算机科学与Python编程导论_章节测试答案...
  13. 机器人李继红_李继宏
  14. 安装验证jmeter是否成功
  15. python常用字体显示方框_seaborn模块中,图表中文字体变成方块的问题如何解决?...
  16. 将闲置的Ipad作为Windows的副屏(Twomon SE)
  17. wifi信息流如何做?联系谁?
  18. maya建模的方法有很多种,你知道几种?这里有你们常见的吗?
  19. 什么叫分销商_分销是什么意思?
  20. Robust Initialization of Monocular Visual-Inertial Estimation on Aerial Robots

热门文章

  1. The Recent Ten Years
  2. conda安装 tensorflow-gpu出现错误
  3. 半物理仿真系统——EPB HIL系统解决方案
  4. mac word打印一张红色(带颜色)的A4纸
  5. 博客开篇 : 温故而知新
  6. 苹果换芯简史:芯片如何改变苹果的电脑产品线?
  7. python朋友圈刷屏_“Python太火了!请救救Java!”9万程序员刷屏朋友圈 !
  8. resnet50中的bottleneck
  9. cocos2dx-html5 实现网页版flappy bird游戏
  10. 你要记得那些大雨中为你撑伞的人,帮你挡住外来之物的人。。。——村上春树 2021.11.13日 早上11点