数据库
文章平均质量分 91
rchmin
持续学习是作为技术人保持竞争力的唯一方法!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
阿里Canal数据库增量日志解析工具介绍
阿里巴巴Canal是一款基于MySQL主从复制机制的开源数据同步工具,通过模拟从库获取主库binlog日志并解析,实现数据变更的实时捕获与传输。其核心优势在于毫秒级延迟、业务无侵入性和低性能影响,支持将数据同步至Kafka、ES等多种目的地。Canal包含服务端(解析binlog)和客户端/适配器(数据消费)两部分,适用于异构数据同步、缓存更新等场景。作为阿里内部精卫平台的开源核心组件,Canal经过双十一验证,具有高可靠性,是构建实时数据管道的优选方案。原创 2025-12-05 21:56:31 · 769 阅读 · 0 评论 -
MySQL共享锁与独占锁关系详解
MySQL中的共享锁(S锁)和独占锁(X锁)是数据库并发控制的核心概念。共享锁允许多个事务同时读取同一数据,而独占锁则保证写入操作的排他性。它们的相互关系遵循"读读不互斥、读写互斥、写写互斥"原则。InnoDB引擎通过MVCC机制实现快照读(普通SELECT不加锁)和当前读(加S锁或X锁)的区分。理解这些锁的兼容性矩阵对于避免死锁至关重要,实际应用中应尽量缩短事务时间并按固定顺序访问资源,以减少锁冲突。原创 2025-12-04 09:45:00 · 802 阅读 · 0 评论 -
MySQL事务隔离级别及问题解析
摘要:MySQL事务隔离级别分为读未提交、读已提交、可重复读和串行化四种,隔离级别越高数据一致性越强但并发性能越低。InnoDB默认采用可重复读级别,通过MVCC机制实现快照读避免脏读和不可重复读,结合间隙锁解决幻读问题。读已提交级别使用MVCC避免脏读但存在不可重复读,串行化级别通过强制串行执行解决所有并发问题但性能最差。MVCC通过隐藏字段、UndoLog和ReadView机制实现多版本并发控制,在不同操作类型下采用不同策略平衡性能与一致性。原创 2025-12-02 09:45:00 · 887 阅读 · 0 评论 -
MySQL分库分表适用场景与依据
MySQL分库分表是解决数据库性能瓶颈的重要手段,核心是通过"空间换时间"和"分治"思想分散数据负载。主要适用于三种场景:单表数据量过大(超过500万行或几十GB)、高并发读写导致性能问题、业务发展需要提高可用性和扩展性。实施前需先进行SQL优化、索引优化、引入缓存等常规优化手段。分库分表方式包括水平分表、垂直分表、垂直分库和水平分库,通常会组合使用。但会带来分布式事务、跨库JOIN、全局ID生成等挑战,需借助中间件如ShardingSphere等降低复杂度。原创 2025-11-29 23:34:24 · 891 阅读 · 5 评论 -
MySQL中 char 和 varchar 的区别
摘要:MySQL中CHAR和VARCHAR的主要区别在于存储方式:CHAR是固定长度,会填充空格并自动去除尾部空格,适合存储长度固定的数据(如MD5、状态码),读取速度更快;VARCHAR是可变长度,只存储实际字符和长度信息,保留尾部空格,适合长度变化大的数据(如姓名、地址),更节省空间。选择建议:追求性能且长度固定用CHAR,追求空间效率且长度多变用VARCHAR。现代开发中VARCHAR因其灵活性更常用。原创 2025-11-22 20:54:11 · 699 阅读 · 0 评论 -
CentOS 7 安装 Mysql + 踩坑记录
本文详细介绍了在CentOS 64位系统上安装MySQL 5.6的过程,包括下载安装包、卸载旧版本、解压文件、创建用户组、修改权限、解决安装过程中出现的Perl模块缺失和库文件错误等问题。通过执行安装脚本初始化数据库后,详细说明了配置日志文件、启动服务、设置root密码以及开启远程访问权限的步骤。最后还提示了云服务器需要开放3306端口才能实现远程连接。整个安装过程涵盖了从环境准备到最终配置的全部关键环节。原创 2018-11-18 00:55:28 · 1849 阅读 · 0 评论 -
Mybatis Generator 无法生成selectByPrimaryKey、deleteByPrimaryKey、updateByPrimaryKey MySQL
问题现象:最近因为一张表新加了字段,重新使用 mybatis-generator 生成了一下mapper文件,结果发现新生成的文件比之前少了xxxByPrimaryKey 的几个方法,对应的xml文件中同样也少了这几个, 并且xml文件中的resultMap节点里主键id使用的是result标签,而不是id标签。排查原因:首先想到的是:难道表没有主键了,于是赶紧检查了一下我的表结构...原创 2018-08-22 20:36:33 · 6849 阅读 · 6 评论 -
为什么MYSQL要设定用UTF8MB4编码
utf8与utf8mb4具有相同存储特性:相同的代码值,相同的编码,相同的长度。不过utf8mb4扩展到一个字符最多可有4位元,所以能支持更多的位元集。utf8mb4不只兼容utf8,还能比utf8能展示更新的字符。将编码改为utf8mb4外不需要做其他转换。为了要跟国际接轨,原本的utf8编码在存储某些国家的文字(或是罕见字)已经不敷使用,因此在mysql5.5.3版以上,可以开始使用4-Byt...转载 2018-05-05 16:44:54 · 3741 阅读 · 0 评论 -
Mybatis异常解决之:java.sql.SQLException: Parameter index out of range
mybatis使用过程中遇到下面一个异常:org.springframework.dao.TransientDataAccessResourceException:### Error querying database. Cause: java.sql.SQLException: Parameter index out of range (1 > number of parameters...原创 2018-03-14 21:51:30 · 12735 阅读 · 0 评论 -
MySQL外键约束的禁用与启用命令
MySQL外键约束的禁用与启用:MySQL外键约束是否启用是通过一个全局变量标示的:FOREIGN_KEY_CHECKS=0; 禁用状态FOREIGN_KEY_CHECKS=1; 启用状态查看当前FOREIGN_KEY_CHECKS的值可用如下命令:SELECT @@FOREIGN_KEY_CHECKS;禁用外键约束:SET FOREIGN_KEY_CH原创 2015-11-25 13:19:44 · 1616 阅读 · 0 评论 -
c3p0之DEBUG -- CLOSE BY CLIENT STACK TRACE
项目使用C3P0数据库连接池,最近发现一个Exception:转载 2014-10-16 15:02:46 · 24196 阅读 · 4 评论 -
java.lang.NoClassDefFoundError: javassist/util/proxy/MethodFilter
ERROR - Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationC原创 2014-04-15 21:23:33 · 13997 阅读 · 0 评论 -
对SQL事务隔离级别的简单理解
一、 什么是事务数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。二、 事务的特点一个逻辑工作单元要成为事务,必须原创 2012-08-01 01:24:27 · 1558 阅读 · 0 评论
分享