- 博客(737)
- 资源 (15)
- 收藏
- 关注
原创 MySQL二进制日志格式有哪几种
在 MySQL 中,二进制日志(Binary Log)的格式决定了主库如何记录数据的变更事件,并直接影响复制的行为和一致性。通过合理选择二进制日志格式,可以优化 MySQL 的复制性能和数据一致性。如果对数据一致性要求极高,建议始终使用。:记录数据行的实际变更(修改前/后的行数据),而非 SQL 语句。等),从库通过重放这些 SQL 语句实现数据同步。以下是每种格式的详细说明及其事务的事件组成。二进制日志中会记录完整的 SQL 语句。:记录实际执行的 SQL 语句(如。的行数据变更前后的值(如旧值。
2025-03-18 22:50:11
1045
原创 为什么“连接断开可能导致锁未释放”
大多数情况下:数据库会在连接断开时自动释放锁,但需依赖数据库的实现和配置。极端场景下:因网络问题、数据库检测延迟或代码缺陷,锁可能未及时释放,导致类似死锁的阻塞问题。解决方案:通过事务超时设置、完善的代码逻辑和运维监控降低风险。
2025-03-18 22:45:31
742
原创 deepseek推荐10本程序员必读书籍
以下是提升程序员技能的10本经典书籍推荐,涵盖编程思想、算法、系统设计、代码质量及职业发展等核心领域,结合多个权威来源整理而成。
2025-02-23 22:03:08
460
原创 SQL中 的exists用法
EXISTS 是 SQL 中的一个子查询条件,用于检查子查询是否返回任何行。如果子查询返回至少一行,则 EXISTS 返回 TRUE。
2025-02-08 21:45:42
536
原创 如何限制SQL的执行时间(max_execution_time)
在MySQL中,max_execution_time是一个系统变量,用于限制SQL语句的最大执行时间。当一个查询的执行时间超过这个设置的阈值时,MySQL会尝试终止并停止该查询的执行。这个功能主要用于防止某些查询因为执行时间过长而占用过多的系统资源,从而影响数据库的整体性能和响应时间。
2025-01-18 11:32:52
568
原创 kill SQL (pt-kill工具)
pt-kill是Percona Toolkit工具集中的一个工具,用于监控MySQL查询并根据指定的条件自动终止长时间运行的查询。这个工具非常有用,特别是在需要管理和控制数据库资源使用,防止长时间运行的查询占用过多资源,影响数据库性能的情况下。
2025-01-18 11:32:32
381
原创 在MySQL 主库上进行自动清理 purged gtid 时,会等待 binlog复制到从库吗
在MySQL中,自动清理purged GTID的过程确实会考虑到binlog是否已经复制到从库。
2024-12-25 22:21:52
561
原创 errant是怎么产生的
在MySQL中,errant GTID(错误GTID)是指在从库上存在但在主库上不存在的GTID。这通常是由于在从库上执行了不应存在的事务或在主库上未能正确复制的事务所导致的。
2024-12-25 22:10:47
473
原创 MySQL中Seconds_Behind_Master是怎么计算的
在MySQL中,Seconds_Behind_Master是一个用于表示从库(Slave)落后于主库(Master)的时间(以秒为单位)的指标。
2024-12-24 22:48:06
1143
原创 raft: Failed to contact
一个分布式服务是基于raft分布式协议开发的,在一个新版本上线后,出现了Leader比较频繁的漂移问题。
2024-12-21 23:11:15
1004
原创 MySQL 怎么不丢数据(关于开启双1配置)
在MySQL中,"双1"配置指的是将innodb_flush_log_at_trx_commit设置为1和sync_binlog设置为1。这两个设置都与数据的持久性和一致性有关,特别是在面对系统崩溃或意外重启的情况下。使用"双1"配置可以最大限度地保证MySQL数据库在面对系统崩溃或电源故障等情况时的数据安全和一致性。即使在这些极端情况下,也能确保所有已提交的事务不会丢失。
2024-11-18 23:00:00
845
原创 executed_gtid_set 与 purged_gtid_set
executed_gtid_set 和 purged_gtid_set 是 MySQL 复制中与 GTID(全局事务标识符)相关的两个重要概念。
2024-11-18 22:30:00
297
原创 MVCC(多版本并发控制)
MVCC(多版本并发控制)是一种用于数据库管理系统中实现并发控制的技术。它允许多个事务同时对数据库进行读写操作,而不会相互干扰,从而提高数据库系统的性能和可用性。MVCC通过为每个事务创建数据的“快照”来工作。MVCC是实现某些事务隔离级别的一种机制,特别是在实现读已提交(Read Committed)和可重复读(Repeatable Read)隔离级别时非常有效。
2024-10-05 17:37:11
647
原创 数据库的隔离级别
数据库的隔离级别主要有四种,从低到高依次是:1. 读未提交(Read Uncommitted)2. 读已提交(Read Committed)3. 可重复读(Repeatable Read)4. 串行化(Serializable)
2024-10-05 17:25:57
1068
原创 Go语言的垃圾回收(GC)机制的迭代和优化历史
Go语言的垃圾回收(GC)机制自Go语言发布以来经历了多次重要的迭代和优化,以提高性能和减少程序运行时的停顿时间。
2024-09-21 10:40:25
745
1
原创 Prometheus相关的语言客户端
Prometheus官方提供了多种语言的客户端库,以便开发者可以在不同的编程语言中集成Prometheus监控。
2024-09-16 17:03:33
1240
原创 系统可观测性
可观测性(Observability)是指通过外部输出来理解系统内部状态的能力。在软件工程和系统管理领域,它涉及到收集、分析和理解系统生成的数据(如日志、度量和追踪信息),以帮助开发者和运维人员监控系统健康、诊断问题、优化性能和理解系统行为。
2024-09-16 16:47:40
569
原创 go语言中的GC
GC是 Go 运行时(runtime)的一部分,负责自动管理内存的分配和释放。当程序中的变量或对象不再被需要时,GC 会自动回收这些不再使用的内存空间,使其可以被重新分配给其他变量或对象。Go 的垃圾收集器是并发的,并且是非阻塞的,这意味着它在后台运行,尽量减少对程序执行的干扰。通过自动管理内存,GC 使得 Go 程序员可以更加专注于业务逻辑的实现,而不需要手动管理内存的分配和释放,从而减少了内存泄漏和其他内存相关错误的可能性。GC触发方式包括:自动和手动两种。其中,手动是用户主动调用。
2024-08-18 23:27:17
725
原创 磁盘IO挂起(Disk IO hang)
磁盘IO挂起(Disk IO hang)是指磁盘输入/输出操作延迟异常,甚至完全停止响应的情况。在这种状态下,系统尝试对磁盘进行读写操作,但操作无法在合理的时间内完成,导致进程挂起等待,影响系统性能和响应能力。磁盘IO挂起可能是暂时的,也可能是持续的,严重时可能需要重启系统或更换硬件才能恢复。
2024-07-21 09:49:29
1187
原创 异地多活(Geo-Redundancy 或 Geographic Redundancy)
异地多活(Geo-Redundancy)是指在不同的地理位置(通常是不同的城市或地区)部署多个数据中心,这些数据中心之间通过高速网络连接,实现数据的同步和服务的高可用性。异地多活(Geo-Redundancy)是一种高可用性和灾难恢复策略,通过在不同的地理位置部署多个数据中心,实现数据的同步和服务的高可用性。通过结合单元化和异地多活,可以构建一个既具有高扩展性又具有高可用性的系统架构,能够应对大规模的用户流量和区域性灾难,保证业务的连续性和数据的安全性。
2024-07-14 20:17:27
1060
原创 同城多活(Metro-Redundancy)
同城多活(Metro-Redundancy)是一种高可用性和灾难恢复策略,指的是在同一个城市或相近的地理区域内部署多个数据中心,这些数据中心之间通过高速网络连接,实现数据的实时同步和服务的高可用性。同城多活的主要目的是为了应对局部性的灾难,如数据中心火灾、设备故障或网络中断等,同时提供更低的网络延迟和更高的数据传输速度。通过同城多活策略,企业可以在同一个城市或相近的区域内部署高可用性和灾难恢复能力强的系统,以应对局部性的灾难和故障,保证业务的连续性和数据的安全性。
2024-07-14 20:08:08
323
原创 单元化(Cell Sharding)
单元化(Cell Sharding)是一种架构设计策略,主要用于解决大规模分布式系统中的扩展性、性能和容错性问题。单元化的核心思想是将系统划分为多个独立的单元(Cells),每个单元包含完整的服务和数据副本,可以独立运行和扩展。
2024-07-14 20:04:32
1134
原创 哈夫曼编码(Huffman Coding)
哈夫曼编码(Huffman Coding)是一种广泛使用的数据压缩算法,由大卫·哈夫曼(David A. Huffman)在1952年提出。它是一种变长编码技术,通过构造最优二叉树(哈夫曼树)来实现数据的有效压缩,特别适用于对字符频率有明显差异的数据压缩。哈夫曼编码的核心思想是使用较短的编码表示出现频率高的字符,而使用较长的编码表示出现频率低的字符,从而达到压缩数据的目的。
2024-06-10 14:35:13
957
原创 关于MySQL 中的全局事务标识符GTID
MySQL 中的全局事务标识符(GTID)确实会随着事务的不断执行而增长,但这并不意味着它会无限增长而导致问题。GTID 的设计和实现考虑到了长期运行的情况,尽管 GTID 值会持续增加,但它的设计允许数据库系统以可管理和高效的方式处理这些值。GTID 的组成。
2024-06-10 14:30:40
1025
原创 MySQL 半同步复制
MySQL 半同步复制自引入以来,经历了多个版本的迭代和优化,逐步增强了其功能和性能。MySQL 5.5:半同步复制首次引入。这个版本的半同步复制提供了基本的功能,确保了在事务提交并写入到主库的二进制日志(binlog)后,至少有一个从库确认接收到这些变更之后,事务才算完成。这减少了主从切换时数据丢失的风险,但在某些情况下可能会增加事务的延迟。功能增强MySQL 5.6:增加了对多线程从库(Multi-Threaded Slave, MTS)的支持。
2024-06-10 14:19:50
768
原创 算法--动态规划
动态规划(Dynamic Programming, DP)是一种算法设计技巧,用于解决具有重叠子问题和最优子结构性质的问题。通过将原问题分解为相对简单的子问题的方式来求解复杂问题,动态规划避免了计算重复子问题,从而提高了算法的效率。
2024-05-05 22:06:08
1151
原创 算法--贪心算法
贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。贪心算法在有最优子结构的问题中尤其有效,这意味着局部最优解能决定全局最优解。简单来说,贪心算法对每个子问题都做出选择,不能回退,这与动态规划不同,后者会保存以前的结果,并根据以前的结果对当前进行选择,有回退功能。
2024-05-05 22:03:19
3435
2
原创 算法--回溯法
回溯法是一种通过探索所有可能的候选解来找出所有解的算法。如果候选解被确认不是一个解(或者至少不是最后一个解),回溯算法会通过在上一步进行一些变化来丢弃该解,即回溯并尝试另一种可能。回溯法通常用递归方式实现,它是一种选优搜索法,按选优条件向前搜索,以达到目标。但当搜索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术称为“回溯法”。回溯法的关键在于:不断在每一层试错,如果发现当前选择不符合条件,就回退到上一层,再次尝试其他选项,直到找到所有符合条件的解。
2024-05-04 07:15:00
354
原创 算法--分治法
分治法是一种算法设计策略,它将一个复杂的问题分解成两个或多个相同或相似的子问题,直到这些子问题可以简单地直接解决。然后,这些子问题的解被合并以产生原始问题的解。
2024-05-03 23:01:20
737
原创 决策树算法
决策树是一种常用的数据挖掘方法,它是一种树形结构的算法,用于决策分析和预测。决策树由节点和分支构成,其中节点分为内部节点和叶节点两种。内部节点表示一个特征或属性,叶节点代表决策的结果。从根节点到叶节点的每一条路径都代表一条决策规则。决策树的优点包括模型易于理解和解释,能够处理数值型和类别型数据,适用于解决分类和回归问题。缺点是容易过拟合,对于不平衡数据集的处理效果不是很好,且容易受到噪声的影响。常见的决策树算法有ID3、C4.5和CART等。
2024-05-03 22:57:08
1596
原创 TiDB中的PD--元数据管理和调度中心
TiDB 的 PD(Placement Driver)组件是整个分布式数据库系统的关键部分,是整个集群的元数据管理和调度中心,负责存储集群的元数据和进行 Region 调度。通过这些功能,PD 为 TiDB 集群提供了数据的一致性保证、高可用性、负载均衡以及事务的时间戳服务,是整个 TiDB 分布式数据库系统能够高效、稳定运行的关键组件。
2024-05-01 23:31:02
863
1
原创 离线数据同步工具DataX
DataX是阿里巴巴开源的一款数据同步工具,使用Java语言开发的。它提供了从各类数据源读取数据以及向各类数据源写入数据的功能,支持包括MySQL、Oracle、SQLServer、PostgreSQL、HDFS、HBase、MaxCompute(原ODPS)等众多数据源。DataX主要应用于离线数据同步,可以实现异构数据源之间的数据迁移。DataX的GitHub地址是:https://github.com/alibaba/DataX。
2024-04-05 22:46:47
903
原创 设计模式--建造者模式(Builder Pattern)
建造者模式(Builder Pattern)是一种创建型设计模式,它提供了一种构建对象的最佳方式。建造者模式将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。
2024-03-24 10:37:05
591
原创 设计模式--访问者模式(Visitor Pattern)
访问者模式(Visitor Pattern)是一种行为型设计模式,它可以让你在不改变类的情况下,增加作用于一组对象上的新操作。
2024-03-17 20:10:23
737
git post-update
2017-07-30
Spreadsheet-ParseXLSX-0.16.tar.gz
2014-11-26
sqlite嵌入式编程实例
2012-06-20
Linux下sqlite3编程实例
2012-06-20
rt5370驱动
2012-03-20
ndiswrapper 最新版本下载 ndiswrapper-1.57.tar.gz
2012-03-07
Linux下使用USB转串口获取GPS数据
2012-03-01
深入理解linux内核 第三版 Daniel P. Bovet &Marco Cesati 勘误
2011-03-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人