LightOf_社区达人页

个人头像照片
LightOf
已加入开发者社区1550

勋章 更多

个人头像照片
专家博主
专家博主
个人头像照片
星级博主
星级博主
个人头像照片
技术博主
技术博主
个人头像照片
门派掌门
门派掌门

成就

已发布595篇文章
52条评论
已回答0个问题
0条评论
已发布0个视频
github地址

技术能力

兴趣领域
  • Go
  • C++
  • 开发框架
  • 设计模式
  • 微服务
  • 中间件
擅长领域
技术认证

暂时未有相关云产品技术能力~

暂无个人介绍

暂无精选文章
暂无更多信息

2024年05月

  • 04.18 22:40:09
    发表了文章 2024-04-18 22:40:09

    【后端面经】【数据库与MySQL】12|数据库锁:明明有行锁,怎么突然就加了表锁?

    【4月更文挑战第15天】在MySQL的InnoDB引擎中,锁通过索引实现,主要锁定叶子节点。查询使用哪个索引,就锁哪个;无索引时锁全表。若查询值不存在,InnoDB会构造临键锁阻止插入。锁在事务结束(Rollback或Commit)时释放。乐观锁在尝试更新时检查数据变化,适合读多写少场景,悲观锁一开始就加锁,适用于写多读少。InnoDB支持行锁和表锁,行锁依赖索引。共享锁允许多个线程加同类型锁,排它锁则独占。
  • 04.17 21:43:49
    发表了文章 2024-04-17 21:43:49

    【MySQL实战笔记】 05 | 深入浅出索引(下)-01

    【4月更文挑战第14天】创建表T的SQL和其索引结构被展示,分析了查询`select * from T where k between 3 and 5`的执行流程,涉及两次回表操作。介绍覆盖索引的概念,指出当查询列包含在索引中时,可以避免回表,提高性能。在市民信息表`tuser`上,是否需要创建身份证号和名字的联合索引取决于查询需求,若高频查询涉及身份证号和姓名,该联合索引是有益的。
  • 04.16 23:24:00
    发表了文章 2024-04-16 23:24:00

    【后端面经】【数据库与MySQL】SQL优化:如何发现SQL中的问题?-02

    【4月更文挑战第13天】该文介绍了几个数据库查询优化技巧。首先,创建覆盖索引如<A,B,C>能加速`select A,B,C from student where A=? and B=? and C=?`的执行。其次,为常用于排序的列建立索引,如在`id,update_time`上建索引,可避免数据排序,显著提高查询速度。优化`count(*)`可通过预估值或使用Redis记录总数,但需注意数据一致性问题。使用索引提示如FORCE INDEX可强制使用特定索引,但应谨慎。将`having`的非聚合条件移到`where`里可提升效率。最后,处理深度分页时
  • 04.15 08:32:43
    发表了文章 2024-04-15 08:32:43

    【后端面经】【数据库与MySQL】SQL优化:如何发现SQL中的问题?

    【4月更文挑战第12天】数据库优化涉及硬件升级、操作系统调整、服务器/引擎优化和SQL优化。SQL优化目标是减少磁盘IO和内存/CPU消耗。`EXPLAIN`命令用于检查SQL执行计划,关注`type`、`possible_keys`、`key`、`rows`和`filtered`字段。设计索引时考虑外键、频繁出现在`where`、`order by`和关联查询中的列,以及区分度高的列。大数据表改结构需谨慎,可能需要停机、低峰期变更或新建表。面试中应准备SQL优化案例,如覆盖索引、优化`order by`、`count`和索引提示。优化分页查询时避免大偏移量,可利用上一批的最大ID进行限制。
  • 04.14 09:31:54
    发表了文章 2024-04-14 09:31:54

    【后端面经】【数据库与MySQL】为什么MySQL用B+树而不用B树?-02

    【4月更文挑战第11天】数据库索引使用规则:`AND`用`OR`不用,正用反不用,范围中断。索引带来空间和内存代价,包括额外磁盘空间、内存占用和数据修改时的维护成本。面试中可能涉及B+树、聚簇索引、覆盖索引等知识点。MySQL采用B+树,因其利于范围查询和内存效率。数据库不使用索引可能因`!=`、`LIKE`、字段区分度低、特殊表达式或全表扫描更快。索引与NULL值处理在不同数据库中有差异,MySQL允许NULL在索引中的使用。
  • 04.13 20:17:21
    发表了文章 2024-04-13 20:17:21

    【后端面经】【数据库与MySQL】为什么MySQL用B+树而不用B树?-01

    【4月更文挑战第10天】B+树是一种多叉树,用于数据库索引,其特征包括叶子节点存储数据并用链表串联,非叶子节点仅存关键字。由于较低的高度和链表结构,B+树提供高效查询和范围查询。索引分类有聚簇(叶子节点存储数据)和非聚簇,以及覆盖、唯一、前缀、联合、全文和哈希索引。聚簇索引如主键索引,非聚簇索引叶子节点存储主键。覆盖索引可避免回表,提高性能。查询遵循最左匹配原则,优化SQL应选取所需列并考虑常见查询。
  • 04.12 22:13:55
    发表了文章 2024-04-12 22:13:55

    【MySQL实战笔记】 04 | 深入浅出索引(上)-02

    【4月更文挑战第9天】InnoDB数据库使用B+树作为索引模型,其中主键索引的叶子节点存储完整行数据,非主键索引则存储主键值。主键查询只需搜索一棵树,而非主键查询需两次搜索,因此推荐使用主键查询以提高效率。在插入新值时,B+树需要维护有序性,可能导致数据页分裂影响性能。自增主键在插入时可避免数据挪动和页分裂,且占用存储空间小,通常更为理想。然而,如果场景仅需唯一索引,可直接设为主键以减少查询步骤。
  • 04.11 22:40:25
    发表了文章 2024-04-11 22:40:25

    【MySQL实战笔记】 04 | 深入浅出索引(上)-01

    【4月更文挑战第8天】这篇文章除了介绍索引的作用和提高查询效率的原理,还探讨了三种常见的数据结构:哈希表、有序数组和搜索树。哈希表适合等值查询,但不支持范围查询;有序数组利用二分查找实现快速等值查询,但更新成本高;二叉搜索树保持平衡时查询高效,但磁盘存储时效率低。文章指出,由于磁盘读取延迟,实际数据库索引设计需考虑减少磁盘访问次数。
  • 04.10 22:29:10
    发表了文章 2024-04-10 22:29:10

    【MySQL实战笔记】03.事务隔离:为什么你改了我还看不见?-02

    【4月更文挑战第7天】数据库通过视图实现事务隔离,不同隔离级别如读未提交、读已提交、可重复读和串行化采用不同策略。以可重复读为例,MySQL使用多版本并发控制(MVCC),每个事务有其独立的视图。回滚日志在无更早视图时被删除。长事务可能导致大量存储占用,应避免。事务启动可显式用`begin`或设置`autocommit=0`,但后者可能意外开启长事务。建议使用`autocommit=1`并显式管理事务,若需减少交互,可使用`commit work and chain`。
  • 04.09 22:33:24
    发表了文章 2024-04-09 22:33:24

    【MySQL实战笔记】03.事务隔离:为什么你改了我还看不见?-01

    【4月更文挑战第6天】MySQL事务的隔离性确保数据操作的完整性和一致性,ACID原则包括原子性、一致性、隔离性和持久性。事务隔离级别有四种:读未提交、读提交、可重复读和串行化,分别解决并发问题如脏读、不可重复读和幻读。不同隔离级别在效率和安全性间权衡,例如读未提交允许未提交变更可见,而串行化通过锁保证安全但可能降低效率。在不同隔离级别下,事务看到的数据状态会有所变化,例如在可重复读级别,事务始终看到初始数据,而在串行化级别,事务会等待其他事务完成再继续,避免数据冲突。
  • 04.08 20:55:09
    发表了文章 2024-04-08 20:55:09

    【MySQL实战笔记】02.一条SQL更新语句是如何执行的-2

    【4月更文挑战第5天】两阶段提交是为确保`redo log`和`binlog`逻辑一致,避免数据不一致。若先写`redo log`, crash后数据可能丢失,导致恢复后状态错误;若先写`binlog`,crash则可能导致重复事务,影响数据库一致性。一天一备相较于一周一备,能缩短“最长恢复时间”,但需权衡额外的存储成本。
  • 04.07 21:45:09
    发表了文章 2024-04-07 21:45:09

    【MySQL实战笔记】02.一条SQL更新语句是如何执行的-1

    【4月更文挑战第4天】SQL更新语句执行涉及查询和日志模块,主要为`redo log`和`binlog`。`redo log`先写日志再写磁盘,保证`crash-safe`;`binlog`记录逻辑日志,支持所有引擎,且追加写入。执行过程分为执行器查找数据、更新内存和`redo log`(prepare状态)、写入`binlog`、提交事务(`redo log`转commit)。两阶段提交确保日志逻辑一致,支持数据库恢复至任意时间点。
  • 04.06 20:48:11
    发表了文章 2024-04-06 20:48:11

    【MySQL实战笔记】01.一条SQL查询语句是如何执行的?

    【4月更文挑战第3天】MySQL执行SQL的流程包括连接器、查询缓存、分析器、优化器和执行器。连接器负责建立连接、权限验证,查询缓存(MySQL 8.0已移除)存储查询结果,分析器解析SQL确保语法正确,优化器选择最佳索引和查询路径,执行器执行查询并管理权限。连接器使用长连接可能导致内存问题,可定期断开或使用`mysql_reset_connection`。注意,更新操作会导致查询缓存失效。
  • 04.05 21:11:31
    发表了文章 2024-04-05 21:11:31

    评论功能里数据库的设计

    【4月更文挑战第2天】本文探讨了评论系统的树形结构设计,提出了四种方法:邻接表、分段式path、Nested Set和Closure Table。针对评论业务功能,如加载评论页和查看回复,优先考虑邻接表和分段式path。采用邻接表思路,设计了评论表结构,包括Uid、Biz、BizID、RootID、PID、Content、索引和级联删除规则。同时提到了索引设计,如Uid、Biz+BizID、PID和Ctime/Utime,以优化查询性能。
  • 04.04 22:39:52
    发表了文章 2024-04-04 22:39:52

    第 284 场周赛(C++ | 枚举 | 分类讨论 | 最短路 | 建反图)

    【4月更文挑战第1天】- [LeetCode 6031](https://leetcode-cn.com/problems/find-all-k-distant-indices-in-an-array/):给定数组 `nums`、键值 `key` 和距离 `k`,找到所有与键值相等且与任意下标距离不超过 `k` 的下标,返回升序排序的列表。找到最小权重。
  • 03.13 20:46:53
    发表了文章 2024-03-13 20:46:53

    软件质量保证与测试知识点总结

    【2月更文挑战第21天】软件质量保证与测试知识点总结
  • 03.12 15:13:45
    发表了文章 2024-03-12 15:13:45

    可被三整除的最大和

    【2月更文挑战第20天】可被三整除的最大和 思路
  • 03.11 21:37:05
    发表了文章 2024-03-11 21:37:05

    2182.构造限制重复的字符串(模拟 贪心 优先队列 C++ Go)

    【2月更文挑战第19天】2182.构造限制重复的字符串(模拟 贪心 优先队列 C++ Go)
  • 03.10 18:30:41
    发表了文章 2024-03-10 18:30:41

    【力扣】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)

    【2月更文挑战第18天】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
  • 03.09 20:49:30
    发表了文章 2024-03-09 20:49:30

    【力扣】2645. 构造有效字符串的最小插入数(动态规划 贪心 滚动数组优化 C++ Go)

    【2月更文挑战第17天】2645. 构造有效字符串的最小插入数(动态规划 贪心 滚动数组优化 C++ Go)
  • 03.08 20:50:35
    发表了文章 2024-03-08 20:50:35

    注册中心机制

    【2月更文挑战第16天】注册中心机制
  • 03.07 21:17:18
    发表了文章 2024-03-07 21:17:18

    微服务架构下服务注册的几种方式

    【2月更文挑战第15天】微服务架构下服务注册的几种方式
  • 03.06 22:19:44
    发表了文章 2024-03-06 22:19:44

    C++智能指针

    【2月更文挑战第14天】介绍C++智能指针
  • 03.05 21:27:40
    发表了文章 2024-03-05 21:27:40

    ElasticSearch的HTTP操作 和Go客户端

    【2月更文挑战第13天】ElasticSearch的HTTP操作 和Go客户端操作
  • 03.04 22:15:24
    发表了文章 2024-03-04 22:15:24

    【Sentinel Go】新手指南、流量控制、熔断降级和并发隔离控制

    【2月更文挑战第12天】随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。
  • 03.03 21:40:08
    发表了文章 2024-03-03 21:40:08

    【Golang】使用泛型对数组进行去重

    【2月更文挑战第11天】使用泛型对数组进行去重
  • 03.02 19:54:03
    发表了文章 2024-03-02 19:54:03

    Golang里空结构体struct{}的介绍和使用

    【2月更文挑战第10天】Golang里空结构体struct{}的介绍和使用
  • 03.01 21:12:09
    发表了文章 2024-03-01 21:12:09

    【Golang】解决使用interface{}解析json数字会变成科学计数法的问题

    【2月更文挑战第9天】解决使用interface{}解析json数字会变成科学计数法的问题
  • 02.29 22:13:19
    发表了文章 2024-02-29 22:13:19

    Golang拼接字符串性能对比

    【2月更文挑战第8天】Golang拼接字符串性能对比
  • 02.28 21:26:20
    发表了文章 2024-02-28 21:26:20

    ElasticSearch 入门

    【2月更文挑战第7天】ElasticSearch 入门 简介 ElasticSearch 的基本概念 ElasticSearch 的查询流程 ElasticSearch 的更新流程
  • 02.27 21:30:59
    发表了文章 2024-02-27 21:30:59

    高效Go编程之格式化+代码注释+命名+分号+控制结构

    【2月更文挑战第6天】高效Go编程之格式化+代码注释+命名+分号+控制结构
  • 02.26 21:11:33
    发表了文章 2024-02-26 21:11:33

    Go语言面试题1

    【2月更文挑战第5天】Go语言面试题15个问题
  • 02.25 22:44:55
    发表了文章 2024-02-25 22:44:55

    Golang高性能内存缓存库BigCache设计与分析

    【2月更文挑战第4天】分析Golang高性能内存缓存库BigCache设计
  • 02.24 20:14:31
    发表了文章 2024-02-24 20:14:31

    【设计模式】创建型模式之单例模式(Golang实现)

    【2月更文挑战第3天】一个类只允许创建一个对象或实例,而且自行实例化并向整个系统提供该实例,这个类就是一个单例类,它提供全局访问的方法。这种设计模式叫单例设计模式,简称单例模式。
  • 02.23 22:54:48
    发表了文章 2024-02-23 22:54:48

    分布式任务调度的几种实现

    【2月更文挑战第2天】本文主要介绍了分布式任务调度的几种实现,使用Redis实现分布式锁方案,使用MySQL实现任务调度,开源框架 XXL-JOB等方案,最后需要考虑到负载均衡的问题。
  • 02.22 22:22:27
    发表了文章 2024-02-22 22:22:27

    【小小思考】Redis实现去重任务队列

    【2月更文挑战第1天】思考一下如何用Redis实现去重的任务队列,主要有List 、List + Set/Hash/Bloom Filter、ZSet、Lua和开源库等方式。

2022年12月

  • 发表了文章 2024-10-24

    Bitmap

  • 发表了文章 2024-10-23

    redis-set类型

  • 发表了文章 2024-10-22

    redis-hash

  • 发表了文章 2024-10-21

    redis-ZSet

  • 发表了文章 2024-10-18

    List Pub Sub

  • 发表了文章 2024-10-17

    基于Zookeeper的锁

  • 发表了文章 2024-10-16

    微服务

  • 发表了文章 2024-09-02

    1

  • 发表了文章 2024-08-22

    快慢路径降级慢路径

  • 发表了文章 2024-08-21

    熔断方案

  • 发表了文章 2024-08-20

    前置知识 判断服务的健康状态

  • 发表了文章 2024-08-19

    降级概述

  • 发表了文章 2024-08-18

    读写服务降级写服务

  • 发表了文章 2024-08-17

    常见的降级思路 面试准备

  • 发表了文章 2024-08-16

    跨服务降级

  • 发表了文章 2024-08-15

    整体方案 参数调优 innodb_buffer_pool_size

  • 发表了文章 2024-08-13

    查询缓存 面试准备

  • 发表了文章 2024-08-12

    TCC+ SAGA事务

  • 发表了文章 2024-08-11

    前置知识 三阶段提交

  • 发表了文章 2024-08-10

    TCC和本地事务 容错

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息