- 博客(45)
- 收藏
- 关注
原创 【MySQL】聚簇索引与非聚簇索引
摘要:聚簇索引将索引与数据合并存储,InnoDB自动创建,通常基于主键列,具有快速访问和节省IO的优点,但插入依赖顺序且主键更新代价高。非聚簇索引(二级索引)存储指定列和主键值,查询时需回表操作。联合索引属于非聚簇索引类型。建议使用有序ID作为主键以优化性能。
2025-12-23 10:14:01
238
原创 【MySQL】泛泛而谈之索引的整体结构
摘要:MySQL索引是一种提升查询效率的数据结构,其核心是B+树。索引通过减少磁盘IO和加速查找来提高性能,但也增加了存储空间和维护成本。索引以16KB的页为基本单位存储,通过多级目录页构建层次结构。当数据量增大时,会形成多级B+树结构,使查询从逐页遍历变为高效的范围定位。不过索引会降低数据修改操作的效率,需要权衡使用。
2025-12-23 10:13:32
407
原创 【MySQL】MySQL窗口函数
在 MySQL 8.0 及以后版本中,窗口函数(Window Functions)为数据分析和处理提供了强大的工具。窗口函数允许在查询结果集上执行计算,而不必使用子查询或连接,这使得某些类型的计算更加高效和简洁。
2025-07-04 19:36:01
263
原创 【MySQL】MySQL 索引的设计原则
摘要:索引创建应遵循以下原则:适合创建索引的情况包括具有唯一性约束的字段、频繁查询或排序的列、连接操作字段等;不适合创建索引的情况包括数据量小的表、重复值多的字段、频繁更新的表等。创建索引时要考虑字段类型、区分度和使用频率,避免冗余索引。联合索引优于单列索引,但需注意字段顺序。(150字)
2024-12-26 15:16:45
200
原创 【MySQL】MySQL 8.0的隐藏索引
MySQL 8.0隐藏索引功能摘要 MySQL 8.0引入了隐藏索引功能,解决了早期版本索引删除后无法恢复的问题。隐藏索引允许在不实际删除索引的情况下,使查询优化器忽略该索引。具体操作包括:创建表时指定隐藏索引(invisible关键字)、切换索引可见性(VISIBLE/invisible)、创建新索引时设置可见性。此外,可通过修改optimizer_switch参数(use_invisible_indexes=on)让隐藏索引对优化器可见。这一特性为索引管理提供了更灵活的测试和回滚机制,特别适合大表索引变
2024-12-26 13:45:11
323
原创 【MySQL】关于MySQL的全文索引
本文介绍了MySQL全文索引的使用方法。通过创建带有全文索引的表demo,比较了传统like查询和全文索引查询的区别。全文索引使用match+against语法,但受限于innodb_ft_min_token_size参数(默认3),只有当检索词长度≥3时才能被索引。演示了如何查询配置参数,并通过实际查询示例展示了全文索引的工作原理。最后使用explain分析查询计划,验证了全文索引的使用情况。全文索引比like查询效率更高,适合文本搜索场景。
2024-12-25 18:58:17
325
原创 【Zookeeper】四,Zookeeper节点类型、通知、仲裁、会话
Zookeeper采用树状znode节点结构,支持独立和仲裁两种服务器模式。仲裁模式下通过法定人数机制确保数据一致性。znode分为持久、临时、有序等四种类型,临时节点随会话结束自动删除。客户端通过监视点机制接收节点变更通知,需重复设置监视点以持续监听。会话期间遵循FIFO顺序执行请求,会话终止时临时节点自动清除。Zookeeper通过版本号实现乐观并发控制,确保数据操作的原子性。
2024-11-27 21:32:21
1343
原创 【Zookeeper】三,Zookeeper的安装与基本操作
本文介绍了Zookeeper的安装与基本操作。安装过程包括下载tar包、解压到指定目录、配置数据存储路径并启动服务端和客户端。目录结构包含bin(启动脚本)、conf(配置文件)和lib(依赖库)。基本操作演示了创建/删除znode节点、查看目录列表、设置和获取节点数据等命令。客户端连接过程会经历会话建立、初始化等阶段,最终输出SyncConnected事件表示连接成功。通过示例展示了如何操作/test节点进行数据读写。
2024-11-27 20:45:57
739
原创 【Zookeeper】二,主从应用(master-worker架构)
本文探讨了主从架构中的关键问题与解决方案。主节点负责监控从节点状态和任务分配,系统面临主节点崩溃、从节点崩溃和通信故障三大挑战。针对主节点故障,提出了备份主节点机制和脑裂防范措施;从节点故障需任务重分配能力;通信故障需处理任务重复执行问题。文章总结了架构四大需求:主节点选举、崩溃检测、组成员管理和元数据管理,并指出ZooKeeper能提供实现这些原语的关键机制。最后通过烹饪类比解释了"原语"概念,即构建复杂系统的基础构件。
2024-11-18 20:21:13
1577
1
原创 【Zookeeper】一,Zookeeper的使命
摘要:Zookeeper是分布式系统协作工具,基于Fast Paxos算法实现进程间协调。它解决了分布式应用中模块协同的难题,支持主从选举、崩溃检测等功能,被HBase、Kafka等系统采用。其命名源于管理"动物园"般的分布式组件,让开发者专注于业务逻辑而非底层协调。Zookeeper不适合海量存储,主要通过网络通信实现并发控制,适用于多地域部署的系统协同场景。(149字)
2024-11-18 16:25:40
515
原创 【MySQL】九,MySQL逻辑架构剖析
MySQL服务器处理客户端请求的过程可分为三层架构:连接层负责建立TCP连接并进行身份验证;服务层包含SQL接口、解析器、优化器和查询缓存(8.0已移除),负责SQL解析、优化和执行计划生成;引擎层通过插件式存储引擎实现数据存储和提取。底层数据以文件形式存储在文件系统中,不同存储引擎提供不同功能。简化架构分为连接层、SQL处理层和存储引擎层,实现了客户端请求处理与数据存储的分离。
2022-12-31 20:13:49
489
1
原创 【Java】Object数组对象转实体对象
摘要:本文介绍了一个Object数组转Java Bean的工具类DataConvertUtil,通过反射机制匹配构造函数参数类型,将数组元素转换为目标实体类对象。使用时需注意数组元素顺序要与实体类构造方法参数顺序一致。示例展示了如何将包含Long和String的Object数组转换为Student对象,输出结果为Student(id=1, name="张三")。该工具类简化了数据类型转换过程,提高了开发效率。
2022-02-23 16:07:06
3601
原创 【Tomcat】关于“IDEA 集成 Tomcat后,控制台乱码”问题的解决
问题说明在IDEA中配置完 Tomcat后,启动的时候,会遇到控制台输出中文乱码的情况。一般情况下,只需要进行简单的配置,即可解决这个问题,不必像其他文章中说的那样繁琐。解决方式在 IDEA 中,依次选择 File 、Settings,在弹出的窗口中,选择***Editor***、General、Console将上图中,箭头所标记处的选择更改为 UTF-8,然后Apply、OK如果无法解决问题,可参考其他文章,此类相似的文章,网上实在是太多了。...
2022-02-23 13:40:45
474
原创 【Java】对于JMM,Volatile的理解
Java内存模型(JMM)是一种抽象规范,定义了线程如何通过工作内存与主内存交互。JMM具有可见性、原子性和有序性三大特性,规定了线程同步时的内存访问规则。Volatile作为轻量级同步机制,能保证可见性和禁止指令重排,但不保证原子性。要解决原子性问题,可使用synchronized或AtomicInteger。JMM通过规范线程间通信机制,解决了主从内存同步延迟和指令重排导致的可见性与有序性问题,其中synchronized和volatile是关键解决方案。
2021-07-26 11:46:07
256
原创 【Redis】Strings常用指令及位图
set、get、setex、setnxset:设置一个key的value值。get:获取一个key的value值。setex:设置一个key的value值,并指定失效时间。setnx:当key不存在的时候,设置一个key的value值。key存在设置失败。127.0.0.1:6379> set name xupengOK127.0.0.1:6379> get name"xupeng"127.0.0.1:6379> setnx name zhuang(integer) 0
2021-03-14 10:46:39
169
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅