lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  1846 随笔 :: 0 文章 :: 109 评论 :: 288万 阅读

随笔分类 -  数据库

摘要:MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。 事务:MySQL对于事务默认是不支持的,只有某些存储引擎中如:innodb可以支持。而Oracle对于事务是完全支 阅读全文
posted @ 2020-11-24 16:27 白露~ 阅读(193) 评论(0) 推荐(0) 编辑

摘要:引子 从Mysql5开始,innoDB引擎支持XA协议的分布式事务。DTP模型中,一个TM(事务管理器管理)管理多个RM(资源管理器),每个RM维护自己的事务分支。在看源码之前我们看一下底层DB mysql对XA事务的支持。 回到顶部 1. XA语法 官网:13.3.8.1 XA Transacti 阅读全文
posted @ 2020-11-24 12:14 白露~ 阅读(595) 评论(0) 推荐(0) 编辑

摘要:简介: 这个对于我们常用的分库分表方案来说,有很大的优势,分库分表的扩容是一件头疼的问题,如果采用对db层做一致性hash,或是中间价的支持,它的成本过于高昂了,如果不如此,只能停机维护来处理,对高可用性会产生影响。 这个对于我们常用的分库分表方案来说,有很大的优势,分库分表的扩容是一件头疼的问题, 阅读全文
posted @ 2020-11-24 11:23 白露~ 阅读(193) 评论(0) 推荐(0) 编辑

摘要:一般来说数据库是通过一个微服务逻辑统一访问,通常数据库访问两个库的架构图如下所示: 随着数据量的增大,数据库要进行水平切分,分库后将数据分布到不同的数据库实例(甚至物理机器)上,以达到降低数据量,增强性能的扩容目的。 如上图所示,用户库user分布在四个实例上,ip0和ip1,服务层通过用户标识ui 阅读全文
posted @ 2020-11-24 11:21 白露~ 阅读(336) 评论(0) 推荐(0) 编辑

摘要:一、缘起 (1)并发量大,流量大的互联网架构,一般来说,数据库上层都有一个服务层,服务层记录了“业务库名”与“数据库实例”的映射关系,通过数据库连接池向数据库路由sql语句以执行: 如上图:服务层配置用户库user对应的数据库实例物理位置为ip(其实是一个内网域名)。 (2)随着数据量的增大,数据要 阅读全文
posted @ 2020-11-24 11:19 白露~ 阅读(210) 评论(0) 推荐(0) 编辑

摘要:(1) 对事务的提交 MySQL默认是自动提交,而Oracle默认不自动提交,需要用户手动提交,需要在写commit;指令或者点击commit按钮(2) 分页查询 MySQL是直接在SQL语句中写"select... from ...where...limit x, y",有limit就可以实现分页 阅读全文
posted @ 2020-11-24 11:02 白露~ 阅读(192) 评论(0) 推荐(0) 编辑

摘要:对于 sql 性能的判断,你是否还是通过百度,看看人家的博客,通过别人的回答 做出判断,或是凭自己的一点知识加上猜想呢?如果是,那么你将很被动,百度出来的经验我们无法判断是否正确,如果出了问题,可能就不知道怎么办了 。其实我们完全可以通过分析得到我们想要的答案。 分析需要工具,今天我就给大家介绍两个 阅读全文
posted @ 2020-11-21 13:32 白露~ 阅读(343) 评论(0) 推荐(0) 编辑

摘要:背景 分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在微服务架构中,几乎可以说是无法避免。 ACID 指数据库事务正确执行的四个基本要素: 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durabi 阅读全文
posted @ 2020-11-20 19:45 白露~ 阅读(2240) 评论(0) 推荐(0) 编辑

摘要:https://tech.meituan.com/2017/04/21/mt-leaf.html 背景 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在美团点评的金融、支付、餐饮、酒店、猫眼电影等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,数据 阅读全文
posted @ 2020-11-20 18:10 白露~ 阅读(237) 评论(0) 推荐(0) 编辑

摘要:前言:分区是指根据一定的规则,数据库把一个表分解成多个更小的,更容易管理的部分。分区对应用来说是完全透明的,不影响应用的业务逻辑。 MySQL分区的优点: 1、和单个磁盘或者文件系统分区相比,可以存储更多数据; 2、优化查询。在Where字句中包含分区条件时,可以只扫描必要的一个或多个分区来提高查询 阅读全文
posted @ 2020-11-20 14:41 白露~ 阅读(251) 评论(0) 推荐(0) 编辑

摘要:文章目录 一,需求缘起: 二,解决什么问题? 三,mysql常见的水平切分方式有哪些? 四,什么是mysql的分库分表? 五,什么是mysql的分区表? 六,总结 一,需求缘起: 有个朋友问我分区表在我们公司的应用,我回答不出来,在我印象中,百度、腾讯都没有听说有分区表相关的应用,业内进行一些技术交 阅读全文
posted @ 2020-11-20 14:26 白露~ 阅读(322) 评论(0) 推荐(0) 编辑

摘要:1、什么是表分区? mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看), 一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的,一个是myi存表索引的。如果一张表的数据量太大的话,那么myd, 阅读全文
posted @ 2020-11-20 14:24 白露~ 阅读(815) 评论(0) 推荐(0) 编辑

摘要:对用户来说,分区表示一个独立的逻辑表,但是底层由多个物理子表组成。 实现分区的代码实际上是对一组底层表的句柄对象的封装。对分区表的请求,都会通过句柄对象转换成对存储引擎的接口调用。 MYSQL 实现分区表的方式-》 对底层表的封装 -》意味着索引也是按照分区的子表定义,而没有全局索引。 分区的一个主 阅读全文
posted @ 2020-11-20 14:23 白露~ 阅读(216) 评论(0) 推荐(0) 编辑

摘要:目录 一、查看MySQL是否支持分区 1、MySQL5.6以及之前版本 2、MySQL5.7 二、分区表的分类与限制 1、分区表分类 2、分区表限制 三、创建分区表 1、range分区 2、list分区 3、hash分区 4、key分区 5、Column分区 6、子分区(组合分区) 四、普通表转换为 阅读全文
posted @ 2020-11-20 14:22 白露~ 阅读(577) 评论(0) 推荐(0) 编辑

摘要:一. 数据切分 关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间。 数据库分布式核心 阅读全文
posted @ 2020-11-19 20:22 白露~ 阅读(203) 评论(0) 推荐(0) 编辑

摘要:之前有不少刚入坑 Java 的粉丝留言,想系统的学习一下分库分表相关技术,可我一直没下定决心搞,眼下赶上公司项目在使用 sharding-jdbc 对现有 MySQL 架构做分库分表的改造,所以借此机会出一系分库分表落地实践的文章,也算是自己对架构学习的一个总结。 我在网上陆陆续续的也看了一些有关于 阅读全文
posted @ 2020-11-19 20:17 白露~ 阅读(418) 评论(0) 推荐(0) 编辑

摘要:目录 一.分分合合 1.1 分 2.2 合 二.分区 2.1 实现方式 2.2 内部文件 2.3 数据处理 三.分库分表 3.1 实现 3.2 分布式数据库中间件 3.3 内部文件 3.4 问题 四.总结 回到顶部 一.分分合合 说过很多次,不要拘泥于某一个技术的一点,技术是相通的。重要的是编程思 阅读全文
posted @ 2020-11-19 20:12 白露~ 阅读(443) 评论(0) 推荐(0) 编辑

摘要:一、数据库瓶颈 不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。 1、IO瓶颈 第一种:磁盘读IO瓶颈,热点数据太多,数据库缓 阅读全文
posted @ 2020-11-19 20:10 白露~ 阅读(983) 评论(1) 推荐(1) 编辑

摘要:分区(加快访问速度) 什么时候分区? 一张表的查询速度已经慢到影响使用的时候。 sql经过优化 数据量大(表的大小超过2GB,一般单表撑死1000万条) 表中的数据是分段的(表中包含历史数据,新的数据被增加都新的分区中) 对数据的操作往往只涉及一部分数据,而不是所有的数据 从应用程序的角度来看,分区 阅读全文
posted @ 2020-11-19 20:06 白露~ 阅读(287) 评论(0) 推荐(0) 编辑

摘要:一、概念 1.为什么要分表和分区?日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕。分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高 阅读全文
posted @ 2020-11-19 18:18 白露~ 阅读(198) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示