<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ch568的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ch568</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ch568]]></copyright><item><title><![CDATA[PostgreSQL vs MySQL]]></title><link>https://blog.youkuaiyun.com/ch568/article/details/157939402</link><guid>https://blog.youkuaiyun.com/ch568/article/details/157939402</guid><author>ch568</author><pubDate>Tue, 10 Feb 2026 14:12:17 +0800</pubDate><description><![CDATA[✅ 更新 0 行 或 serialization failure。你不加锁 / version，就可能“逻辑上错但数据库不报错”一、为什么「只看 SELECT」一定会把你带沟里？状态流转（NEW → PAYED → DONE）👉 PG 的 Serializable =4️⃣ MySQL RR 到底解决了什么？大部分幻读（Next-Key Lock）写：不校验你“是否基于旧认知”“兄弟，你这次判断已经过期了”基于旧读进行写导致的业务错误。❌ 不会帮你“自动算最新值”找当前可见的最新版本。]]></description><category></category></item><item><title><![CDATA[jvm -垃圾回收]]></title><link>https://blog.youkuaiyun.com/ch568/article/details/137876849</link><guid>https://blog.youkuaiyun.com/ch568/article/details/137876849</guid><author>ch568</author><pubDate>Wed, 17 Apr 2024 16:16:22 +0800</pubDate><description><![CDATA[可达性分析法的基本思想是从一组称为“GC Roots”的根对象出发，通过遍历对象之间的引用关系，找到所有与根对象直接或间接相连的对象，这些对象被认为是可达的（活动的），而那些不与根对象相连的对象则被认为是不可达的（垃圾对象）。如果一个对象的内存超过了新生代的容量，以至于无法在新生代中分配足够的空间来存储该对象，那么这个对象就会被直接分配到老年代中。虚拟机栈中存储着每个线程的方法调用栈，每个栈帧中都包含了局部变量表，其中存储了对对象的引用。本地方法栈用于执行本地方法，其中可能会有对对象的引用。]]></description><category></category></item><item><title><![CDATA[jvm -直接内存 - Direct Memory]]></title><link>https://blog.youkuaiyun.com/ch568/article/details/137876669</link><guid>https://blog.youkuaiyun.com/ch568/article/details/137876669</guid><author>ch568</author><pubDate>Wed, 17 Apr 2024 16:01:08 +0800</pubDate><description><![CDATA[常见于NIO操作时，用于数据缓冲区分配回收成本较高，但读写性能高不受VM内存回收管理零拷贝操作： 直接内存位于堆外（off-heap），而不是受到 Java 堆内存管理的限制。这意味着直接内存可以更容易地进行零拷贝操作，例如在进行网络通信、文件 I/O、NIO 操作时，可以直接将数据传输到直接内存中，而不需要经过 JVM 的堆内存。减少垃圾回收压力： 直接内存不受 Java 堆内存管理的影响，因此不会对垃圾收集器的运行造成影响。]]></description><category></category></item><item><title><![CDATA[jvm-常量池 -字符串常量池]]></title><link>https://blog.youkuaiyun.com/ch568/article/details/137626650</link><guid>https://blog.youkuaiyun.com/ch568/article/details/137626650</guid><author>ch568</author><pubDate>Thu, 11 Apr 2024 09:49:54 +0800</pubDate><description><![CDATA[javac 在编译阶段优化，结果已经在编译器确定为 ab 这种动态。]]></description><category></category></item><item><title><![CDATA[jvm -2 虚拟栈 堆 方法区]]></title><link>https://blog.youkuaiyun.com/ch568/article/details/137587790</link><guid>https://blog.youkuaiyun.com/ch568/article/details/137587790</guid><author>ch568</author><pubDate>Wed, 10 Apr 2024 11:01:40 +0800</pubDate><description><![CDATA[​		通过new 关键字 创建对象都会使用堆内存​		通过new 关键字 创建对象都会使用堆内存。]]></description><category></category></item><item><title><![CDATA[jvm - 程数计数器 结构]]></title><link>https://blog.youkuaiyun.com/ch568/article/details/137587666</link><guid>https://blog.youkuaiyun.com/ch568/article/details/137587666</guid><author>ch568</author><pubDate>Wed, 10 Apr 2024 10:47:36 +0800</pubDate><description><![CDATA[​	注意： 需要注意的是，寄存器的数量有限，且不同的CPU架构可能具有不同数量和类型的寄存器。因此，虽然程数计数器通常放在CPU的寄存器中，但随着线程数量的增加或者程序的复杂性，可能会出现寄存器不足的情况，这时候虚拟机可能会采取一些策略来进行寄存器分配和管理，以确保程序的正常执行。​	 JVM 指令集与机器码之间的翻译是由 JVM 的即时编译器（JIT编译器）完成的。JIT编译器的类型有多种，例如 HotSpot JIT、C1 JIT、C2 JIT 等，它们在不同的阶段以不同的方式进行优化。]]></description><category></category></item><item><title><![CDATA[es 聚合查询 cardinality terms 对应java 解析代码]]></title><link>https://blog.youkuaiyun.com/ch568/article/details/137517023</link><guid>https://blog.youkuaiyun.com/ch568/article/details/137517023</guid><author>ch568</author><pubDate>Mon, 08 Apr 2024 17:46:38 +0800</pubDate><description><![CDATA[例如  es 的 categories 擦查询语法。2 如果包含  cardinality 语法。对应jiava 代码组装 和解析数据。对应的 java 解析代码。]]></description><category></category></item><item><title><![CDATA[为什么这些SQL语句逻辑相同，性能却差异巨大？]]></title><link>https://blog.youkuaiyun.com/ch568/article/details/134528428</link><guid>https://blog.youkuaiyun.com/ch568/article/details/134528428</guid><author>ch568</author><pubDate>Fri, 24 Nov 2023 17:32:41 +0800</pubDate><description><![CDATA[对索引字段做函数操作，可能会破坏索引值的有序性，因此优化器就决定放弃走树搜索功能。第二个例子是隐式类型转换，第三个例子是隐式字符编码转换，它们都跟第一个例子一样，因为要求在索引字段上做函数操作而导致了全索引扫描。MySQL 的优化器确实有“偷懒”的嫌疑，即使简单地把 where id+1=1000 改写成 where id=1000-1 就能够用上索引快速查找，也不会主动做这个语句重写。因此，每次你的业务代码升级时，把可能出现的、新的 SQL 语句 explain 一下，是一个很好的习惯。]]></description><category></category></item><item><title><![CDATA[个人成长 --怎么做好事]]></title><link>https://blog.youkuaiyun.com/ch568/article/details/134601673</link><guid>https://blog.youkuaiyun.com/ch568/article/details/134601673</guid><author>ch568</author><pubDate>Fri, 24 Nov 2023 16:46:27 +0800</pubDate><description><![CDATA[为了激励自己，我就在自己的日历上写下了持续俩字。内功就是基础，那什么是基础呢，对于开发人员来说，每个阶段的基础含义不一样，初级开发，会简单的开发，crud 就够了，例如sql ，会写一些 简单的查询，删除等sql ，对于高级开发，分析sql 性能，优化sql ，表结构设计，业务逻辑设计等。因为很多事情都是越做越深，在内容层面，不管是媒体还是教育，我们都在往深水区游，现在遇到的问题没有比之前少，反而是越来越多了，程序开发中，越复杂的系统考验程序员的内功越多，怎么简化问题，这么提高并发，怎么降低接口时长等等。]]></description><category></category></item><item><title><![CDATA[错失恐惧症]]></title><link>https://blog.youkuaiyun.com/ch568/article/details/134558150</link><guid>https://blog.youkuaiyun.com/ch568/article/details/134558150</guid><author>ch568</author><pubDate>Wed, 22 Nov 2023 18:00:18 +0800</pubDate><description><![CDATA[当你知道自己手上做的事情是最有价值的时候，你想获取的信息也会比较集中，大概率会只关注对你现阶段有用的信息，这样，由于种种乱七八糟的信息导致的错失恐惧症也就会减轻甚至消失了。最后，错失恐惧症很大程度上来自于对错失后果的想象和夸大，所以我们不妨逆向思维，如果你真的错失了这些信息和活动，会对你造成多大的影响，算是一种脱敏治疗法，也能帮助你在这个多变的时代找到属于你的不变的事物。可惜的是，作为人类，我们的时间和精力是有限的，对信息的处理能力也是有上限的，我们无法赶上所有的新鲜事，也无法知悉所有的信息。]]></description><category></category></item><item><title><![CDATA[个人成长. --- 三个原则]]></title><link>https://blog.youkuaiyun.com/ch568/article/details/134524488</link><guid>https://blog.youkuaiyun.com/ch568/article/details/134524488</guid><author>ch568</author><pubDate>Tue, 21 Nov 2023 10:04:11 +0800</pubDate><description><![CDATA[行走江湖，每个人都有自己的处事原则，有些原则只适合自己，有些可能普适大众，有些是好原则，有些是坏习惯，如人饮水，冷暖自知。
]]></description><category></category></item><item><title><![CDATA[“order by”是怎么工作的？]]></title><link>https://blog.youkuaiyun.com/ch568/article/details/134503508</link><guid>https://blog.youkuaiyun.com/ch568/article/details/134503508</guid><author>ch568</author><pubDate>Mon, 20 Nov 2023 14:04:59 +0800</pubDate><description><![CDATA[开发应用的时候 ，我们经常会用到按照一定的字段排序规则来返回字段，例如订单列表 ，我们都是默认按照id，创建时间 等字段排序规则字段返回的但是，一些特出场景可能是指定字段，也可能是指定多个字段排序例如下面这个例子这个语句看上去逻辑很清晰，但是你了解它的执行流程吗？今天，我就和你聊聊这个语句是怎么执行的，以及有什么参数会影响执行的行为。]]></description><category></category></item><item><title><![CDATA[VARCHAR(255) 与 VARCAHR(256)的区别在哪里?]]></title><link>https://blog.youkuaiyun.com/ch568/article/details/134448176</link><guid>https://blog.youkuaiyun.com/ch568/article/details/134448176</guid><author>ch568</author><pubDate>Thu, 16 Nov 2023 18:26:04 +0800</pubDate><description><![CDATA[varchar(255) 与 varchar(256) 的区别在哪里]]></description><category></category></item><item><title><![CDATA[mysql count(*) 真的慢吗？]]></title><link>https://blog.youkuaiyun.com/ch568/article/details/134435274</link><guid>https://blog.youkuaiyun.com/ch568/article/details/134435274</guid><author>ch568</author><pubDate>Thu, 16 Nov 2023 14:16:29 +0800</pubDate><description><![CDATA[在开发系统的时候，可能经常需要计算一个表的行数，比如一个订单表的所有订单总数。通常 我们都是解决但是，慢慢我们会发现，随着我们系统的记录行数，表中的数据越来越多，这条语句的执行时间也会越来越长。]]></description><category></category></item><item><title><![CDATA[mysql --- 索引初识篇--MySQL其他索引的创建使用方式]]></title><link>https://blog.youkuaiyun.com/ch568/article/details/133786331</link><guid>https://blog.youkuaiyun.com/ch568/article/details/133786331</guid><author>ch568</author><pubDate>Thu, 12 Oct 2023 11:51:33 +0800</pubDate><description><![CDATA[mysql --- 索引初识篇--MySQL其他索引的创建使用方式]]></description><category></category></item><item><title><![CDATA[mysql --- 索引初识篇--多样化的索引分类]]></title><link>https://blog.youkuaiyun.com/ch568/article/details/133753369</link><guid>https://blog.youkuaiyun.com/ch568/article/details/133753369</guid><author>ch568</author><pubDate>Wed, 11 Oct 2023 13:36:24 +0800</pubDate><description><![CDATA[先列一些大家都听说过的索引称呼：聚簇索引、非聚簇索引、唯一索引、主键索引、联合索引、全文索引、单列索引、多列索引、复合索引、普通索引、二级索引、辅助索引、次级索引、有序索引、B+Tree索引、R-Tree索引、T-Tree索引、Hash索引、空间索引、前缀索引......是不是看的眼花缭乱，这些都是MySQL中索引的一些称呼，一通看下来，估计大家看“索引”两个字都有点不认识了^_^但实际上MySQL中真的有这么多索引类型吗？]]></description><category></category></item><item><title><![CDATA[mysql --- 索引初识篇--索引机制概述]]></title><link>https://blog.youkuaiyun.com/ch568/article/details/133749664</link><guid>https://blog.youkuaiyun.com/ch568/article/details/133749664</guid><author>ch568</author><pubDate>Tue, 10 Oct 2023 16:53:57 +0800</pubDate><description><![CDATA[MySQL索引机制概述
索引是什么 ： 索引就是用来帮助表快速检索目标数据的]]></description><category></category></item><item><title><![CDATA[技术人核心能力 ---- 底层认知篇 --制定个人目标]]></title><link>https://blog.youkuaiyun.com/ch568/article/details/133310358</link><guid>https://blog.youkuaiyun.com/ch568/article/details/133310358</guid><author>ch568</author><pubDate>Tue, 26 Sep 2023 15:10:19 +0800</pubDate><description><![CDATA[个人目标  以始为终 ]]></description><category></category></item><item><title><![CDATA[技术人核心能力 ---- 底层认知篇 --五大最有价值的思维框架]]></title><link>https://blog.youkuaiyun.com/ch568/article/details/133307144</link><guid>https://blog.youkuaiyun.com/ch568/article/details/133307144</guid><author>ch568</author><pubDate>Tue, 26 Sep 2023 14:49:33 +0800</pubDate><description><![CDATA[全面质量管理活动的全部过程，就是质量计划的制订和组织实现的过程，这个过程就是按照PDCA循环，不停顿地周而复始地运转的。，对总结检查的结果进行处理，对成功的经验加以肯定，并予以标准化；以上四个过程不是运行一次就结束，而是周而复始的进行，一个循环完了，解决一些问题，未解决的问题进入下一个循环，这样阶梯式上升的。而双赢思维会促使我们寻求双边利益，有福同享 、有难同当，而不是非此即彼、非赢即输，不是零和博弈，不是他人之得就是我之失。，总结执行计划的结果，分清哪些对了，哪些错了，明确效果，找出问题。]]></description><category></category></item><item><title><![CDATA[技术人核心能力 ---- 底层认知篇 -- 高认知是最重要的核心竞争力]]></title><link>https://blog.youkuaiyun.com/ch568/article/details/133044602</link><guid>https://blog.youkuaiyun.com/ch568/article/details/133044602</guid><author>ch568</author><pubDate>Tue, 19 Sep 2023 21:01:21 +0800</pubDate><description><![CDATA[高层次的认知往往可以向下兼容，但低层次的认知很难真正明白上一个层次的内涵，一切都要达到才能知道，阶段很难跨越，否则就叫顿悟或渐悟。懂者恒懂，不懂者恒不懂。而认知是有层次的，我们具有哪个层次的认知，就是哪个层次的人。所以，人的认知是可以改变的，层次也是可以提升的。层次隔阂既然是难免的，各自做好自己就是第一选择，如果偏巧能够给低层次的人带来促进其提升的影响，那也属于难能可贵的事情，算是功德一件。要知道还有另外一个可能：就是更低层次的人认识不到这种层次是存在的，甚至认为自己的认知便是终极认知标准，舍此无它。]]></description><category></category></item></channel></rss>