数据库-分库分表
文章平均质量分 79
OkidoGreen
这个作者很懒,什么都没留下…
展开
-
了解TiDB基础入门
由于目前的项目把mysql换成了TiDb,所以特意来了解下tidb。其实也不能说换,由于tidb和mysql几乎完全兼容,所以我们的程序没有任何改动就完成了数据库从mysql到TiDb的转换,TiDB 是一个分布式 NewSQL SQL 、 NoSQL 和 NewSQL 的优缺点比较 数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致的高可用特性,是一个不仅适合 OLTP 场景还适合 OLAP 场景的混合数据库。下面是对有关资料的整理还有一些扩展内转载 2020-07-03 21:34:42 · 664 阅读 · 0 评论 -
Sharding-JDBC教程
https://blog.csdn.net/forezp/article/details/94173427https://blog.csdn.net/forezp/article/details/94174577https://blog.csdn.net/forezp/article/details/94343671https://blog.csdn.net/forezp/article/details/94174114转载 2020-06-12 18:54:06 · 677 阅读 · 0 评论 -
shardingjdbc之shardingjdbc入门
在上文中,我们讲解了分布式环境下的分库分表,从概念及案例上分析了何为分库分表及其优缺点。我说分布式之分库分表从本文开始我们一起学习一下如何使用当前比较成熟的分库分表框架 Sharding-JDBC 实现分库分表。什么是Sharding-JDBCSharding-JDBC是分布式数据中间件Sharding-Sphere中的重要组成部分,官方的介绍如下:Sharding-Sphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Pro转载 2020-06-12 18:53:22 · 1655 阅读 · 0 评论 -
SpringBoot使用Sharding-JDBC分库分表
1.有关Sharding-JDBC有关Sharding-JDBC介绍这里就不在多说,之前Sharding-JDBC是当当网自研的关系型数据库的水平扩展框架,现在已经捐献给Apache,具体可以查看Github,地址是:shardingsphere.apache.org/document/cu…shardingsphere文档地址是:shardingsphere.apache.org/document/cu…。目前貌似还不能从Maven仓库下载依赖,需要手动下载源码打包使用,所以本文使用的还是当当转载 2020-06-12 18:41:54 · 854 阅读 · 0 评论 -
深度认识 Sharding-JDBC:做最轻量级的数据库中间层
对于这样一个项目,想必大家都会关心它的开发初衷和适用场景等相关问题。下面先来看看张亮老师对于这些问题的解答。Q:Sharding-JDBC的设计初衷是什么?旨在解决什么场景的问题?Sharding-JDBC 的设计初衷是想提供一个数据库中间层,用于透明的处理分库分表,而无需业务开发人员在业务代码中根据分片键生成 SQL。第一版的分库分表并不是现有的 Sharding-JDBC,而是当当的一个内部框架 ddframe 的数据库模块,dd-rdb 的其中一项功能就是分库,没有分表功能,当时只是做.转载 2020-06-12 18:18:20 · 978 阅读 · 0 评论 -
TiDB 到底有什么用
如今硬件的性价比越来越高,网络传输速度越来越快,数据库分层的趋势逐渐显现,人们已经不再强求用一个解决方案来解决所有的存储问题,而是通过分层,让缓存与数据库负责各自擅长的业务场景。当前数据库领域面临各种问题,如在缩放、一致性、大数据分析、与云基础架构集成等方面均存在诸多问题,现有的数据库解决方案和大数据分析引擎解决方案基本处于割裂的状态,由于 Oracle、MySQL 数据库并不是面向分布式环境而设计,因此即使勉强通过分库、分表或中间件的方式,在数据库层面做了分片,从本质上看也只是复制了相同的堆栈,而非针转载 2020-06-11 16:12:44 · 1107 阅读 · 0 评论 -
分表分库解决方案(mycat,tidb,shardingjdbc)
1.sharding-jdbc(sharding-sphere)优点:1.可适用于任何基于java的ORM框架,如:JPA、Hibernate、Mybatis、Spring JDBC Template,或直接使用JDBC2.可基于任何第三方的数据库连接池,如:DBCP、C3P0、Durid等3.分片策略灵活,可支持等号、between、in等多维度分片,也可支持多分片键。4.SQL解析功能完善,支持聚合、分组、排序、limit、or等查询,并支持Binding Table以及笛卡尔积表查转载 2020-06-11 15:29:31 · 2664 阅读 · 0 评论 -
sharding-JDBC学习笔记
ShardingSphereShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。 他们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。ShardingSphere定位为关系型数据库中间件,旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关转载 2020-06-11 14:55:57 · 789 阅读 · 0 评论 -
Mycat入门教程
mycat介绍介绍在官方网站上有比较详细的介绍,在这里复制粘贴没什么意思,大家到官网上看 官网链接前置条件本教程是在window环境下运行的,实际生产推荐在Linux上运行。必备条件(自行安装,如果不会装请先打好基础在来学习):JDK:建议是1.7及其以上。 MySQL:必须是5.5及其以上。拓扑结构两张表users和item,三个数据库db01,db02,db03(...转载 2020-02-18 20:48:53 · 573 阅读 · 0 评论 -
MyCat入门+JAVA程序连接
本文章主要对mycat的配置文件注释说明,详细的安装使用请戳这个地址:mycat安装使用连接mycat时,将原先连接mysql的端口和数据库改为mycat的端口8066,和mycat的逻辑数据库TESTDB,用户名和密码为server.xml表里设定的user。jdbc.url=jdbc:mysql://127.0.0.1:8066/TESTDB?characterEncoding=utf...转载 2020-02-18 20:01:16 · 993 阅读 · 0 评论 -
分库分表浅谈
https://www.jianshu.com/p/3fed6db29a01 什么是分库分表顾名思义,分库分表就是按照一定的规则,对原有的数据库和表进行拆分,把原本存储于一个库的数据分块存储到多个库上,把原本存储于一个表的数据分块存储到多个表上。为什么需要分库分表随着时间和业务的发展,数据库中的数据量增长是不可控的,库和表中的数据会越来越大,随之带来的是更高的磁盘、IO、系...转载 2018-10-15 10:06:57 · 696 阅读 · 1 评论 -
flickr 的全局主键生成方案
http://blog.csdn.net/zhangxtn/article/details/50183447flickr 的全局主键生成方案类似于京东的数据库设计,我们的用户分库有 Shop_1/2/3/4 … 那么uid怎样生成?现在的做法是在用一张索引表 Shop_share.user_index 取其自增主键,insert_id 便是uid。但缺点是,转载 2017-07-25 14:51:51 · 922 阅读 · 0 评论 -
数据库Sharding的基本思想和切分策略
http://blog.csdn.net/bluishglc/article/details/6161475/本文着重介绍sharding的基本思想和理论上的切分策略,关于更加细致的实施策略和参考事例请参考我的另一篇博文:数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示 一、基本思想 Sharding的基本思想就要把一个转载 2017-07-18 11:03:12 · 712 阅读 · 0 评论 -
关于垂直切分Vertical Sharding的粒度
垂直切分的粒度指的是在做垂直切分时允许几级的关联表放在一个shard里.这个问题对应用程序和sharding实现有着很大的影响.关联打断地越多,则受影响的join操作越多,应用程序为此做出的妥协就越大,但单表的路由会越简单,与业务的关联性会越小,就越容易使用统一机制处理.在此方向上的极端方案是:打断所有连接,每张表都配有路由规则,可以使用统一机制或框架自动处理.比如amoeba转载 2017-07-18 11:08:44 · 716 阅读 · 0 评论 -
数据库水平切分的实现原理解析——分库,分表,主从,集群,负载均衡器(转)
第1章 引言随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。水平切分数据库:可以降低单台机器的负载,同时最大限度的降低了宕机造成的损失;负载均衡策略:可以降低单台机器的访转载 2017-07-18 11:58:23 · 734 阅读 · 0 评论 -
数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示
http://blog.csdn.net/bluishglc/article/details/7696085本文原文连接: http://blog.csdn.net/bluishglc/article/details/7696085 ,转载请注明出处!本文着重介绍sharding切分策略,如果你对数据库sharding缺少基本的了解,请参考我另一篇从基础理论全面介绍shardi转载 2017-07-18 12:13:35 · 1204 阅读 · 0 评论 -
关于数据库的水平切分和垂直切分的一些概念(转)
http://www.cnblogs.com/zr520/p/5449748.html垂直拆分 垂直拆分就是要把表按模块划分到不同数据库表中(当然原则还是不破坏第三范式),这种拆分在大型网站的演变过程中是很常见的。当一个网站还在很小的时候,只有小量的人来开发和维护,各模块和表都在一起,当网站不断丰富和壮大的时候,也会变成多个子系统来支撑,这时就有按模块和功能把表划分出转载 2017-07-13 14:10:58 · 976 阅读 · 0 评论 -
使用Replace into 生成全局唯一主键(flickr)
CREATETABLE`Sequence_test_table`( `id`bigint(20)NOTNULLAUTO_INCREMENT,`stub`char(1)NOTNULL,`UpdateTime`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMEST原创 2017-03-13 15:17:01 · 4348 阅读 · 0 评论 -
表的垂直拆分和水平拆分
https://www.kancloud.cn/thinkphp/mysql-design-optimalize/39326垂直拆分垂直拆分是指数据表列的拆分,把一张列比较多的表拆分为多张表通常我们按以下原则进行垂直拆分:把不常用的字段单独放在一张表;把text,blob等大字段拆分出来放在附表中;经常组合查询的列放在转载 2017-07-19 16:52:29 · 899 阅读 · 0 评论 -
数据库分库分表(sharding)系列(二) 全局主键生成策略
http://blog.csdn.net/bluishglc/article/details/7710738本文将主要介绍一些常见的全局主键生成策略,然后重点介绍flickr使用的一种非常优秀的全局主键生成方案。关于分库分表(sharding)的拆分策略和实施细则,请参考该系列的前一篇文章:数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示 本文原文连转载 2017-07-19 16:53:45 · 858 阅读 · 0 评论 -
数据库分库分表(sharding)系列(四) 多数据源的事务处理
系统经sharding改造之后,原来单一的数据库会演变成多个数据库,如何确保多数据源同时操作的原子性和一致性是不得不考虑的一个问题。总体上看,目前对于一个分布式系统的事务处理有三种方式:分布式事务、基于Best Efforts 1PC模式的事务以及事务补偿机制。我们下面对这三种处理方式一一进行分析。本文原文链接:http://blog.csdn.net/bluishglc/article/deta转载 2017-07-25 11:27:08 · 1286 阅读 · 0 评论 -
数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案
版权声明:本文由本人撰写并发表于2012年9月份的《程序员》杂志,原文题目《一种支持自由规划的Sharding扩容方案——主打无须数据迁移和修改路由代码》,此处作为本系列的第五篇文章进行转载, 本文版权归《程序员》杂志所有,未经许可不得转载!作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分表的Sh转载 2017-07-25 11:27:50 · 1201 阅读 · 0 评论 -
数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量
当团队对系统业务和数据库进行了细致的梳理,确定了切分方案后,接下来的问题就是如何去实现切分方案了,目前在sharding方面有不少的开源框架和产品可供参考,同时很多团队也会选择自主开发实现,而不管是选择框架还是自主开发,都会面临一个在哪一层上实现sharding逻辑的问题,本文会对这一系列的问题逐一进行分析和考量。本文原文连接: http://blog.csdn.net/bluishglc/art转载 2017-07-21 16:00:04 · 1006 阅读 · 0 评论