自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 收藏
  • 关注

原创 MySQL GTID集合运算函数总结

如果两个GTID集相同,函数返回非零值# 如果两个GTID集不相交,函数返回非零值# 如果两个GTID集不相交,则函数返回非零,sum是两个集的并集# 函数返回格式化的GTID集。没有空格且没有重复,UUID按字母顺序排列,间隔按数字顺序排列# 函数返回两个GTID集的并集# 函数返回两个GTID集的交集# 函数返回两个GTID集的对称差集# 函数返回除去指定UUID的GTID集。

2025-04-17 23:04:02 1050

原创 MySQL 面试被问到performance_schema是做什么用的

语句事件记录表,这些表记录了语句事件信息,当前语句事件表events_statements_current、历史语句事件表events_statements_history和长语句历史事件表events_statements_history_long、以及聚合后的摘要表summary,其中,summary表还可以根据帐号(account),主机(host),程序(program),线程(thread),用户(user)和全局(global)再进行细分)如果你这么想,那就对了,我当初学习的时候也是这么想的。

2025-04-14 21:13:06 659

原创 mongodb 4.0+多文档事务的实现原理

‌,但其实现方式与 MongoDB 存在显著差异。然而,MySQL 的 MVCC 机制 ‌。Journal 日志。

2025-04-13 21:38:12 1122

原创 GH-OST:原子切换原理

当新的表数据是最新的时候,需要做两个表的原子交换。整个 cut-over 方案的出现主要还是因为 MySQL 的局限性,你无法在同一个会话中 LOCK TABLES 后再去 RENAME TABLE(从 MySQL 8.0.13 版本开始支持同一个会话中 LOCK TABLES 后执行 RENAME TABLE),其他操作是可行的,比如 C10 还兼顾应用积压的 binlog 日志回访操作,这点是很重要的。C. 整个操作都失败了,但没有什么可怕的事情发生,有些查询被阻止了一段时间,我们需要重试。

2025-04-13 15:35:43 871

原创 MongoDB在线热备神器-createBackup

和MySQL在线热备类似,createBackup备份同样涉及到LOCK操作,对应用服务还是有一点影响的,所以,建议在流量低峰期(比如夜间或者凌晨)在secondary节点执行备份,最大限度降低对业务的影响。建议:在mongodb副本集的secondary节点上执行上述命令,并且,backupDir目录可以为空或者不存在,mognodb会自行创建,如果该目录已经存在备份文件,此次备份可能失败报错。否则自动创建该目录;说明:此处的物理备份不包括mongodb配置文件,keyFile等,需要用户自行备份。

2025-04-13 15:16:23 553

原创 初始化mysql5.7

初始化mysql5.7。

2025-03-22 21:48:20 126

原创 2、寸口对应六气

少阳也,六气为相火,在卦为坎,偏右尺,一阳藏于二阴之中,为凝聚之象,然坎中一阳为左路生发之推动力,故曰相火以位,主升散,则厥阴能合太阴,阳载阴升。少阴也,六气为君火,在卦为离,偏左寸,外二阳而内一阴,为发散之象,然离中一阴为右路降敛之推动力,故日君火以明,主降敛,则阳明能合太阳,阴覆阳降。太阳也,六气为寒水,在卦为巽,居左,偏左关,主阳之开,太阳之开外升,阳明合之。太阴也,六气为湿土,在卦为艮,居右,偏右关,主阴之开,太阴之开内降,厥阴合之。左寸右尺为少阴少阳之枢,枢为转动之轴,是左右升降开合之推动力。

2025-03-09 10:09:02 236

原创 1 、六气概念-六气内涵

有六气:厥阴风木、少阴君火、少阳相火、太阴湿土、阳明燥金、太阳寒水,属于6分法。皮外为表,皮内为里。表为太阳,里为少阳,皮毛为阳明,主半表半里。外连太阴,内连少阴,筋膜为厥阴,主半内半外。六气者,风、火、暑、湿、燥、寒。五行者,木、火、土、金、水⋯•。风者,厥阴木气之所化也。在天为风,在地为木........在天为暑,在地为火.......在天为湿,在地为土.......在天为燥,在地为金.......在天为热,在地为火......寒者,太阳水气之所化也。三阳有表里之分,三阴有内外之别。

2025-03-08 11:02:31 411

原创 MongoDB Chunks核心概念与机制

‌:当分片间Chunk数量差异≥9时,Balancer自动迁移Chunk以实现负载均衡‌。函数指定片键值强制拆分,适用于预分片(Pre-splitting)优化场景‌。新分片的集合默认生成一个覆盖全片键范围()的Chunk,存储在‌。

2025-03-04 22:55:40 362

原创 centos7使用rpm包安装mysql5.6和mysql8.0

5、安装mysql server和mysql client。2、从mysql官网下载rpm安装包。4、解压rpm-bundle.tar。2 从mysql官网下载rpm安装包。4 解压rpm-bundle.tar。1、查看并卸载 mariadb。1、查看并卸载 mariadb。按以下顺序安装rpm包。5 安装mysql(

2025-02-27 19:29:49 775

原创 Mongodb存储特性与内部原理

一、存储引擎(Storage) mongodb 3.0默认存储引擎为MMAPV1,还有一个新引擎wiredTiger可选,或许可以提高一定的性能。 mongodb中有多个databases,每个database可以创建多个collections,collection是底层数据分区(partition)的单位,每个collection都有多个底层的数据文件组成。(参见下文data files存储原理) wiredTiger引擎:3.0新增引擎,官方宣称在read、insert

2025-01-09 21:51:11 1170

原创 Mongodb中Sharding集群

随着mongodb数据量的增多,可能会达到单个节点的存储能力限制,以及application较大的访问量也会导致单个节点无法承担,所以此时需要构建集群环境,并通过sharding方案将整个数据集拆分成多个更小的chunk,并分布在集群中多个mongod节点上,最终达到存储和负载能力扩容、压力分流的作用。在sharding架构中,每个负责存储一部分数据的mongod节点称为shard(分片),shard上分布的数据块称为chunk,collections可以根据“shard key”(称为分片

2025-01-09 21:43:30 1151 2

原创 mongodb配置文件详解

wiredtiger将使用所有数据的最大缓存大小,wiredTiger缓存工作集(working set)数据的内存大小,单位:GB,此值决定了wiredTiger与mmapv1的内存模型不同,它可以限制mongod对内存的使用量,而mmapv1则不能(依赖于系统级的mmap)。默认情况下,cacheSizeGB的值为假定当前节点只部署一个mongod实例,在MongoDB 3,默认情况下,wiredtiger缓存,使用1 GB或安装的物理内存的一半,以较大者为准。默认值为物理内存的一半。

2025-01-08 22:28:31 1170

原创 反脆弱计划

1、读书籍 <<小狗钱钱>> <<富爸爸的财富花园>> <<穷爸爸富爸爸>>2、投资 日常开销 梦想 投资 应急

2024-12-02 14:00:06 154

原创 wareshark分析mysql协议的数据包

使用wareshark 分析mysql协议的数据包,是每个dba都应该掌握的技能,掌握以后,就可以通过tcpdump抓包分析,得到连接报错的信息了。2 选中mysql协议,配置成想要的端口,比如我的是tidb,需要配置成4002.

2024-11-29 13:31:31 372

原创 go 接口类型断言

类型断言是 Go 语言中的一种机制,用于将接口类型的值转换为具体类型。类型断言可以帮助我们从接口中提取具体的值,从而访问具体类型的方法和字段。// n := i.(int) // 这行如果取消注释会导致 panic,因为 i 并不是 int 类型。// 直接使用类型断言,如果失败会引发 panic。// 类型断言,将接口类型转换为具体类型。// 错误的类型断言。

2024-11-23 17:34:55 542

原创 go interface(接口)使用

在 Go 语言中,接口(interface)是一种抽象类型,它定义了一组方法,但是不实现这些方法。接口指定了一个对象的行为,而不关心对象的具体实现。这个例子定义了一个 Animal 接口,以及两种实现该接口的类型:Dog 和 Cat。Go 中的空接口 interface{} 可以表示任何类型,因为所有类型都至少实现了零个方法。// 定义一个结构体 Dog,并实现 Animal 接口。// 定义一个结构体 Cat,并实现 Animal 接口。// 定义一个函数,接受一个 Animal 类型的参数。

2024-11-23 16:18:23 560

原创 go 结构体方法

fmt.Println("Scaled Radius:", c.Radius) // 输出: Scaled Radius: 10。fmt.Println("Area:", rect.Area()) // 输出: Area: 12。fmt.Println("Area:", area) // 输出: Area: 314。// 使用值调用指针接收者的方法。// 使用指针调用值接收者的方法。// 调用指针接收者方法。// 调用值接收者方法。方法接收者是结构体的指针。// 指针接收者方法。// 指针接收者方法。

2024-11-23 15:49:17 668

原创 go 结构体指针

在 Go 语言中,结构体指针用于指向结构体的内存地址。使用结构体指针可以避免在函数调用时复制整个结构体,从而提高性能,特别是当结构体较大时。结构体指针还可以方便地修改结构体的字段。fmt.Println(*p) // 输出: {Alice 30}fmt.Println(*p) // 输出: {Alice 30}fmt.Println(*p) // 输出: {Bob 25}// 使用 new 函数创建结构体指针。// 使用 new 函数创建结构体指针。// 直接初始化结构体并取地址。实质上还是结构体的调用。

2024-11-23 12:01:03 367

原创 go channel select 语句使用

在 Go 语言中,select 语句用于在多个通道操作中进行选择。select 语句可以同时等待多个通道操作,并在其中一个通道准备好时执行相应的分支。使用 select 可以让你的程序更高效地处理并发任务,尤其是在需要处理多个通道的复杂场景中。select 可以与 time.After 搭配使用,以处理通道操作的超时情况。可以同时尝试向多个通道发送数据,并在其中一个通道可以发送时执行操作。可以同时等待多个通道的数据,并在其中一个通道有数据时进行处理。使用 default 分支可以实现非阻塞的通道操作。

2024-11-17 18:22:17 529

原创 go channel中的 close注意事项 range取数据

在接收数据时,可以使用 `v, ok :=

2024-11-17 17:57:15 461

原创 goroutine 和主线程运行优先级(同步channal会影响goroutine)

在Go语言中,goroutine和主线程(即main函数所在的goroutine)之间的调度顺序是不确定的。无论哪个goroutine先运行,最终都会有一个goroutine在通道操作上进行阻塞,直到另一个goroutine执行相应的操作。在Go语言中,goroutine的调度顺序是不确定的,因此确实有可能非主goroutine先运行。不过,在这个具体的例子中,由于。Goroutine是由Go运行时调度的,调度的具体顺序可能会因多种因素而异,包括操作系统的调度、Go运行时的实现等。

2024-11-16 10:51:13 279

原创 go 下划线 _ 被称为“空白标识符

只有当channel无数据,且channel被close了,才会返回ok=false。v,ok :=

2024-11-11 21:47:38 431

原创 进程 线程 和go协程的区别

进程和线程是操作系统中两个重要的执行单元,理解它们的区别对于编程和系统设计非常重要。切换只是简单的函数调用。资源:线程共享进程的资源,如内存和文件句柄,但每个线程有自己的栈和寄存器。适用场景:进程适用于需要高隔离性的任务,线程适用于需要高效并发的任务。隔离性:进程之间是相互隔离的,一个进程的崩溃不会直接影响其他进程。进程是完全独立的,线程共享进程的资源,而协程在同一线程中共享资源。定义:进程是一个正在执行的程序的实例,具有独立的地址空间。独立性:进程是独立的执行单元,而线程是共享资源的执行单元。

2024-11-11 21:34:17 482

原创 复泰脉象和药象图

2024-11-09 01:03:44 135

原创 django中entity.save(using=)的使用

使用某些ORM(对象关系映射)框架时,比如Django ORM,entity.save(using=...)是一种用于保存实体对象到数据库的方法调用,其中using参数用于指定要使用的数据库。这意味着你可以在一个项目中配置多个数据库,并根据需要在不同的数据库之间进行操作。假设你在Django项目的设置中配置了多个数据库,比如一个默认数据库和一个备用数据库。在这个例子中,entity对象会被保存到名为backup_db的数据库中,而不是默认数据库。•using 参数允许你指定保存操作使用哪个数据库连接。

2024-10-27 09:06:07 480

原创 django中的类属性和类方法

这个例子中,get_version 是一个类方法,通过 @classmethod 装饰器声明,允许你访问类属性 version_number。如果你的需求是类似的,那么你就需要使用类方法。否则,如果只是需要在类定义时执行某个函数并将结果存储为类属性,不需要将其定义为类方法。2、如果你需要定义一个方法,需要在方法中使用 cls 来创建类的实例或执行其他与类相关的操作,那么你应该使用 @classmethod。它在类加载时就被初始化。django中直接定义类的属性,可以直接在实例化对象或者类中调用。

2024-10-26 18:42:07 729

原创 python笔记:@property

property 是 Python 中的一个内置装饰器,用于将一个类的方法转换为只读属性。它允许你定义一个方法,但通过属性的方式来访问它的返回值。通过 @property,你可以在不改变类接口的情况下对属性访问进行控制,比如添加验证逻辑.: 使用 @property 可以隐藏属性的实现细节,提供一个简单的接口。: 计算属性的值仅在需要时进行计算,而不是在对象创建时。print(c.radius) # 输出: 10。print(c.radius) # 输出: 5。# 访问和修改 radius 属性。

2024-10-26 12:35:07 521

原创 python学习笔记:___getattr__

1.必须调用 super().__getattribute__: 如果你重写了 __getattribute__,通常需要调用 super().__getattribute__(name) 来实际获取属性的值。4.与 __getattr__ 的区别: __getattribute__ 总是被调用,而 __getattr__ 只有在属性不存在时才被调用。3.避免无限递归: 在 __getattribute__ 中,如果你直接访问对象的属性而不通过 super(),可能会导致无限递归。# 访问不存在的属性。

2024-10-26 10:23:24 552

原创 腾讯云DBA面试(一面)

在第二阶段,根据RM返回的结果,如果涉及分布式事务的所有RM都返回可以提交, 则TM给RM发送commit的命令,每个RM实现自己的提交,同时释放锁和资源,然后RM反馈提交成功, TM完成整个分布式事务;根据事务所处的阶段,可以回滚到具体的版本,实现一致性。1.并发执行的事务,在prepare阶段,redo log先写文件缓存,第一个领头的事务,在等待n个事务后, 在第一个事务去刷写磁盘时,会把同组的其他的事务,也一起刷写到磁盘上,这样就减少了刷盘的次数,降低了磁盘的IOPS。分布式锁是怎么实现的?

2024-10-25 14:12:02 1707 1

原创 redis cluster命令汇总

-cluster-fix-with-unreachable-masters : 是否修复不可达的主节点上的槽位。此时如何恢复该主节点上的所有槽位呢,这时就可以使用该参数,会将处于该主节点上的所有槽位恢复到存活的主节点上(之前的数据会丢失,仅仅是恢复了槽位)。--cluster-replace 如果集群(127.0.01:6379)中存在外部redis实例(127.0.0.2:6379)的key,则会覆盖掉(10.35.2.68:6379)的value。

2024-10-22 21:02:11 1098

原创 redis5.0 cluster一个机器维修迁移到另外一个机器

redis cluster 当中一台机器需要维修,因此需要把这台机器上的redis cluster主节点都迁移到另外一台机器。2、使用reshard 命令将redis cluster的slot迁移到新机器的集群。3、将原机器节点从redis cluster 集群剔除。1、将机器的节点的加入到集群。

2024-10-22 20:00:48 331

原创 br实现大数据量的tidb机房迁移

nfs挂载,server和client 用tidb用户导出数据,但是tidb用户在server和client 端,uid和gid可能不一致,导致client没有写入的权限,导致报错。这个速度是每个tikv的恢复速度,因此,不限制的话,速度很快,达到了节约时间的目的。上面的报错原因,就是恢复原理没有搞清楚,在恢复时,需要在本地读取数据,因此恢复数据时也要挂载。:br导出的数据不需要很大的磁盘,但是iops需要很高,需要ssd磁盘。最后,尝试了多种方案,迁移数据速度都太慢了,想要实现一天迁移完成数据,

2024-10-19 17:19:16 922

原创 基于 GTID 的多源复制

导出 4 个工厂的数据到 192.168.100.5,在该服务器上运行。2.2 设置gtid。2.3 设置主从关系。

2024-04-14 16:33:00 230

原创 redis cluster5.0在线扩容节点

1 登陆到任意一台老的集群的redis节点,执行CLUSTER MEET ,将新扩容节点加入到redis cluster集群,初次加入到集群的节点,通过clueter nodes可以看到新节点的状为是master,:平均分配所有的槽位,使用以下命令会自动降16384个槽位自动分配给集群的每一个master,不用手动指定槽为分配。重新分片基本上意味着将slot 重新分配,就像集群创建一样,它是使用 redis-cli 实用程序完成的。2.、重新slot分配。

2024-04-12 00:00:43 316

原创 Redis 7.0 共享复制缓冲区的实现

当从库尝试与主库进行增量重同步时,会发送自己的 repl_offset, 若从库可满足增量重同步条件,则主库会从 ReplicationBacklog 中拷贝从库缺失的数据到从库 OutputBuffer,虽然现在的拷贝变成了仅仅是对特定 replBufBlock 引用计数的改变,在每个 replBufBlock 中记录了该其第一个字节对应的 repl_offset,但如何高效地从数万个 replBufBlock 的链表中找到特定的那个, 仍然一件棘手的事情。一方面,rax 索引占用的内存较少;

2023-11-16 15:31:16 263

原创 redis复制缓冲区与复制积压缓冲区的区别

主节点维护的一个缓冲区,在主节点开始有从节点时创建(不管几个从节点都只有一个),其是长度固定且为先进先出的队列,默认大小为1MB。复制缓冲区的大小由client-output-buffer-limit slave {hard limit} {soft limit} {soft seconds}配置,默认值为client-output-buffer-limit slave 256MB 64MB 60,其含义是:如果buffer大于256MB,或者连续60s大于64MB,则主节点会断开与该从节点的连接。

2023-11-16 15:23:06 864

原创 mysql意向锁究竟是做什么的

表级锁,主要是为了提高加表锁的效率,是mysql数据库自己加的。当有事务给表的数据行加了共享锁或排他锁,同时会给表设置一个标识,代表已经有行锁了,其他事务要想对表加表锁时,就不必逐行判断有没有行锁可能跟表锁冲突了,直接读这个标识就可以确定自己该不该加表锁。特别是表中的记录很多时,逐行判断加表锁的方式效率很低。而这个标识就是意向锁。是一种锁的层次结构。当一个事务需要对某一行进行加锁时,会先获取意向锁,表明该事务将对该行进行加锁操作,同时其他事务可以获取表级别的锁,但不能获取同一行的行级别锁。

2023-11-08 11:00:24 823

原创 mongodb索引到底是B+树还是B树?

查询单条数据的时候,B树的查询效率不固定,最好的情况是 O(1),因为它不需要再遍历去找到叶子节点。所以可以认为在做单一数据查询的时候,使用 B 树平均性能更好。但是,由于 B 树中各节点之间没有指针相邻,因此 B 树做一些数据遍历操作不那么适合。B+ 是在 B 树上改进,它的数据都在叶子节点,同时叶子节点之间还加了指针形成链表。1、为什么 MongoDb 数据组织形式使用 B 树,而 MySQL 使用 B+ 树?其实WiredTiger 使用的是 B+ 树作为其存储结构。2、而 B 树有啥好处呢?

2023-11-02 17:50:35 713

原创 mysql8.0.30 在线调整redo log

该参数会在数据目录下生成’#innodb_redo’的子目录,磁盘文件的存储形式不再是类似 ib_logfileN 这样的文件,而是替代为 #ib_redoN 这样新文件形式。5 去配置文件my.cnf中修改参数,例如将innodb_log_file_size改为1G,innodb_log_files_in_group改为3。redo日志文件中不带有_tmp后缀的说明是正在使用的日志文件,带有_tmp后缀的是等正在使用的文件写满后再写它。调整innodb_redo_log_capacity=6G。

2023-10-12 17:09:23 236

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除