291 天前 / yes的练级攻略
我,小 Y。 此刻,正坐在办公室里等待面试,心情 xue 微有点忐忑,不知道待会儿老面试官经不经得住我的折磨。 只见一抹光亮闪过,面试官推门而入,我抬头望去,强者的气息铺面而来,没错是那味儿。 看到面试官头上那“傲然矗立”的头发,脑海中止不住幻想他在无数个凌晨于电脑前挑灯夜码的高大形象,一种敬佩感油然而生, 竟忍不住站起来给他敬了个礼。 面试官:有病? 我:没没没,我谢顶反应综合征犯了,面试官好,我是小 Y ,请多多指教。 面试官:哦哦,确实是有病啊,没事,记得吃药就行。我看你简历写你 MySQL 挺懂的,那我先问问你 MySQL 吧。
299 天前 / flyer0126
我是架构精进之路,大厂架构师,CSDN 博客专家,点击上方“关注”,坚持每天为你分享技术干货,私信我回复“01”,送你一份程序员成长进阶大礼包。 一、为啥要分库分表不管是 IO 瓶颈,还是 CPU 瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务服务来看就是,可用数据库连接少甚至无连接可用,那导致的问题就可以想象了吧:并发量、吞吐量、崩溃等等情况。
299 天前 / marketing-upyun
写文章 MySQL 那些常见的错误设计规范又拍云已认证的官方帐号 14 人赞同了该文章依托于互联网的发达,我们可以随时随地利用一些等车或坐地铁的碎片时间学习以及了解资讯。同时发达的互联网也方便人们能够快速分享自己的知识,与相同爱好和需求的朋友们一起共同讨论。 但是过于方便的分享也让知识变得五花八门,很容易让人接收到错误的信息。这些错误最多的都是因为技术发展迅速,而且没有空闲时间去及时更新已经发布的内容所导致。为了避免给后面学习的人造成误解,我们今天来看一看 MySQL 设计规范中几个常见的错误例子。
301 天前 / binecy
本文与大家探讨 Spring 中如何实现 MySql 响应式交互。 Spring Data R2DBC 项目是 Spring 提供的数据库响应式编程框架。 R2DBC 是 Reactive Relational Database Connectivity 的首字母缩写词。R2DBC 是一个 API 规范倡议,它声明了一个响应式 API,由驱动程序供应商实现,并以响应式编程的方式访问他们的关系数据库。 实现数据库的响应式编程并不是容易的,传统的 JDBC 协议是一个完全阻塞的 API,所以响应式编程对 JDBC 协议可以说是一种“颠覆”了。
303 天前 / Dr_Hydra
最近在工作中,遇到了这样一个业务场景,我们需要关注一个业务系统数据库中某几张表的数据,当数据发生新增或修改时,将它同步到另一个业务系统数据库中的表中。 一提到数据库的同步,估计大家第一时间想到的就是基于 binlog 的主从复制了,但是放在我们的场景中,还有几个问题: 第一,并不是需要复制所有表的数据,复制对象只有少量的几张表第二,也是比较麻烦的,两个业务系统数据库表结构可能不一致。例如,要同步数据库 1 的 A 表中的某些字段到数据库 2 的 B 表中,在这一过程中,A 表和 B 表的字段并不是完全相同这样的话,我们只能通过代码的方式...
305 天前 / 虞大胆
一 背景和架构 本文基于 MySQL 8.0.25 源码进行分析和总结。这里 MySQL Server 层指的是 MySQL 的优化器、执行器部分。我们对 MySQL 的理解还建立在 5.6 和 5.7 版本的理解之上,更多的是对比 PostgreSQL 或者传统数据库。然而从 MySQL 8.0 开始,持续每三个月的迭代和重构工作,使得 MySQL Server 层的整体架构有了质的飞越。下面来看下 MySQL 最新的架构。 我们可以看到最新的 MySQL 的分层架构和其他数据库并没有太大的区别,另外值得一提的是从图中可以看出 MySQL 现在更多的加强 InnoDB、NDB 集群和 RAPID(HeatWave clusters)内存集群架构的演进。
313 天前 / flyer0126
▲点击上方“架构精进之路”关注公众号 回复“01”领取「程序员进阶大礼包」 这是「架构精进之路」公众号的第 73 篇原创文章 MySQL 中多版本并发控制(MVCC),是现代数据库引擎实现中常用的处理读写冲突的手段,MVCC 作为 MySQL 高级应用特性,目的在于提高数据库高并发场景下的吞吐性能。一、MVCC 出现背景是什么?事务的 4 个隔离级别以及对应的 3 种异常: 脏读:一个事务读取到了另外一个事务没有提交的数据; 不可重复读:在同一事务中,两次读取同一数据,得到内容不同; 幻读:同一事务中,用同样的操作读取两次,得到的记录数不相同。
320 天前 / marketing-upyun
写文章 MySQL 中存储时间的最佳实践又拍云已认证的官方帐号 4 人赞同了该文章平时开发中经常需要记录时间,比如用于记录某条记录的创建时间以及修改时间。在数据库中存储时间的方式有很多种,比如 MySQL 本身就提供了日期类型,比如 DATETIME,TIMESTAMEP 等,我们也可以直接存储时间戳为 INT 类型,也有人直接将时间存储为字符串类型。 那么到底哪种存储时间的方式更好呢? 不要使用字符串存储时间类型这是初学者很容易犯的错误,容易直接将字段设置为 VARCHAR 类型,存储"2021-01-01 00:00:00"这样的字符串。当然这样做的优点是比较简单,上手快。
327 天前 / 开发者头条
MySQL 作为互联网中非常热门的数据库,现在大厂面试题横竖绕不开 MySQL,其中 MySQL 索引是大厂必考面试题。今天带来了 MySQL 索引的常考面试题,看看你能答对多少~ 这是本期的 MySQL 索引面试题目录,不会的快快查漏补缺~ 1. 索引是什么?索引是一种特殊的文件 (InnoDB 数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。 索引是一种数据结构。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用 B 树及其变种 B+ 树。更通俗的说,索引就相当于目录。
331 天前 / 全菜工程师小辉
数据库在业务体系不大的情况,一般都是单库出现,通过增加主从复制提高 SLA。但当业务体量不断扩大,就需要考虑进行数据拆分来解决性能瓶颈问题。 下面讨论的技术方案主要是从 MySQL 角度考虑的,其他类型数据库仅作参考。 拆分策略水平拆分把单表表分割 N 个结构相同的表,然后把数据按照策略分散到不同的表中,这是表层面的水平拆分;如果把表在分散在不同的数据库中,这是数据库层面的水平拆分。 比如:订单表每个月有百万条数据累计,每个月都可以进行水平拆分,将上个月的数据放到另外一个数据库。 水平拆分带来的问题: 跨库的关联查询性能差。
333 天前 / 开发者头条
Spring 10P1:Spring 框架 Spring 是分层的企业级应用轻量级开源框架,以 IoC 和 AOP 为内核。Spring 可以降低企业级应用开发的复杂性,对此主要采取了四个关键策略:基于 POJO 的轻量级和最小侵入性编程、通过依赖注入和面向接口实现松耦合、基于切面和惯性进行声明式编程、通过切面和模板减少样板式代码。 好处 降低代码耦合度、简化开发。通过 Spring 提供的 IoC 容器可以将对象间的依赖关系交由 Spring 进行控制,避免硬编码所造成的过度程序耦合。用户也不必再为单例模式类、属性文件解析等这些底层的需求编写代码,可以更专注于上层的应用。
338 天前 / BloomingRose
作者介绍 猿辅导数据库平台团队,承载猿辅导在线教育全公司的数据库产品研发、运维及服务需求。团队始终致力于新技术的探索实践,结合业务场景不断打磨并提升高可用、可扩展、高可靠的基础设施能力,作为核心基础设施建设者,支持业务快速发展。( 猿辅导技术公众号 ID:gh_cb5c83bb3ee0) 赵晓杰,猿辅导数据库平台团队成员,主要从事数据库存储、中间件等方向研发工作。 一、背景 MySQL 中使用 kill 命令去杀死连接时,如果使用 show processlist 会发现线程会处于 killed 状态一段时间,而不是立即杀掉。
339 天前 / 全菜工程师小辉
事务是一组不可分组的操作集合,这些操作要么都成功执行,要么都取消执行。最典型的需要事务的场景是银行账户间的转账:假如 A 账户要给 B 账户转账 100 元,那么 A 账户要扣减 100 元,B 账户要增加 100 元,这两个账户的数据变更都成功才可算作转账成功。 本文涉及到 MySQL 锁机制的很多知识,对这方面不了解的可以先看博客《快速理解 MySQL 的锁机制与死锁排查》 ACID 原则事务具有四个原则:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。这四个特性简称为 ACID 原则。
340 天前 / flyer0126
▲点击上方“架构精进之路”关注公众号 回复“01”领取「程序员进阶大礼包」 这是「架构精进之路」公众号的第 70 篇原创文章 关于 MySQL 主从复制主要同步的是 binlog 日志,涉及到三个线程,一个运行在主节点(log dump thread),其余两个 (I/O thread, SQL thread)运行在从节点,如下图所示: 1、如何实现主从一致(1)主节点 binary log dump 线程当从节点连接主节点时,主节点会创建一个 log dump 线程,用于发送 binlog 的内容。在读取 binlog 中的操作时,此线程会对主节点上的 binlog 加锁,当读取完成,在发送给从节点之前,锁会被释放。