- 博客(12)
- 收藏
- 关注
原创 JAVA:简单易懂记住线程池(一)
线程池是一种线程管理机制,通过预先创建和复用线程来优化系统性能。其工作流程类似银行窗口系统:任务优先由核心线程处理,队列满时创建新线程,最终触发拒绝策略。相比频繁创建线程,线程池能复用资源、控制并发数、提高响应速度。核心参数包括线程数、队列容量和拒绝策略等。创建方式有Executors快捷工厂和自定义ThreadPoolExecutor两种,提供四种拒绝策略处理超载任务。线程池能有效管理系统资源,是优化多线程应用的利器。
2026-02-01 21:26:58
407
原创 Mysql:简单易懂了解分表
数据库分表策略分为水平分表和垂直分表。水平分表按行拆分,将大数据表分散到结构相同的多张表中,适用于数据量过大或需按时间、地域划分的场景,优点是可扩展性强,但跨表查询复杂。垂直分表按列拆分,将宽表分为多个不同结构的表,适合字段过多、冷热数据分离或安全隔离的情况,优点是提升查询效率,但需频繁JOIN操作。选择策略建议优先考虑垂直分表解决性能问题,当数据量极大时再采用水平分表。垂直分表能解决80%的性能需求,且复杂度较低。
2026-01-19 20:26:41
432
原创 Mysql:SQL优化常用手段及explain使用(二)
本文通过五个典型案例展示了使用EXPLAIN进行SQL调优的方法:1)通过添加单列或复合索引优化全表扫描;2)利用复合索引消除文件排序;3)创建覆盖索引提升查询效率;4)遵循最左前缀原则设计索引;5)避免索引失效场景(如列运算、函数、类型转换等)。文章还介绍了高级调优技巧,包括JSON格式分析、EXPLAIN ANALYZE、优化器提示和索引使用统计,强调EXPLAIN是发现问题的手段,最终目标是通过索引优化、SQL改写等方案解决性能瓶颈。
2026-01-18 16:27:12
242
原创 Mysql:SQL优化常用手段及explain使用(一)
SQL性能优化检查清单:通过EXPLAIN分析查询执行计划是核心优化手段。重点关注type列(访问类型),从最优到最差依次为system>const>eq_ref>ref>range>index>ALL,至少应达到range级别。检查key列确保实际使用索引,避免key为NULL的全表扫描。注意Extra列中的警告信息,如Using filesort和Using temporary需要优先优化。优化建议包括:添加合适索引、使用覆盖索引、优化ORDER BY/GROUP B
2026-01-17 23:04:39
1060
原创 JAVA:简单易懂了解锁升级
锁升级是JVM优化synchronized性能的机制,通过无锁→偏向锁→轻量级锁→重量级锁的渐进式升级,在保证线程安全的同时最小化性能开销。偏向锁优化单线程重复访问,轻量级锁通过自旋应对短时竞争,重量级锁则在激烈竞争时启用内核级调度。整个过程由JVM自动完成,实现从低开销到高保障的智能过渡,完美平衡了并发场景下的效率与安全性。
2026-01-16 22:27:59
1017
原创 JAVA:简单易懂了解JMM
摘要:JVM(Java虚拟机)是Java程序运行的平台环境,负责类加载、内存管理和字节码执行等具体功能;JMM(Java内存模型)则是定义多线程并发访问内存的抽象规则,确保可见性、有序性和原子性。JVM如同实体工厂,JMM则是工厂的操作规范。JMM的核心包括Happens-Before原则、主内存/工作内存抽象模型,以及volatile、synchronized等关键字的内存语义。理解JMM能帮助开发者编写正确高效的并发程序,而JVM提供了程序运行的基础设施。二者共同构成了Java并发编程的基础框架。
2026-01-14 22:39:50
829
原创 Mysql:int(1) 和 int(10)的区别(常见误区)
摘要:MySQL中int(1)和int(10)的区别仅在于显示宽度而非存储空间,两者都占用4字节且数值范围相同。括号中的数字仅在启用ZEROFILL时影响显示格式(如补零),否则无实际影响。8.0版本已废弃ZEROFILL属性,建议需要格式化时改用LPAD函数。其他整数类型的显示宽度也不改变存储特性,实际应用中通常可忽略该参数,除非需要特定显示格式。
2026-01-13 22:33:45
186
原创 Mysql之简单易懂了解MVCC
MVCC 就是:每个事务看到的是数据库在某个时间点的"快照",而不是实时数据。通过版本链和 ReadView 机制,实现读写不冲突和高并发。版本链:每次修改都记录旧版本,形成链表ReadView:事务开始时创建,决定哪些版本可见判断规则:沿着版本链找,找到第一个对当前事务可见的版本隔离级别:读已提交 vs 可重复读的区别在于 ReadView 的创建时机。
2026-01-12 13:34:19
786
原创 Mysql:简单易懂学会索引优化
数据库索引的核心作用与优化策略 索引是数据库中的"目录",通过预先排序的数据结构(如B+树)加速查询。其工作原理类似书籍索引:通过有序排列的键值快速定位数据位置,避免全表扫描。优化要点包括:1)遵循最左前缀原则设计复合索引;2)优先为高选择性列建索引;3)利用覆盖索引减少I/O;4)避免索引失效操作(如函数计算、通配符开头的LIKE)。合理使用索引能在查询性能和维护成本间取得平衡,显著提升WHERE、JOIN、ORDER BY等操作的效率。
2026-01-12 09:21:32
551
原创 Mysql:简单易懂了解数据引擎
摘要:MySQL采用可插拔的存储引擎架构,主要引擎包括:InnoDB(默认引擎,支持事务、行级锁和崩溃恢复,适用于高并发业务)、MyISAM(读多写少场景,现已过时)、Memory(内存存储,速度快但数据易失)、Archive(高压缩归档存储)和CSV(数据交换)。建议优先选择InnoDB,它具备ACID事务、MVCC等特性,适合绝大多数业务场景;特殊需求如临时缓存可选Memory,历史归档可选Archive。存储引擎的选择直接影响数据库性能与功能特性。
2026-01-11 22:37:00
772
原创 Mysql:简单易懂了解MVCC
MVCC(多版本并发控制)通过快照机制实现读写不冲突。核心原理是:1)每行数据维护版本链,记录历史版本;2)事务创建ReadView,根据事务ID判断可见性。读操作看到的是事务开始时的数据快照,写操作更新最新版本。不同隔离级别通过调整ReadView创建时机实现:读已提交每次查询新建ReadView,可重复读仅首次查询创建。MVCC显著提升并发性能,避免了读写阻塞问题。
2026-01-10 22:07:25
1181
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅