自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(243)
  • 收藏
  • 关注

原创 什么是用户故事(User Story)?如何编写?

摘要:用户故事是敏捷开发中描述需求的工具,采用"角色-功能-价值"模板(As a [role], I want [feature], so that [benefit]),强调用户视角和持续对话。优质用户故事应符合INVEST原则,包括独立性、可测试性等特征,并通过故事拆分技术处理复杂需求。验收标准采用Given-When-Then格式,用户故事地图可帮助可视化需求优先级。需避免技术语言描述、故事过大等常见错误,实践中常用Jira等工具管理故事,Cucumber等工具验证需求。(149字

2025-06-13 16:48:08 238

原创 Scrum 的三个角色及其职责详解

Scrum框架的三大核心角色包括产品负责人(PO)、ScrumMaster和开发团队。PO负责最大化产品价值,管理需求优先级;ScrumMaster确保流程执行,移除团队障碍;开发团队跨职能协作,交付可工作软件。三者的协作遵循:PO定"做什么",团队定"怎么做",ScrumMaster确保流程正确。理解角色职责边界是成功实施Scrum的关键,需平衡业务与技术需求,促进自组织和持续改进。这些角色互动构成了Scrum敏捷开发的基础运作模式。

2025-06-13 12:23:47 393

原创 Position Embedding 有哪些方式?

本文系统介绍了Transformer模型中位置编码(PositionEmbedding)的机制与方法。位置编码可分为绝对位置编码(可学习/正弦)和相对位置编码(Shaw/RPR/RoPE/ALiBi)两大类,各自在灵活性、外推性、计算效率等方面存在差异。关键点包括:位置编码解决了Transformer的排列不变性问题;相对位置编码更适合长序列建模;RoPE和ALiBi成为当前大模型的主流选择。文章还对比了不同方法优劣,并针对面试常见问题提供了技术解答,最后给出了不同场景下的最佳实践建议。

2025-06-11 19:23:48 625

原创 AI大模型专栏

python基础教程http库requestsWeb框架Flask爬虫框架Beautiful SoupWeb框架FastAPI数据分析NumPy数据分析Pandasmatplotlib深度学习框架TensorFlow机器学习框架PyTorch最流行的NLP和多模态AI生态系统一个 低代码 AI 应用开发平台一个多功能的智能体(Agent)框架最流行的智能体开源框架基于 GPT模型的开源自动化系统结合信息检索和生成技术的深度学习多代理协作的大语言模型(LLM)框架微软 (Microsoft)开源的深度学习优化

2025-06-11 15:50:10 296

原创 敏捷开发与传统开发的主要区别

敏捷开发与传统开发对比摘要(150字) 敏捷开发与传统开发在理念和流程上存在显著差异。敏捷基于《敏捷宣言》四大价值观,强调快速迭代(2-4周Sprint)、持续交付可工作软件和拥抱变化,采用用户故事和动态产品待办列表管理需求。传统开发(如瀑布模型)则要求前期完整规划,阶段式推进并通过文档冻结需求。团队结构上,敏捷采用跨职能自组织团队,传统则是职能分工的层级管理。质量方面,敏捷推行测试驱动和全员负责制,传统集中于后期测试。敏捷适合需求多变的创新项目,传统更适合需求明确的强合规领域。实际选择需评估项目特性,二者

2025-06-10 10:16:12 762

原创 软件工程面试题:Scrum 的三个角色及其职责详解

Scrum框架定义三大核心角色:产品负责人(PO)负责产品价值与需求优先级;ScrumMaster作为流程教练,移除障碍并促进团队改进;跨职能的开发团队自组织完成产品交付。三者分工明确又紧密协作:PO决定"做什么",团队决定"怎么做",ScrumMaster确保流程高效运转。成功实施Scrum的关键在于理解角色边界与协作模式,如通过每日站会、Sprint评审等仪式保持同步,平衡需求变更与技术债务。这些角色互动机制既是Scrum落地的核心,也是敏捷面试的重点考察内容。

2025-06-10 10:01:41 527

原创 Linux 如何查看端口是否被占用?(netstat、ss)

Linux系统查看端口占用情况的专业指南 摘要:本文介绍了Linux系统中检查端口占用的两种主要方法:传统工具netstat和现代工具ss。通过对比分析,ss工具在性能上具有明显优势(速度快10倍以上),已成为推荐方案。文章详细讲解了基础查询命令、高级参数使用、专业排查技巧(如BPF过滤器和网络命名空间检查),并提供了企业面试常见问题和最佳实践建议。特别强调在生产环境中应优先使用ss工具,并养成检查进程关联的习惯,以有效解决服务部署、故障排查和安全审计中的端口冲突问题。

2025-06-10 08:19:33 892

原创 如何挂载远程目录?(`sshfs`、`nfs`)

在企业级Linux环境中,挂载远程目录是常见的需求,主要用于分布式存储数据共享和远程协作。SSHFS(基于SSH的文件系统)和NFS(网络文件系统),涵盖原理、配置、优化及安全实践。更多面试题:https://duoke360.com/tutorial/path/interview面试官可能追问“如何优化NFS的读写性能?答:调整rsizewsize(建议8192以上)、启用noatime、使用hard挂载。“SSHFS断开后如何自动恢复?答:使用参数,结合systemd的Automount功能。

2025-06-10 08:17:57 870

原创 grep命令深度解析与管道实战指南

(Global Regular Expression Print) 是Linux/Unix系统中功能最强大的文本搜索工具之一,其主要功能是在文件中搜索包含特定模式的行。核心价值:grep能够快速过滤和提取文本信息,是Linux系统管理员和开发人员的必备工具。

2025-06-10 07:12:45 966

原创 SQL 查询慢的常见原因分析

面试提示:回答SQL性能问题时,建议结合和三个维度展开,展现系统性思维。

2025-06-09 15:25:08 350

原创 数据库和SQL面试题

数据库核心知识点摘要(150字): 本文涵盖数据库核心概念与优化策略,包括:1) 键约束(主键与唯一键区别);2) 索引机制(聚簇/非聚簇索引原理、覆盖索引优势、最左前缀原则);3) 事务处理(ACID特性、隔离级别与并发问题解决);4) 锁机制(悲观/乐观锁、行锁/表锁);5) 架构设计(分库分表策略、读写分离方案);6) 性能优化(EXPLAIN解析、慢SQL排查、索引失效场景);7) 特殊对象(视图、存储过程、触发器);8) 查询优化(JOIN类型差异、子查询处理、分页性能);9) 高可用方案(主从复

2025-06-09 11:44:11 608

原创 操作系统面试题

2025-06-08 12:31:37 356

原创 死锁的四个必要条件

*死锁(Deadlock)**是指多个进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,导致这些进程或线程都无法继续执行下去。关键结论:死锁是并发系统中必须避免的严重问题,会导致系统资源浪费和性能下降。核心要点:理解并牢记这四个必要条件(互斥、占有等待、非抢占、循环等待)是分析和解决死锁问题的基础。在实际系统设计中,通常采用组合策略来预防和避免死锁。能准确陈述四个条件能举例说明每个条件了解至少两种死锁处理策略准备相关项目经验(如遇到过的死锁问题及解决方法)

2025-06-07 15:27:49 684

原创 什么是上下文切换?代价在哪里?

监控vmstat中的cs字段在低延迟系统中考虑无锁设计理解C10K问题的本质就是上下文切换瓶颈最后记住Linus Torvalds的名言:"线程是邪恶的"(Threads are evil),这正反映了对上下文切换代价的深刻认知。操作系统 - 多课网,360度全方位IT技术服务站!

2025-06-06 15:26:04 565

原创 进程与线程的区别

进程与线程的核心区别在于资源分配和执行特性。进程作为独立资源单元拥有隔离的内存空间,创建开销大但稳定性高;线程共享进程资源,切换成本低但存在安全隐患。技术实现上,现代操作系统采用1:1线程模型,Linux通过轻量级进程实现线程。应用选择需权衡任务类型:CPU密集型宜用多进程(如Python规避GIL),I/O密集型适合多线程。典型场景包括Chrome的多进程架构和Nginx的多线程模型,实际开发中常采用混合模式。深入理解需结合同步机制和特定语言特性(如JVM线程模型)。

2025-06-06 10:46:18 395

原创 Hugging Face基础入门

2025-06-06 10:40:47 199

原创 机器学习框架PyTorch

2025-06-06 10:15:20 991

原创 Golang基础教程

2025-06-06 10:12:22 942

原创 MySQL 的 redo log 和 binlog 区别?

MySQL的redo log和binlog主要区别:1) 层级不同 - redo log是InnoDB引擎层的物理日志,binlog是MySQL Server层的逻辑日志;2) 用途不同 - redo log用于崩溃恢复保证事务持久性,binlog用于主从复制和数据归档;3) 写入机制不同 - redo log循环写入,binlog追加写入。二者通过两阶段提交机制保证一致性,建议生产环境配置innodb_flush_log_at_trx_commit=1和sync_binlog=1确保数据安全。redo l

2025-06-05 15:16:57 775

原创 什么是数据字典?有哪些元数据?

数据字典是数据库核心组件,存储描述数据结构的元数据(Metadata)。主要包含三类元数据:1)结构型(表定义、索引、视图);2)管理型(表空间、权限);3)行为型(统计信息、执行计划)。现代应用扩展到数据血缘分析和分布式场景。技术实现上分为与DBMS集成的主动字典和独立的外部被动字典。访问时需注意性能影响,可通过只读副本或专门工具获取元数据。数据字典是数据库管理、性能优化和合规审计的基础设施。

2025-06-05 14:30:09 658

原创 什么是数据倾斜?如何优化?

数据倾斜是大数据处理中的常见问题,指数据分布不均导致某些节点负载过高。主要表现为Join、GroupBy等操作时少数节点处理大量数据。根本原因包括数据固有特性(如热点用户)和分区策略缺陷。优化方案分三个阶段:预处理阶段可采用加盐、预聚合等方法;执行阶段调整并行度参数或采用两阶段聚合;架构层面优化分区设计和资源分配。检测工具包括Spark UI和Hive日志,需根据具体场景组合多种优化手段。面试时应系统分析问题,结合业务场景给出量化解决方案。

2025-06-05 14:22:38 1064

原创 面试题:SQL 中如何将 多行合并为一行(合并行数据为列)?

SQL行列转换是数据报表和统计分析的常见需求,本文总结四种多行合并为一行的方法。通过示例演示如何将学生成绩表(姓名、科目、分数)转换为横向展示(姓名、语文、数学)。方法包括:1) 通用CASE WHEN+聚合函数,2) MySQL的GROUP_CONCAT文本拼接,3) SQL Server/Oracle的PIVOT语法,4) PostgreSQL的FILTER特性。对比了各方案的兼容性和特点,通用CASE WHEN适用于所有数据库,而其他方法在特定数据库中语法更简洁。对于动态列名情况,需要结合应用层或存储

2025-06-05 13:06:07 472

原创 如何快速找出某表中的唯一值或最多的值?

如何快速查找数据库表中的唯一值或高频值? 针对数据库查询中常见的独特值和高频值识别需求,本文提供了多种优化方案。标准SQL方法包括使用DISTINCT关键字查找唯一值,以及通过GROUP BY配合COUNT统计高频值。高级优化技术涵盖索引策略(B-tree和覆盖索引)、近似算法(如HyperLogLog)和物化视图预计算。不同数据库系统(MySQL、Oracle、SQL Server)各有特色实现方式,如窗口函数和TOP WITH TIES语法。对于海量数据,推荐采用分片统计或概率数据结构。最后强调根据数据

2025-06-05 13:04:42 608

原创 如何快速找出某表的重复记录 - 数据库专家面试指南

本文详细介绍了数据库重复记录的检测方法,从基础GROUP BY到高级窗口函数方案,并针对不同数据库系统提供了优化实现。文章强调性能优化策略如索引创建和分块处理,同时探讨了模糊匹配等高级场景。最后提供了面试可能追问的扩展问题和各方法对比,指出业务理解比技术更重要。全文为数据库专家面试提供了全面的技术指导。

2025-06-04 15:49:38 1176

原创 数据库容量暴涨时优化方案

数据库容量暴涨优化方案涉及多层面策略:首先需通过监控分析定位根因(数据膨胀、索引过度等);架构层采用分库分表、读写分离;存储优化包括引擎选择、压缩技术应用;SQL层面精简索引、优化查询;实施数据生命周期管理(归档、TTL);高级方案涵盖云数据库特性和新型存储系统。同时需制定应急扩容和容灾预案,建立持续优化闭环体系。关键要结合业务特点选择合适的分片策略和存储方案。

2025-06-04 15:48:03 698

原创 SQL 中 JOIN 的执行顺序优化指南

SQL查询中JOIN的执行顺序优化是数据库性能调优的关键。数据库引擎会根据表大小、索引情况、JOIN类型等因素动态确定最优JOIN顺序。优化技巧包括使用STRAIGHT_JOIN强制顺序、更新统计信息、查询提示等。对于复杂多表连接,建议分解查询或使用物化视图。不同数据库的JOIN优化特性各异,需通过EXPLAIN分析执行计划。面试时应重点展示通过具体案例优化JOIN性能的经验。

2025-06-04 15:45:01 921

原创 SQL 中 NOT IN 的陷阱?

SQL 中的 NOT IN 存在一个常见陷阱:当子查询结果包含 NULL 值时,整个查询会返回空结果。这是因为 SQL 的三值逻辑导致 NOT IN 遇到 NULL 时返回 UNKNOWN 而被过滤。解决方法有两种:推荐使用 NOT EXISTS 替代(不受 NULL 影响且性能更优),或确保子查询过滤掉 NULL 值。建议在实际开发中优先使用 NOT EXISTS 来避免这一陷阱。

2025-06-04 15:43:22 137

原创 SQL 中 IN 和 EXISTS 的区别

是一个条件运算符,用于检查某个值是否存在于指定的值列表中或子查询返回的结果集中。ai专栏:https://duoke360.com/tutorial/path/ai-lm。

2025-06-04 15:42:28 96

原创 如何设计订单号生成策略?

订单号设计需兼顾唯一性、可读性、可扩展性和安全性。主流方案包括数据库自增ID(简单但扩展性差)、UUID(无序影响索引)、雪花算法(推荐,41位时间戳+机器ID+序列号)。高级设计可采用分段组合模式(业务前缀+时间戳+随机数+校验位)或分布式ID服务(如Leaf、Tinyid)。优化技巧包括ThreadLocal缓存生成器实例,异常处理需考虑时钟回拨问题。实际案例参考京东15-18位数字、淘宝业务前缀等设计。面试重点考察分片设计、异常处理和方案选型能力。

2025-06-04 15:16:40 397

原创 如何批量插入数据,避免性能瓶颈?

企业级应用中,批量数据插入常遇性能瓶颈。优化方案包括:使用批量INSERT语法、预处理语句参数绑定、LOAD DATA INFILE文件加载等,性能可提升100倍。高级技巧涉及事务分批控制、索引优化和并行处理。不同数据库有特有方案,如MySQL的DELAYED INSERT、Oracle的FORALL语法。监控指标和问题排查同样重要,90%性能问题可通过调整事务大小解决。面试时建议用STAR法则展示优化案例,各数据库批量插入吞吐量对比显示Oracle最优(5.7万条/秒)。

2025-06-03 16:26:42 621

原创 查询去重使用 DISTINCT 的性能分析

摘要:DISTINCT是SQL中用于查询结果去重的关键字,但性能消耗较大。其工作原理通常涉及排序或哈希操作,性能受数据量、列数和索引影响。优化策略包括:改用GROUP BY、添加查询条件限制范围、利用索引以及分页处理大数据。对于多表JOIN场景,可使用EXISTS或窗口函数替代。关键结论指出DISTINCT在大数据场景应谨慎使用,建议通过执行计划分析优化方案,必要时考虑数据预处理。

2025-06-03 16:25:44 73

原创 LIMIT 和 OFFSET 在大数据量下的性能问题分析与优化方案

和是SQL中用于分页查询的关键子句:Ai专栏:https://duoke360.com/tutorial/path/ai-lm。

2025-06-03 16:24:51 92

原创 如何写一条高效分页 SQL?

高效分页SQL的核心是避免传统OFFSET的性能缺陷。推荐使用基于主键的游标分页法,通过WHERE条件替代OFFSET,利用索引实现高效查询。对于百万级数据,传统OFFSET 10万条需扫描所有前导行,而游标分页只需常数时间。其他优化方案包括:创建复合索引、延迟关联、预计算分页和分片查询。不同数据库有特殊实现,如MySQL 8.0+的窗口函数、PostgreSQL的游标。关键要点是限制可访问页数,优先采用游标分页方案,避免深度分页的性能瓶颈。

2025-06-03 16:23:44 400

原创 什么是自连接?适用哪些查询场景?

摘要: 自连接是SQL中将同一表虚拟为两个逻辑表进行关联的特殊操作,通过别名实现。主要用于处理层级数据(如组织架构)、数据一致性检查及路径查找等场景。其核心原理是数据库引擎创建两个逻辑视图进行连接,需注意连接字段索引优化以避免O(n²)性能问题。典型应用包括树形查询、矛盾数据识别和换乘路线搜索。高级技巧可结合递归CTE处理深层数据,相比嵌套集模型等替代方案各有优劣。面试常考察其与普通连接的区别、性能优化及多级数据存储设计。自连接虽强大但需权衡性能,复杂场景建议结合递归查询或图数据库。

2025-06-03 07:58:25 326

原创 LIKE ‘%xxx%‘ 和 LIKE ‘xxx%‘ 的索引影响分析

摘要:LIKE查询的索引使用取决于通配符位置:LIKE 'xxx%'能有效利用B-Tree索引进行前缀匹配,而LIKE '%xxx%'会导致索引失效,必须全表扫描。优化方案包括反向索引、全文索引或专用搜索引擎。实际测试显示,前缀查询使用索引后速度可提升数百倍。面试时应解释原理并展示优化思路,工作中应避免前导通配符或改用专业文本搜索技术。

2025-06-03 07:57:11 650

原创 LIKE ‘%xxx%‘ 和 LIKE ‘xxx%‘ 的索引影响分析

摘要:LIKE查询的索引使用取决于通配符位置:LIKE 'xxx%'能有效利用B-Tree索引进行前缀匹配,而LIKE '%xxx%'会导致索引失效,必须全表扫描。优化方案包括反向索引、全文索引或专用搜索引擎。实际测试显示,前缀查询使用索引后速度可提升数百倍。面试时应解释原理并展示优化思路,工作中应避免前导通配符或改用专业文本搜索技术。

2025-06-02 14:48:16 984

原创 全文索引详解及适用场景分析

**摘要:**全文索引是一种专门用于文本搜索的数据库索引技术,基于倒排索引原理实现语义匹配查询。与传统B树索引不同,它支持分词处理、模糊搜索和相关性评分等特性。主要适用于内容管理、电商搜索、知识库等文本密集型场景,但在精确数值查询或高频写入场景中表现不佳。主流实现包括MySQL(需配置中文分词器)和Elasticsearch(分布式架构)。优化建议包括合理选择分词器、字段设计和查询控制。面试中应重点掌握倒排索引原理、中文处理方案和实际优化经验,以展示对数据库高级特性的理解。(149字)

2025-06-02 14:47:22 701

原创 SQL 窗口函数深度解析:ROW_NUMBER 实战指南

SQL窗口函数特别是ROW_NUMBER()实战指南摘要:窗口函数作为SQL高级功能,通过OVER()子句在特定行集合上计算而不合并结果行。ROW_NUMBER()按照指定排序为每行生成唯一序号,典型应用于分页查询(高效实现LIMIT-OFFSET)、数据去重(保留每组最新记录)和Top N分析(如各部门薪资前三)。相比RANK()和DENSE_RANK(),ROW_NUMBER()对相同值仍赋予不同序号。优化建议包括为PARTITION BY和ORDER BY字段创建复合索引,注意窗口函数在WHERE之后

2025-06-02 14:46:16 21

原创 SQL 窗口函数深度解析:ROW_NUMBER 实战指南

SQL窗口函数特别是ROW_NUMBER()实战指南摘要:窗口函数作为SQL高级功能,通过OVER()子句在特定行集合上计算而不合并结果行。ROW_NUMBER()按照指定排序为每行生成唯一序号,典型应用于分页查询(高效实现LIMIT-OFFSET)、数据去重(保留每组最新记录)和Top N分析(如各部门薪资前三)。相比RANK()和DENSE_RANK(),ROW_NUMBER()对相同值仍赋予不同序号。优化建议包括为PARTITION BY和ORDER BY字段创建复合索引,注意窗口函数在WHERE之后

2025-06-02 14:38:12 152

原创 SQL 中的 `CASE WHEN` 如何使用?

SQL中的CASE WHEN是强大的条件表达式,支持两种写法:简单CASE(匹配特定值)和搜索型CASE(使用条件判断)。典型应用包括数值标签转换(如分数转等级)、条件计算(如部门薪资调整)和特殊排序(如自定义性别排序)。它能用于SELECT、WHERE、ORDER BY等子句,但必须用END结尾,支持嵌套使用。需要注意的是,它只能返回表达式值而不能动态修改列名。这个功能相当于SQL中的if-else逻辑,是数据处理时灵活分类的有力工具。

2025-06-02 14:37:24 303

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除