分库分表浅析原理

news2025/1/23 7:26:57

数据库存放数据大了,查询等操作就会存在瓶颈,怎么办?

1. 如果是单张表数据大了,可以在原有库上新建几张表table_0、table1、table2、.....table_n

写程序对数据进行分表:

    --这里提供一种一种分表策略,这里只需维护分片字段与表序号的关系

伪代码:

   if(主键id % n)= x

   for( table:list [table_0、table1、table2、.....table_n ]){

       if(table.split("_")[1] = x ){

         //执行sql: INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
       }
   }

如果数据还是很大,放在一个库都嫌拥挤,那就新增数据库,与上面的同理,就是维护分片字段与某数据库和某个库里的表

伪代码:假设有n个库,每个库有m张表

   if(主键id % n)= x

   if(主键id % m) = y

那么  大表里这条数据将落在第x库里的第y张表

 执行

   connet = JDBC.connet(x)

   connet.stamet.excute(inset into y..... ) 

    

实现技术原理:

根据所使用的技术不同拦截层面有多种,我想到就有

 1. SpringMVC 的拦截器可以在Controller层面实现上述分表策略

 2. 使用Aop 进行拦截,也能实现在Controller或Service层面实现上述分表策略

 3. 单独起一个微服务进行(如网关)进行拦截实现上述分表策略

 4. 使用中间件mycat 、sharding jdbc等原理跟3是差不多的,只不过有更丰富的分表策略和更成熟的方案

当然实际我们会使用定时任务 + 线程池+本地缓存(存limit值,防重复) 去扫描大表数据    分段 select * from big_table limit 1,1000 这样分表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1495455.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VR全景数字工厂,制造业企业线上营销新助手

VR全景技术逐渐渗透到各行各业,其中,很多实体工厂的线上营销宣传也借助720云VR全景技术也迎来了新的变革。 一、VR全景技术的独特魅力 VR全景技术是一种基于虚拟现实技术的全新视觉呈现方式,能够为用户带来身临其境的沉浸式体验。通过VR全景…

Clion开发STM32之printf的缓冲区验证方式

前言 clion开发stm32时,涉及到printf函数的重写,一般我们重写__io_putchar函数经发现printf函数在没有加换行符时,数据不会立刻通过串口发送数据,而是等到1024字节之后发送数据 测试 主程序 现象 debug调试 不加换行的情况 总…

985硕的4家大厂实习与校招经历专题分享(part1)

先简单介绍一下我的个人经历: 985硕士24届毕业生,实验室方向:CV深度学习 就业:工程-java后端 关注大模型相关技术发展 校招offer: 阿里巴巴 字节跳动 等10 研究生期间独立发了一篇二区SCI 实习经历:字节 阿里 京东 B站 (只看大厂…

超简单Windows-kafka安装配置

参考大佬文章: Kafka(Windows)安装配置启动(常见错误扫雷)教程_kafka在windows上的安装、运行-CSDN博客Kafka(Windows)安装配置启动(常见错误扫雷)教程_kafka在windows上…

力扣爆刷第87天之hot100五连刷21-25

力扣爆刷第87天之hot100五连刷21-25 文章目录 力扣爆刷第87天之hot100五连刷21-25一、240. 搜索二维矩阵 II二、160. 相交链表三、206. 反转链表四、234. 回文链表五、141. 环形链表 一、240. 搜索二维矩阵 II 题目链接:https://leetcode.cn/problems/search-a-2d-…

解决cs不能生成Linux木马的问题

要解决的问题:众所周知,msf上面的shell或者是其他的shell想反弹给cs默认情况下是只支持windows的,因为cs的监听模块默认没有linux的,但是有些主机就是用linux搭建的,这可怎么办呢。就要用到一个插件CrossC2。 下载插件…

Qt 二维数组的访问与应用

配色方案有多种类型,可以根据不同的需求和应用场景来选择合适的配色方法。在柱状图、饼状图中都会用到不同的配色,本文将配色方案使用二维数组进行存储,对常用的配色进行了整理: 效果图 示例代码 void MainWindow::InitUI() {QS…

Rust入门:Rust如何调用C静态库的函数

关于Rust调用C,因为接口比较复杂,貌似Rust不打算支持。而对于C函数,则相对支持较好。 如果要研究C/Rust相互关系的话,可以参考: https://docs.rs/cxx/latest/cxx/ Rust ❤️ C 这里只对调用C静态库做一个最简短的介…

云原生架构设计:开放应用模型(OAM)的重要性与实践

在当今云计算时代,云原生架构已经成为许多企业追求的理想状态,在云原生架构设计中,开放应用模型是至关重要的一部分。本文灸哥将和你一起探讨开放应用模型的概念、意义以及实践方法,以帮助大家更好地理解和应用云原生架构中的开放…

lvs集群介绍

目录 一、LVS集群基本介绍 1、什么是集群 2、集群的类型 2.1 负载均衡群集(Load Balance Cluster) 2.2 高可用群集(High Availiablity Cluster) 2.3 高性能运算群集(High Performance Computing Cluster) 3、负载均衡集群的结构 ​编辑 4、LVS集群类型中的…

上位机图像处理和嵌入式模块部署(qmacvisual三个特色)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 了解了qmacvisual的配置之后,正常来说,我们需要了解下不同插件的功能是什么。不过我们不用着急,可以继续学习下…

K倍区间 刷题笔记

法一 前缀和暴力搜索 &#xff08;数据大会超时&#xff09; #include<iostream> #include<cstring> #include<algorithm> #include<cstdio> using namespace std; const int N100010; int a[N],s[N]; int n,k; int main(){ cin>>n>>…

面试题 -- UI控件

文章目录 一、CAAnimation的层级结构二、 UITableView优化三、离屏渲染四、Autolayout本质原理五、生成二维码的步骤 一、CAAnimation的层级结构 二、 UITableView优化 Cell复用机制Cell高度预先计算缓存Cell高度圆角切割 三、离屏渲染 指的是GPU在当前屏幕缓冲区以外新开辟…

Unity性能优化篇(九) 模型优化之LOD技术概述以及操作方法

LOD模型优化技术概述: 1.LOD技术可以根据摄像头远近来显示不同精度的模型(例如吃鸡游戏 随着跳伞高度 来显示下面树木以及建筑的模型精度) LOD模型优化技术操作方法: 可使用Unity自带的LOD Group组件&#xff0c;并根据项目的情况来调整该组件的属性。Untiy资源商店也有一些其…

Zabbix(三)

监控Nginx服务 nginx配置 增加location{} [rootwenzi ~]#vim /etc/nginx/sites-enabled/defaultserver_name _; #_是通配符。服务器将响应任何域名的请求 ...location /status { stub_status;} ...访问 http://IP/status 即可 zabbix配置 Nginx by HTTP&#xff1a;无…

VS2022打包C#安装包(最新、最全)

开发c#的一个小工具到打包环境碰壁了&#xff0c;在网上找了很多资料耶踩了很多坑&#xff0c;耗时1hour才打包完毕&#xff0c;避免以后碰到类似的问题再次记录&#xff0c;自认为步骤比较全面&#xff0c;如果有帮助麻烦点个赞呗&#xff01;&#xff01;&#xff01; 一、Mi…

Node.js 最佳实践:改善你的应用程序设计 | 开源日报 No.191

goldbergyoni/nodebestpractices Stars: 92.4k License: CC-BY-SA-4.0 Node.js Best Practices 是一个关于 Node.js 最佳实践的开源项目。该项目汇总了许多顶级内容&#xff0c;包括 80 多个最佳实践、样式指南和架构技巧。以下是该项目的核心优势和主要功能&#xff1a; 提供…

基于el-tree实现懒加载穿梭条

一、关键代码 <template><div><!-- 左侧待选列表 --><div class"left-box"><p>待选列表</p><el-input placeholder"输入关键词过滤" v-model"leftFilterText" clearable/><el-treeref"tree…

css3中nth-child属性作用及用法剖析

hello宝子们...我们是艾斯视觉擅长ui设计和前端开发10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 标题&#xff1a;CSS3中nth-child属性作用及用法剖析 摘要&#xff1a;CSS3中的nth-child选择器允许我们根据元素位置来定位特定的元素…

最简单的基于 FFmpeg 的 AVDevice 例子(读取摄像头)

最简单的基于 FFmpeg 的 AVDevice 例子&#xff08;读取摄像头&#xff09; 最简单的基于 FFmpeg 的 AVDevice 例子&#xff08;读取摄像头&#xff09;简介libavdevice 使用注意事项源程序结果工程文件下载参考链接 最简单的基于 FFmpeg 的 AVDevice 例子&#xff08;读取摄像…