<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[YH00154的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/YH00154</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; YH00154]]></copyright><item><title><![CDATA[MySQL表字段要设置为NOT NULL,有什么说法吗]]></title><link>https://blog.youkuaiyun.com/YH00154/article/details/153737174</link><guid>https://blog.youkuaiyun.com/YH00154/article/details/153737174</guid><author>YH00154</author><pubDate>Wed, 22 Oct 2025 16:18:12 +0800</pubDate><description><![CDATA[MySQL数据库设计中，将字段设为NOTNULL能提升性能、确保数据一致性并简化开发。关键优势包括：节省存储空间（NULL值需额外位图标记）、提高索引效率、避免计算异常；强制业务逻辑明确性，减少空指针检查；优化查询计划，加速聚合函数。建议数值字段默认0，字符串默认空值，时间戳设为当前时间。仅在必须区分&quot;无值&quot;和默认值的业务场景（如选填生日字段）才允许NULL。NOTNULL配合合理默认值是实现高效可靠数据库设计的重要原则。]]></description><category></category></item><item><title><![CDATA[关于复杂Sql的分析以及涉及例程如何理解]]></title><link>https://blog.youkuaiyun.com/YH00154/article/details/152329189</link><guid>https://blog.youkuaiyun.com/YH00154/article/details/152329189</guid><author>YH00154</author><pubDate>Tue, 30 Sep 2025 17:12:06 +0800</pubDate><description><![CDATA[摘要：解析复杂SQL需系统拆解和工具辅助，核心步骤包括：1）手动拆解顶层结构，分析嵌套组件和表连接；2）使用SQL格式化、可视化工具提升效率；3）重点处理多层嵌套、窗口函数等场景。对于存储过程等例程，需明确类型、拆解内部逻辑，并通过元数据查询和调试工具分析依赖关系。整体策略是&quot;格式化-拆解-可视化-验证&quot;，通过分层解析和工具辅助来理解复杂SQL逻辑。]]></description><category></category></item><item><title><![CDATA[SEO:Java项]]></title><link>https://blog.youkuaiyun.com/YH00154/article/details/152328726</link><guid>https://blog.youkuaiyun.com/YH00154/article/details/152328726</guid><author>YH00154</author><pubDate>Tue, 30 Sep 2025 17:00:10 +0800</pubDate><description><![CDATA[技术博客SEO优化指南：从基础到Java实现 SEO是通过优化内容提升搜索引擎自然排名的策略。对技术博客而言，SEO需聚焦三大模块： 技术SEO：优化URL结构、移动适配、网站速度，确保爬虫能抓取代码块等复杂内容，使用Schema标记增强内容理解。 内容SEO：针对技术长尾词（如&quot;React Hooks清理函数用法&quot;）创作深度内容，采用&quot;问题-解决方案&quot;结构，保持代码示例真实可用，通过内部链接构建知识体系。 外部SEO：在技术社区引流，获取高质量反向链接。 Java后]]></description><category></category></item><item><title><![CDATA[测试:压力测试]]></title><link>https://blog.youkuaiyun.com/YH00154/article/details/152308923</link><guid>https://blog.youkuaiyun.com/YH00154/article/details/152308923</guid><author>YH00154</author><pubDate>Tue, 30 Sep 2025 09:40:20 +0800</pubDate><description><![CDATA[压力测试是通过模拟高负载环境验证系统性能、稳定性和容错能力的关键手段。本文系统介绍了压力测试全流程：1）明确测试目标；2）准备测试环境与数据；3）选择合适的工具（如JMeter、k6）；4）设计测试场景；5）执行测试与监控；6）分析结果并输出报告。文章还提供了快速生成10000条测试数据和执行10000次请求的具体实现方案，涵盖关系型/非关系型数据库的数据生成方法，以及JMeter、Python脚本、k6等多种工具的使用技巧。通过规范的压测流程，可以准确评估系统性能瓶颈，为优化和扩容提供依据。]]></description><category></category></item><item><title><![CDATA[提分项:自动化测试]]></title><link>https://blog.youkuaiyun.com/YH00154/article/details/152307016</link><guid>https://blog.youkuaiyun.com/YH00154/article/details/152307016</guid><author>YH00154</author><pubDate>Tue, 30 Sep 2025 08:55:21 +0800</pubDate><description><![CDATA[自动化测试是提升软件测试效率的核心技术，主要包括测试理论、编程语言、测试框架和工具链等关键要素。核心技术点涵盖：1）测试基础理论（用例设计、缺陷管理）；2）编程语言（Java/Python为主）；3）测试框架（单元测试、接口/UI自动化）；4）工具链（Git、CI/CD等）。学习路径建议分三阶段：先掌握测试理论和编程基础，再学习接口/UI自动化框架，最后通过实战项目落地并集成CI/CD。重点推荐优先掌握接口自动化，因其性价比最高，同时需注意避免&quot;为了自动化而自动化&quot;，重视脚本可维护性。学]]></description><category></category></item><item><title><![CDATA[从“农植“专业转IT行业]]></title><link>https://blog.youkuaiyun.com/YH00154/article/details/152273264</link><guid>https://blog.youkuaiyun.com/YH00154/article/details/152273264</guid><author>YH00154</author><pubDate>Mon, 29 Sep 2025 16:33:17 +0800</pubDate><description><![CDATA[摘要：软件测试是跨专业进入IT行业的较易入门方向。学习路径可分四步：1.建立基础认知，理解测试目标与原则；2.掌握测试流程与用例设计方法；3.通过实战项目练习手动测试；4.学习工具使用并进阶自动化测试。重点在于培养测试思维，包括怀疑精神、用户视角和逆向思考能力。建议从功能测试入手，逐步学习缺陷管理工具（禅道/Jira）和接口测试工具（Postman），最终接触自动化测试（Python+Selenium）。]]></description><category></category></item><item><title><![CDATA[分库分表后如何快速处理分页]]></title><link>https://blog.youkuaiyun.com/YH00154/article/details/152028997</link><guid>https://blog.youkuaiyun.com/YH00154/article/details/152028997</guid><author>YH00154</author><pubDate>Wed, 24 Sep 2025 10:33:50 +0800</pubDate><description><![CDATA[本文提出了一种基于Elasticsearch+HBase+Binlog的实时数据通道方案，解决分库分表环境下的分页查询性能问题。系统架构包含四层：Binlog捕获层（Canal）、消息队列层（Kafka）、存储层（HBase）和检索层（Elasticsearch）。方案重点实现了数据实时同步机制，包括HBase批量写入优化和ES增量索引策略，并提供性能优化指标（如HBase写入TPS≥5万、ES查询延迟&lt;100ms）和容灾保障措施。针对不同查询场景，系统支持HBase精确查询（&lt;10ms）和ES]]></description><category></category></item><item><title><![CDATA[关于JDK8]]></title><link>https://blog.youkuaiyun.com/YH00154/article/details/151954399</link><guid>https://blog.youkuaiyun.com/YH00154/article/details/151954399</guid><author>YH00154</author><pubDate>Mon, 22 Sep 2025 09:22:54 +0800</pubDate><description><![CDATA[JDK8仍占据65%企业应用的三大主因：1.兼容性风险（模块化系统破坏反射，第三方库适配不足）；2.升级成本高（全链路测试+业务改造费用远超维护JDK8）；3.LTS策略差异（JDK8商业支持延至2030年）。迁移拐点将出现在2025年后，由安全漏洞、框架强制要求（如SpringBoot4）和云原生需求驱动。目前JDK17占比仅8.7%，但作为免费LTS版本正逐步被新兴企业采用。建议采用渐进式升级路径（8→11→17），并分阶段实施模块化改造。]]></description><category></category></item><item><title><![CDATA[ZGC 生产环境调优指南]]></title><link>https://blog.youkuaiyun.com/YH00154/article/details/151854980</link><guid>https://blog.youkuaiyun.com/YH00154/article/details/151854980</guid><author>YH00154</author><pubDate>Fri, 19 Sep 2025 09:25:46 +0800</pubDate><description><![CDATA[ZGC调优摘要：Java11引入的ZGC垃圾收集器通过并发标记-转移算法实现亚毫秒级停顿。调优需平衡停顿时间(≤10ms)、吞吐量(≥95%)、内存利用率和CPU占用。核心参数包括堆大小(-Xms/-Xmx)、并发线程数(-XX:ConcGCThreads)和GC触发间隔(-XX:ZCollectionInterval)。针对不同场景：1)低延迟系统需固定堆大小并优化线程数；2)大数据处理建议启用大页和预清理；3)高并发服务应降低GC线程优先级。监控推荐jstat、JFR和GCEasy工具，重点关注停顿突增]]></description><category></category></item><item><title><![CDATA[Elasticsearch联合查询的实现]]></title><link>https://blog.youkuaiyun.com/YH00154/article/details/151854519</link><guid>https://blog.youkuaiyun.com/YH00154/article/details/151854519</guid><author>YH00154</author><pubDate>Fri, 19 Sep 2025 09:13:10 +0800</pubDate><description><![CDATA[Elasticsearch中的&quot;联合查询&quot;通过布尔查询实现多条件组合，不支持传统JOIN操作。核心子句包括must（必须匹配）、should（至少匹配一个）、must_not（排除）和filter（精确过滤）。示例展示了如何组合产品名称、价格范围和类别查询，同时排除特定品牌。性能优化建议优先使用filter子句，复杂关系可考虑nested或join类型。实际应用中需平衡查询复杂度与性能，建议通过测试工具验证查询效果。]]></description><category></category></item><item><title><![CDATA[虚拟线程的使用及应用场景]]></title><link>https://blog.youkuaiyun.com/YH00154/article/details/151750483</link><guid>https://blog.youkuaiyun.com/YH00154/article/details/151750483</guid><author>YH00154</author><pubDate>Tue, 16 Sep 2025 10:16:01 +0800</pubDate><description><![CDATA[Java19引入的虚拟线程(VirtualThreads)是轻量级并发模型，显著提升高并发应用性能。核心特点包括：每秒可创建数百万线程，由JVM自动调度，兼容传统线程API。适用于高并发IO服务、阻塞操作等场景，内存占用仅200B/线程，支持百万级并发。相比平台线程，虚拟线程在IO密集型任务中优势明显，但不适合CPU密集型任务。最佳实践推荐用于网络服务等IO阻塞场景，可通过Executors.newThreadPerTaskExecutor快速创建。虚拟线程大幅简化了Java并发编程，是云原生时代的重要技术]]></description><category></category></item><item><title><![CDATA[Java中的线程与虚拟线程]]></title><link>https://blog.youkuaiyun.com/YH00154/article/details/151750304</link><guid>https://blog.youkuaiyun.com/YH00154/article/details/151750304</guid><author>YH00154</author><pubDate>Tue, 16 Sep 2025 10:13:14 +0800</pubDate><description><![CDATA[Java线程模型变革：虚拟线程VS平台线程 摘要：Java 21正式引入虚拟线程(Loom项目)，与传统平台线程形成鲜明对比。虚拟线程作为JVM管理的轻量级用户态线程，内存开销仅2KB起步，支持百万级并发，特别适合I/O密集型场景；而平台线程直接映射OS内核线程，适合CPU密集型任务。关键区别在于：虚拟线程通过JVM用户态调度实现高效上下文切换，在阻塞操作时自动挂起不占用OS资源。开发者可通过Thread.startVirtualThread或VirtualThreadPerTaskExecutor创建虚拟]]></description><category></category></item><item><title><![CDATA[JVM调优面试技巧]]></title><link>https://blog.youkuaiyun.com/YH00154/article/details/151721671</link><guid>https://blog.youkuaiyun.com/YH00154/article/details/151721671</guid><author>YH00154</author><pubDate>Mon, 15 Sep 2025 16:57:56 +0800</pubDate><description><![CDATA[摘要：JVM调优是Java面试重点，需掌握内存管理、垃圾回收及性能优化。回答时应结合基础概念（如堆内存分区、GC算法）、工具使用（jstat、VisualVM）和实际案例（参数调整减少FullGC）。高频问题包括堆优化、GC器选择和内存泄漏诊断，回答要体现系统性思维。建议提前复习核心参数，使用STAR法则描述调优经验，并承认知识盲区。调优的最终目标是提升应用性能，而非单纯参数调整。]]></description><category></category></item><item><title><![CDATA[原生JS实现行内数据点击展开图片轮播弹窗]]></title><link>https://blog.youkuaiyun.com/YH00154/article/details/151721428</link><guid>https://blog.youkuaiyun.com/YH00154/article/details/151721428</guid><author>YH00154</author><pubDate>Mon, 15 Sep 2025 16:49:04 +0800</pubDate><description><![CDATA[【代码】原生JS实现行内数据点击展开图片轮播弹窗。]]></description><category></category></item><item><title><![CDATA[快速上手 Vue3 + Vite + ElementPlus 项目]]></title><link>https://blog.youkuaiyun.com/YH00154/article/details/151721152</link><guid>https://blog.youkuaiyun.com/YH00154/article/details/151721152</guid><author>YH00154</author><pubDate>Mon, 15 Sep 2025 16:36:21 +0800</pubDate><description><![CDATA[本文介绍了Vue3项目集成ElementPlus的全过程：首先使用Vite创建Vue3项目，然后安装ElementPlus并在main.js中全局引入。接着展示了如何创建包含Element按钮和警告组件的基础组件，并修改App.vue进行渲染。文章还提供了常用目录结构说明，以及可选的路由配置和按需导入优化方案（使用unplugin-vue-components插件）。最后指出项目启动后将显示ElementPlus组件效果，可通过本地3000端口访问。整个过程涵盖了从项目初始化到UI组件库集成的关键步骤。]]></description><category></category></item><item><title><![CDATA[关于Vue3的 “使用注意事项“]]></title><link>https://blog.youkuaiyun.com/YH00154/article/details/151718330</link><guid>https://blog.youkuaiyun.com/YH00154/article/details/151718330</guid><author>YH00154</author><pubDate>Mon, 15 Sep 2025 15:17:39 +0800</pubDate><description><![CDATA[Vue3使用注意事项摘要：Vue3引入Composition API、性能优化和TypeScript支持等新特性。使用时需注意：1)正确使用Composition API处理响应式数据；2)了解Proxy响应式系统的边界情况；3)掌握组件新特性如Fragments和Teleport；4)优化TypeScript集成；5)处理Vue2迁移的兼容性问题；6)实践性能优化。建议优先学习Composition API，注意响应式细节，利用TypeScript提升代码质量。新项目直接采用Vue3，迁移项目需逐步重构并]]></description><category></category></item><item><title><![CDATA[如何快速的排查Bug]]></title><link>https://blog.youkuaiyun.com/YH00154/article/details/151614949</link><guid>https://blog.youkuaiyun.com/YH00154/article/details/151614949</guid><author>YH00154</author><pubDate>Fri, 12 Sep 2025 11:53:07 +0800</pubDate><description><![CDATA[文章摘要：本文介绍系统化的&quot;排查五步法&quot;精确复现问题，包括建立最小复现环境、记录触发条件、定位问题源（采用二分法和日志追踪）、诊断分析（变量检查和堆栈追踪）以及假设验证。提供了Python代码示例说明调试技巧，推荐pdb/ELK等工具，强调隔离测试、版本对比等黄金法则。指出80%调试时间在定位阶段，建议投资系统化流程而非盲目修改代码，适当休息可获得新视角。]]></description><category></category></item><item><title><![CDATA[EXISTS 与 IN]]></title><link>https://blog.youkuaiyun.com/YH00154/article/details/151313863</link><guid>https://blog.youkuaiyun.com/YH00154/article/details/151313863</guid><author>YH00154</author><pubDate>Mon, 08 Sep 2025 10:13:21 +0800</pubDate><description><![CDATA[SQL查询中EXISTS与IN关键区别：1. 执行机制：IN先执行完整子查询并缓存结果，EXISTS采用短路机制，找到匹配即停止；2. 适用场景：IN适合非关联子查询和小结果集，EXISTS更擅长关联查询和大数据集；3. 性能表现：EXISTS在关联查询中通常效率更高（可提升20-50%性能），而IN语法更简洁；4. NULL处理：IN对NULL敏感，EXISTS不受影响。建议：关联子查询优先用EXISTS，简单值检查用IN，大数据量时EXISTS更优，应结合执行计划分析选择最佳方案。]]></description><category></category></item><item><title><![CDATA[“逻辑“是在应用层面好还是Sql层面.]]></title><link>https://blog.youkuaiyun.com/YH00154/article/details/151312461</link><guid>https://blog.youkuaiyun.com/YH00154/article/details/151312461</guid><author>YH00154</author><pubDate>Mon, 08 Sep 2025 09:44:06 +0800</pubDate><description><![CDATA[摘要：文章探讨了数据库查询设计中逻辑应放在SQL层还是应用层的权衡问题。核心观点是优先将逻辑嵌入SQL层，主要原因包括：1)数据库引擎的高效性，能直接利用索引和并行处理；2)减少网络传输和内存压力；3)确保事务一致性。虽然应用层逻辑可提高可读性，但在大数据场景下会显著降低性能。建议通过视图、ORM工具和SQL格式化来提升可读性，仅在简单操作、频繁变更或跨数据源等特定场景下采用应用层逻辑。最终结论是默认将主要逻辑放在SQL层，兼顾性能与可维护性。]]></description><category></category></item><item><title><![CDATA[码农4年没接触过Sql中的With?]]></title><link>https://blog.youkuaiyun.com/YH00154/article/details/151312071</link><guid>https://blog.youkuaiyun.com/YH00154/article/details/151312071</guid><author>YH00154</author><pubDate>Mon, 08 Sep 2025 09:31:18 +0800</pubDate><description><![CDATA[文章摘要：本文介绍了SQL中WITH子句（公共表表达式CTE）的使用方法。CTE通过创建临时命名结果集提升查询可读性，分为非递归和递归两种类型。文章详细讲解了基础语法、使用场景（如简化嵌套查询、递归处理树形数据）和实际案例（部门薪资分析、组织架构遍历等），并指出注意事项（作用域限制、性能优化等）。合理使用CTE能有效分解复杂SQL，提高代码可维护性，是处理多层次逻辑的推荐方案。]]></description><category></category></item></channel></rss>