一、缘起(1)并发量大,流量大的互联网架构,一般来说,数据库上层都有一个服务层,服务层记录了“业务库名”与“数据库实例”的映射关系,通过数据库连接池向数据库路由sql语句以执行:如上图:服务层配置用户库user对应的数据库实例物理位置为ip(其实是一个内网域名)。(2)随着数据量的增大,数据要进行水平切分,分库后将数据分布到不同的数据库实例(甚至物理机器)上,以达到降低数据量,增强性能的扩容目的:
分类:
数据库 时间:
2020-11-18 13:09:39
阅读次数:
15
《TopK到底怎么答?》介绍了TopK的四种解法,其中随机选择(randomizedselect)最为经典,用减治法(Reduce&Conquer)的思想,将数据规模急速降低,总体复杂度为O(n)。结尾挖了一个坑:求TopK,有没有比随机选择更快的方法呢?空间换时间,是算法优化中最常见的手段,如果有相对充裕的内存,可以有更快的算法。画外音:即使内存不够,也可以水平切分,使用分段的方法来操作
分类:
其他好文 时间:
2020-11-17 12:08:41
阅读次数:
5
一、基本概念概念一:单库概念二:分片分片解决“数据量太大”这一问题,也就是通常说的“水平切分”。一旦引入分片,势必面临“数据路由”的新问题,数据到底要访问哪个库。路由规则通常有3种方法:(1)范围:range优点:简单,容易扩展。缺点:各库压力不均(新号段更活跃)。(2)哈希:hash优点:简单,数据均衡,负载均匀。缺点:迁移麻烦(2库扩3库数据要迁移)。(3)统一路由服务:router-conf
分类:
数据库 时间:
2020-11-10 11:28:38
阅读次数:
11
文章目录 学习之前先了解下分库分表概念:https://spiritmark.blog.csdn.net/article/details/109524713 一、ShardingSphere简介 在数据库设计时候考虑垂直分库和垂直分表。随着数据库数据量增加,不要马上考虑做水平切分,首先考虑缓存处理, ...
分类:
其他好文 时间:
2020-11-07 15:48:46
阅读次数:
20
1.分库分表介绍1.使用背景当表的数量达到几百上千张表时,众多的业务模块都访问这个数据库,压力会非常的大,考虑对其进行分库当表的数据达到几千万级别,在做很多操作的时候比较吃力,考虑对其进行分库或者分表2.数据切分方案数据气氛根据其切分规则的类型,可以分为两种切分模式:垂直切分:按照业务模块进行切分,将不同模块的表切分到不同的数据库中。水平切分:将一张大表按照一定的切分规则,按照行切分成不同的表或者
分类:
数据库 时间:
2020-08-18 13:38:21
阅读次数:
76
整理自:https://mp.weixin.qq.com/s/8KTK_Bz8netP6R5MNSKeFw 搬运贴,如果有侵权请联系删除 场景:用户注册登录,用户中心服务查询 问题:当数据量越来越大,例如达到1亿注册量时,库无法承载所有的数据,此时需要对数据库进行水平切分。 常见的水平切分算法有“范 ...
分类:
其他好文 时间:
2020-07-15 15:26:15
阅读次数:
66
1 * 数据库 auto_increment 优点: 简单 缺点: 受限于单机 解决方案: 使用冗余主库,数据水平切分 2 批量获取 优点 :降低服务压力 缺点: 单点 , 数据空洞 改进:单点 修改为影子服务 VIP+ keepalive 3 uuid/guid 优点: 唯一 ,无io 缺点: 无 ...
分类:
其他好文 时间:
2020-06-12 20:25:27
阅读次数:
89
模拟这样一个场景: 1、将数据库按业务“垂直”拆分成用户库和订单库; 2、用户库做主从,读写分离; 3、订单库做“水平”切分,并且每个分片表做主从,读写分离; 一、垂直切分 1、准备两个MySQL数据库 2、MyCat的配置文件 schema.xml server.xml (主要是修改schemas ...
分类:
其他好文 时间:
2020-02-19 00:37:46
阅读次数:
70
分库分表介绍 随着微服务这种架构的兴起,我们应用从一个完整的大的应用,切分为很多可以独立提供服务的小应用。每个应用都有独立的数据库。 数据的切分分为两种: 垂直切分:按照业务模块进行切分,将不同模块的表切分到不同的数据库中。 水平切分:将一张大表按照一定的切分规则,按照行切分到不同的表或者不同的库中 ...
分类:
数据库 时间:
2020-02-04 10:56:57
阅读次数:
92
先上官方文档:Mycat-docMycat权威指南常用配置文件间的关系由上图可以看到Mycat的核心配置文件均采用xml格式,这几个配置文件的用途如下:server.xml:用于配置系统参数、用户信息、访问权限及SQL防火墙和SQL拦截功能等schema.xml:用于配置逻辑库、逻辑表相关信息rule.xml:如果使用了水平切分,就需要使用该文件配置切分规则log4j2.xml:Mycat日志相关
分类:
其他好文 时间:
2020-01-10 15:35:25
阅读次数:
696