名词解释 库:database;表:table;分库分表:sharding 数据库架构演变 刚开始我们只用单机数据库就够了,随后面对越来越多的请求,我们将数据库的写操作和读操作进行分离, 使用多个从库副本(Slaver Replication)负责读,使用主库(Master)负责写, 从库从主库同步 ...
分类:
其他好文 时间:
2019-07-09 09:31:10
阅读次数:
116
MySQL数据库调优 定位慢查询得到生产环境那些sql语句响应慢,根据执行计划进行分析调优事物管理索引结构(B+树)平衡二叉树、B树、B+树分库分表后,如何解决查询 使用第三方数据库中间件(MyCat、Sharding-JDBC) 什么使用RedisSpring IOC原理 Logstash与MQ实 ...
分类:
编程语言 时间:
2019-07-08 10:50:58
阅读次数:
136
传统的单体架构的时候,我们基本是单库然后业务单表的结构。每个业务表的ID一般我们都是从1增,通过 设置自增起始值,但是在分布式服务架构模式下分库分表的设计,使得多个库或多个表存储相同的业务数据。这种情况根据数据库的自增ID就会产生相同ID的情况,不能保证主键的唯一性。 如上图,如果第一个订单存储在 ...
分类:
其他好文 时间:
2019-07-08 09:21:06
阅读次数:
125
菜哥,领导让我开发新系统了 这么说领导对你还是挺信任的呀~ 必须的,为了设计好这个新系统,数据库设计我花了好多心思呢 做一个系统我觉得不应该从数据库入手,应该从设计业务模型开始,先不说这个,说说你的数据库设计的优势 为了高性能我首先设计了分库 分表策略,为以后打下基础 那你的数据量将来会很大吗?分库 ...
分类:
其他好文 时间:
2019-07-08 09:20:30
阅读次数:
120
前言 当我们的数据量逐渐膨胀,一张表的数据量变得非常巨大以致于影响性能时,我们需要一种手段来将表拆分成若干表以提高性能,这就是分表。当我们的数据量继续膨胀,我们单机数据库中已经存在非常多的子表,并且数据库服务器承受不了这样大量的请求时,我们需要一种手段将单机数据库的压力分摊到若干数据库,这就是分库。 ...
分类:
其他好文 时间:
2019-07-02 00:22:19
阅读次数:
96
一、垂直拆分 垂直拆分就是要把表按模块划分到不同数据库表中(当然原则还是不破坏第三范式) 二、水平拆分 垂直切分只是把表按模块划分到不同数据库,但没有解决单表大数据量的问题,而水平切分就是要把一个表按照某种规则把数据划分到不同表或数据库里。 Scale-up与Scale-out区别 Scale Ou ...
分类:
数据库 时间:
2019-06-24 16:41:01
阅读次数:
178
一 什么是分布式系统唯一ID 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。 如在金融、电商、支付、等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求,此时一个能够生成全局唯一ID的系统是非常必要的。 二、分布式系统唯 ...
分类:
其他好文 时间:
2019-06-23 22:53:11
阅读次数:
123
Shark简介 前身为Kratos,轻量级Mysql分库分表(Sharding)中间件,丰富的Sharding算法支持(2类4种分片算法),能够方便DBA实现库的水平扩容和降低数据迁移成本。Shark站在巨人的肩膀上(SpringJdbc、Druid),采用与应用集成架构,放弃通用性,只为换取更好的 ...
分类:
数据库 时间:
2019-06-21 18:28:13
阅读次数:
132
水平拆分的概念随着分布式数据库的推广已为大部分人熟知。分库分表、异构索引、小表广播、这些功能几乎是产品功能需求标配。然而有些客户使用分布式数据库后的体验不尽如意。本文尝试从数据的角度总结分布式数据的复制(replication)和分区(partition)技术原理和方案,其中分区也有称为分片(sha... ...
分类:
数据库 时间:
2019-06-18 21:48:05
阅读次数:
215