- 博客(20)
- 资源 (11)
- 收藏
- 关注
原创 MySQL中的幻读与不可重复读:区别及解决方案
摘要:MySQL中幻读与不可重复读的核心区别在于数据范围变化(幻读)与单行数据修改(不可重复读)。解决方案上,不可重复读通过MVCC机制(RR隔离级别)实现快照读;幻读则依赖临键锁/间隙锁锁定索引范围。默认RR级别结合MVCC与间隙锁同时解决两种问题,但需注意索引设计以避免锁冲突。实际应用中需权衡隔离级别(RC高并发读 vs RR强一致性 vs Serializable严格串行),并通过缩短事务、优化索引来平衡性能与一致性。
2025-10-08 21:22:14
576
原创 Redis哨兵模式和集群模式区别
Redis高可用方案对比:哨兵模式适合中小规模数据场景,提供主节点自动故障转移,配置简单但写性能受限;集群模式通过数据分片实现水平扩展,适合TB级数据和高并发场景,但部署复杂且存在弱一致性风险。选择依据主要取决于数据规模、性能需求和运维复杂度,两者在数据分布、扩展性和功能支持上存在显著差异。
2025-09-26 08:38:44
400
原创 Redis抗住百万并发的关键设计
Redis通过内存存储、单线程事件驱动模型和I/O多路复用实现百万级并发。其核心设计包括:内存存储实现微秒级访问;单线程避免锁竞争;epoll等I/O复用机制高效管理连接;优化的数据结构如SDS和跳表提升操作效率;集群模式支持水平扩展。关键优化策略含Pipeline批量操作、连接池管理及缓存问题防护(穿透/击穿/雪崩)。这些技术融合使Redis在保持单线程简单性的同时,兼具高性能与可扩展性。
2025-09-24 23:02:12
950
原创 JVM内存的推荐配置说明和实践
JVM堆的各个区大小分配比例遵循一些基本原则:1、Java整个堆大小设置,Xmx和Xms设置为老年代存活对象的3-4倍(即FullGC之后的老年代内存占用的3-4倍)2、年轻代Xmn的设置为老年代存活对象的1-1.5倍。3、老年代的内存大小设置为老年代存活对象的2-3倍。4、永久代PermSize和MaxPermSize设置为老年代存活对象的1.2-1.5倍。另:1、Sun官方建议年轻代的大小为整个堆的3/8左右, 所以按照上述设置的方式,基本符合Sun的建议。2、...
2022-05-17 23:29:05
1162
2
转载 Kafka是如何实现高吞吐率的
Kafka是分布式消息系统,需要处理海量的消息,Kafka的设计是把所有的消息都写入速度低容量大的硬盘,以此来换取更强的存储能力,但实际上,使用硬盘并没有带来过多的性能损失kafka主要使用了以下几个方式实现了超高的吞吐率:##1、顺序读写kafka的消息是不断追加到文件中的,这个特性使kafka可以充分利用磁盘的顺序读写性能顺序读写不需要硬盘磁头的寻道时间,只需很少的扇区旋转时间,所以速...
2018-10-29 10:43:13
265
转载 Spring @Transactional
Venus框架加入了对事务传播级别的检测,如果传播级别不是REQUIRED并且没有加入白名单,则会抛出异常,禁止启动,这也可能是你看到这篇文章的原因之一 。是否继续阅读如果你很清楚以下几点的话,直接跳到 【如何避免启动异常】章节 的内容。事务不同传播级别的意义不同传播级别在嵌套事务下的不同反应不同事务传播级别对链接池的影响如果你不清楚上面的几点的话可以花一点时间看一
2017-05-02 14:46:54
546
转载 Hibernate延迟加载实现原理
通过将class的lazy属性设置为true,来开启实体的延迟加载特性。如果我们运行下面的代码:User user=(User)session.load(User.class,"1");(1) System.out.println(user.getName()); (2) 当运行到(1)处时,Hibernate并没有发起对数据的查询,如果我们此时
2015-07-08 16:07:10
437
转载 nginx平台初探(100%) — Nginx开发从入门到精通
nginx平台初探(100%)初探nginx架构(100%)众所周知,nginx性能高,而nginx的高性能与其架构是分不开的。那么nginx究竟是怎么样的呢?这一节我们先来初识一下nginx框架吧。nginx在启动后,在unix系统中会以daemon的方式在后台运行,后台进程包含一个master进程和多个worker进程。我们也可以手动地关掉后台模式,让nginx在前台运行,并且通过
2015-07-08 15:51:08
10582
转载 redis缓存的安装和使用
分类: 缓存 redis jedis 2012-05-09 15:48 15699人阅读 评论(3) 收藏 举报redis数据库liststringintegerspringRedis介绍 Redis本质上一个Key/Value数据库,与Memcached类似的NoSQL型数据库,但是他的数据可以持久化的保存在磁盘上,解决了服务重启后数据不丢失的问题,他的值可以是string(字
2015-07-08 15:50:01
284
转载 sql建自增序列号
第一步:创建一个表。复制代码代码如下:create table Test_Table( ID number(11) primary key,Name varchar(50) not null,Value1 varchar(50) not null) 第二步:创建一个自增序列以此提供调用函数。复制代码代码如下:create
2015-07-08 15:47:08
4905
转载 Flex头部中的fx、mx和s命名空间
Flex 4带给我们的,是全新的命名空间。了解这些命名空间必定是一件好事情。Flex 4有三个非常重要的命名空间,分别是: •xmlns:fx=”http://ns.adobe.com/mxml/2009″ •xmlns:mx=”library://ns.adobe.com/flex/halo” •xmlns:s=”library://ns.adobe.com/flex/spark
2015-07-08 15:45:31
893
原创 Flex日期触发change避免两次初始化
protected vartmpText:int = 0;private vartmp:String="";protected functionCNT_DATE_B_changeHandler(event:CalendarLayoutChangeEvent):void{if(tmpText==0){tmpText++;return;}if(CNT_DAT
2015-07-08 15:43:33
597
1
原创 Flex中时间日期计算
var beg_:String = REG_DATE_BEGIN.text;var end_:String = REG_DATE_END.text; var beg:Date=new Date(beg_.substr(0,4), (parseInt(beg_.substr(4,2))-1), beg_.substr(6,2));var end:Date=new Date(end_.
2015-07-08 15:41:41
415
原创 mysql索引原理相关问题
前言索引的基本原理索引的类型锁机制索引的优化影响结果集性能查询工具mysql架构优化缓存优化一道思考题 一个一亿条记录的表,采用索引和不采用索引性能比怎样?索引的基本原理
2015-07-08 15:36:11
386
原创 在sql里面加判断条件
select b.bnk_nm as CAP_CORG_NM,a.* from ( select c.*, (case when c.CAP_CORG_Y like '%_DC' then SUBSTR(c.CAP_CORG_Y,0,LENGTH(c.CAP_CORG_Y)-3) when c.CAP_C
2015-07-08 15:25:16
2236
转载 pl/sql developer 中文字段显示乱码
一、pl/sql developer中文字段显示乱码原因:因为数据库的编号格式和pl /sql developer的编码格式不统一造成的。二、查看和修改oracle数据库字符集:selectuserenv('language') from dual;查询结果:SIMPLIFIEDCHINESE_CHINA.AL32UTF8--修改oracle
2015-07-08 15:24:35
649
转载 JAVA调用Oracle分页SQL用法
1.第一种写法select *from (selectrownum rm,a.* from ( selectxs.xh,xs.xbm,cf.xm,cf.qfr,cf.qfrq from cfxxb cf,xsjbxxb xs wherecf.xh=xs.xh and cf.cflx='警告'and cf.xm like '%李%' orderby
2015-07-08 15:23:54
544
转载 Oracle Sql 中常用字符串处理函数
小写字母转大写字母:upper();大写字母转小写字母:lower();字符串截取函数:substr(str,a,b);a,b为整数,str为字符串,截取字符串str从a开始的b位字符,当a为-1时从字符串右边至左开始查找,例:select substr('abcd',2,2) from dual;---返回bc;字符串连接:||
2015-07-08 15:22:28
698
转载 SQL Oracle 查询出来的数据取第一条
select * from (select * from order by ) where rownum=1;select * from (select * from order by desc) where rownum=1;
2015-07-08 15:13:59
1067
《可伸缩服务架构:框架与中间件》- 完整书签
2018-09-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅