智物科技库_个人页

个人头像照片 智物科技库
个人头像照片
115
0
0

个人介绍

暂无个人介绍

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

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

阿里云技能认证

详细说明
暂无更多信息

2024年09月

  • 09.18 14:53:07
    发表了文章 2024-09-18 14:53:07

    MySQL 查询优化方法

    在数据库应用中,高效的查询性能至关重要。本文探讨了常用的 MySQL 查询优化方法,包括索引优化(选择合适的索引字段、复合索引、定期维护索引)、查询语句优化(避免全表扫描、限制返回行数、避免使用不必要的函数)、表结构优化(选择合适的数据类型、分区表、定期清理无用数据)及数据库配置优化(调整缓存大小、优化存储引擎参数)。通过这些方法,可以显著提高 MySQL 的查询性能,为应用程序提供更好的用户体验。
  • 09.13 13:49:48
    发表了文章 2024-09-13 13:49:48

    几个基础python防坑小常识

    本文介绍了Python编程中的一些基础知识和易错点,包括`type`和`object`的关系、`all`和`any`函数的用法、链式运算的特点、`sorted`和`reversed`函数的区别、布尔值的处理、`round`函数的银行家舍入规则、列表操作符`+`和`+=`的区别,以及在循环中删除列表元素时需要注意的问题,并提供了正确的实现方法。最后还介绍了如何通过`sum`函数的`start`参数来改变求和的初始值。
  • 09.11 17:59:01
    发表了文章 2024-09-11 17:59:01

    Java 8 Stream Api 中的 peek 操作

    本文介绍了Java中`Stream`的`peek`操作,该操作通过`Consumer<T>`函数消费流中的每个元素,但不改变元素类型。文章详细解释了`Consumer<T>`接口及其使用场景,并通过示例代码展示了`peek`操作的应用。此外,还对比了`peek`与`map`的区别,帮助读者更好地理解这两种操作的不同用途。作者为码农小胖哥,原文发布于稀土掘金。
  • 09.09 17:55:15
    发表了文章 2024-09-09 17:55:15

    Springboot Starter 是如何工作的?

    Springboot Starter 是 Springboot 项目的一部分,简化了依赖管理和自动配置,通过 Maven 或 Gradle 引入相关依赖并自动配置应用程序。其核心特性包括依赖管理、自动配置及条件注解。Starter 的设计思维体现了模块化、约定优于配置、依赖注入等原则,提高了开发效率,但也存在调试复杂、过度依赖等问题。
  • 09.06 15:22:37
    发表了文章 2024-09-06 15:22:37

    常见java OOM异常分析排查思路分析

    Java虚拟机(JVM)遇到 OutOfMemoryError(OOM)表示内存资源不足。常见OOM情况包括:1) **Java堆空间不足**:内存被大量对象占用且未及时回收,或内存泄漏;解决方法包括调整JVM堆内存大小、优化代码及修复内存泄漏。2) **线程栈空间不足**:单线程栈帧过大或频繁创建线程;可通过优化代码或调整-Xss参数解决。3) **方法区溢出**:运行时生成大量类导致方法区满载;需调整元空间大小或优化类加载机制。4) **本机内存不足**:JNI调用或内存泄漏引起;需检查并优化本机代码。5) **GC造成的内存不足**:频繁GC但效果不佳;需优化JVM参数、代码及垃圾回收器
  • 09.04 16:26:38
    发表了文章 2024-09-04 16:26:38

    优化Java多线程应用:是创建Thread对象直接调用start()方法?还是用个变量调用?

    这篇文章探讨了Java中两种创建和启动线程的方法,并分析了它们的区别。作者建议直接调用 `Thread` 对象的 `start()` 方法,而非保持强引用,以避免内存泄漏、简化线程生命周期管理,并减少不必要的线程控制。文章详细解释了这种方法在使用 `ThreadLocal` 时的优势,并提供了代码示例。作者洛小豆,文章来源于稀土掘金。
  • 09.02 15:23:10
    发表了文章 2024-09-02 15:23:10

    Redis中大Key与热Key的解决方案

    在工作中,Redis作为一款高性能缓存数据库被广泛应用,但常遇到“大key”和“热key”问题。“大key”指单个键包含大量数据,导致内存消耗高、性能下降及持久化效率降低;“热key”则是频繁访问的键,会引起CPU占用率高、请求阻塞等问题。本文详细分析了这些问题的定义、影响、原因,并提供了相应的解决方案,如合理设置缓存时间和数据结构、拆分大key、采用热点数据分片等方法。

2024年08月

  • 08.29 11:52:49
    发表了文章 2024-08-29 11:52:49

    List与String相互转化方法汇总

    本文汇总了List与String相互转化的多种方法,包括使用`String.join()`、`StringBuilder`、Java 8的Stream API、Apache Commons Lang3的`StringUtils.join()`以及Guava的`Joiner.on()`方法实现List转String;同时介绍了使用`split()`方法、正则表达式、Apache Commons Lang3的`StringUtils.split()`及Guava的`Splitter.on()`方法实现String转List。
  • 08.27 16:53:12
    发表了文章 2024-08-27 16:53:12

    网关修改响应码,拯救业务不规范设计

    本文探讨了在一个未遵循HTTP标准规范的项目中遇到的问题及解决方案。
  • 08.26 15:51:13
    发表了文章 2024-08-26 15:51:13

    go如何使用SQLX操作MySQL数据库?

    sqlx是Go语言中一款流行的第三方数据库操作包,它扩展了Go标准库`database/sql`的功能,极大地简化了数据库操作流程并提供了丰富的数据库交互方法。
  • 08.22 15:40:55
    发表了文章 2024-08-22 15:40:55

    Spring创建的单例对象,存在线程安全问题吗?

    Spring框架提供了多种Bean作用域,包括单例(Singleton)、原型(Prototype)、请求(Request)、会话(Session)、全局会话(GlobalSession)等。单例是默认作用域,保证每个Spring容器中只有一个Bean实例;原型作用域则每次请求都会创建一个新的Bean实例;请求和会话作用域分别与HTTP请求和会话绑定,在Web应用中有效。 单例Bean在多线程环境中可能面临线程安全问题,Spring容器虽然确保Bean的创建过程是线程安全的,但Bean的使用安全性需开发者自行保证。保持Bean无状态是最简单的线程安全策略;
  • 08.20 17:58:41
    发表了文章 2024-08-20 17:58:41

    Python错误、异常和模块

    本文详细介绍了Python编程中的错误和异常处理以及模块的使用方法。语法错误如遗漏引号会导致`SyntaxError`,而运行时错误如除以零则会产生`ZeroDivisionError`等异常。文章通过实例展示了如何使用`try...except`结构来捕获并处理异常,确保程序的健壮性。此外,还介绍了如何自定义异常以及主动抛出异常的方法。在模块方面,文章解释了如何创建和导入模块以重用代码,并展示了不同导入方式的特点,包括导入单个函数、全部内容等。最后提到了Python标准库的使用和查询模块内容的方法。
  • 08.16 17:31:54
    发表了文章 2024-08-16 17:31:54

    接口幂等该如何设计和实现

    本文探讨了程序开发中常见的重复操作问题,如多次点击生成多余订单或支付、RPC调用失败后的重试机制滥用及非法重复请求等。通过接口幂等性设计可有效解决这类问题,确保相同请求多次执行结果一致无副作用。文章详细解释了幂等性的概念及其重要性,并提供了具体的设计与实现方法,包括使用唯一标识符、设计幂等操作、事务处理及缓存策略。此外,还讨论了实现幂等性接口所带来的好处,如并发请求处理、失败请求管理及系统集成等,并提出了验证接口幂等性的策略。通过这些技术和方法的应用,可以显著提升系统的稳定性和用户体验。
  • 08.14 18:06:34
    发表了文章 2024-08-14 18:06:34

    JVM源码级别分析G1发生FullGC元凶的是什么

    线上系统遭遇频繁Old GC问题,监控显示出现多次“to-space exhausted”日志,这表明垃圾回收过程中因年轻代 Survivor 区或老年代空间不足导致对象晋升失败。通过 JVM 源码分析,此问题源于对象转移至老年代失败时,JVM 无法找到足够的空间存放存活对象。进一步排查发现大对象分配占用了预留空间,加剧了空间不足的情况。使用 JFR 分析工具定位到定期报表序列化导致大量大对象生成,通过改用堆外内存进行序列化输出,最终解决了频繁 Old GC 问题。
  • 08.12 11:32:00
    发表了文章 2024-08-12 11:32:00

    go语言中的Atomic操作与sema锁

    在并发编程中,确保数据一致性和程序正确性是关键挑战。Go语言通过协程和通道提供强大支持,但在需精细控制资源访问时,Atomic操作和sema锁变得至关重要。Atomic操作确保多协程环境下对共享资源的访问是不可分割的,如`sync/atomic`包中的`AddInt32`等函数,底层利用硬件锁机制实现。sema锁(信号量锁)控制并发协程数量,其核心是一个uint32值,当大于零时通过CAS操作实现锁的获取与释放;当为零时,sema锁管理协程休眠队列。这两种机制共同保障了Go语言并发环境下的数据完整性和程序稳定性。
  • 08.09 17:52:11
    发表了文章 2024-08-09 17:52:11

    Python里的类和对象是什么?

    本文介绍了Python中面向对象编程的核心概念——类与对象。类作为一种“蓝图”,定义了一组属性和方法,用于描述一类对象的共同特征与行为。通过类可以创建具体的对象实例,每个对象拥有类所定义的属性和方法。文章通过`Human`类的例子详细展示了如何定义类、初始化对象及其属性、定义方法,以及如何给对象添加自定义属性。此外,还介绍了如何通过类创建多个具有不同特性的对象实例,并探讨了属性覆盖和使用`@property`装饰器实现只读属性的方法。
  • 08.07 13:36:28
    发表了文章 2024-08-07 13:36:28

    go语言中一些用法

    本文详细解析了Go语言如何通过C语言扩展其功能。主要包括:使用注释书写C代码、通过Go调用C中的函数示例及背后的工作原理;解释了Go如何通过内存结构体传递参数并接收返回值,以及Go调度器如何处理C代码执行期间的控制流问题;讨论了使用cgo的优势与局限性;最后介绍了Go语言中`defer`关键字的工作机制,并通过具体示例展示了反射在动态调用函数中的应用。
  • 08.05 16:06:08
    发表了文章 2024-08-05 16:06:08

    Spring Boot 项目怎么使用策略模式?

    策略模式是一种设计模式,它允许在运行时选择不同的算法或行为。此模式通过定义一系列算法并将它们封装在独立的类中实现,这些类可以互相替换。这样可以根据不同情况动态选择最适合的算法。 在Spring框架中,可以通过依赖注入来实现策略模式。首先定义一个抽象策略类(接口或抽象类),然后创建具体策略类实现不同的算法。具体策略类通过`@Service`注解并在名称中指定特定的策略(如加法、减法等)。在上下文类(如Service类)中,通过`@Resource`注入策略对象的Map集合,根据需要选择并执行相应的策略。
  • 08.01 11:43:40
    发表了文章 2024-08-01 11:43:40

    SpringBoot3怎么做统一结果封装?

    在Spring Boot应用中,统一结果封装有助于团队协作,确保一致的API响应格式,提升代码质量和维护性。主要优点包括:简化前端集成工作,减少后端重复编码,以及增强接口的可维护性。实现上,首先定义`Result`类来封装响应状态码、消息、数据及时间戳;其次,通过`ResultCode`枚举类标准化状态信息。示例代码展示了如何构建这些类,并通过一个简单的控制器方法演示了如何使用它们返回JSON格式的响应结果。

2024年07月

  • 07.30 13:54:47
    发表了文章 2024-07-30 13:54:47

    导出任务耗时如何优化

    大量数据的导入导出时,请求一定非常耗时,页面一定会不停转圈圈,不可能让用户一直停留在这个页面转圈圈,这样并不友好。 比较好的方式就事通过异步的方式,先提交任务,然后通过线程的处理数据。一次性如果导出大量数据时,需要批量查询结果到处。
  • 07.28 21:35:22
    发表了文章 2024-07-28 21:35:22

    golang 的重试弹性模式怎么设计?

    Golang的可重构弹性模式通过`Retrier`实现了重试逻辑。创建`Retrier`需指定重试间隔(隐含重试次数)及错误分类器,决定哪些错误需重试。示例代码展示了如何创建一个重试器并执行带有重试逻辑的工作函数。`Retrier`结构体包含重试间隔、分类器等字段。
  • 07.26 13:50:11
    发表了文章 2024-07-26 13:50:11

    如何配置战斧指纹浏览器和IPXProxy海外代理IP?

    通过代理IP,用户可以轻松绕过地域限制,访问全球范围内的网站和服务。特别是对于跨境用户来说,需要在目标市场投放广告,而代理IP能帮助实现精准投放,快速的提升品牌或者店铺的知名度。那如何在如何在战斧指纹浏览器中设置IPXProxy海外代理IP?
  • 07.25 16:52:07
    发表了文章 2024-07-25 16:52:07

    C++为什么有参数依赖查找(ADL)?

    为什么在限定名称查找和非限定名称查找之外,C++还要提供参数依赖查找这样的机制呢?它其实是在规范的查找框架下,提供了一种灵活性的补充
  • 07.23 14:03:43
    发表了文章 2024-07-23 14:03:43

    if else代码优化小技巧

    在程序开发中,复杂的`if-else`结构不仅影响代码的可读性和维护性,还可能演变成难以理解和修改的“烂代码”。为避免此状况,以下几种常见场景提供了优化策略
  • 07.21 15:16:43
    发表了文章 2024-07-21 15:16:43

    go 高并发下的数据结构是怎样?

    **变量的字节大小** - `int`, `int32`, `int64` 分别为8, 4, 8字节;指针也为8字节,均受OS影响。 - 空结构体大小为0字节,内存地址相同(`zerobase`),嵌入非空成员后地址不同。 **字符串底层** - 占用16字节,无论长度。 - 底层为`stringStruct`,含指向字符串的指针与长度。 - `StringHeader`类比`stringStruct`用于反射。 **map底层** - 基于`hmap`,含`buckets`、`B`、`count`等,用于散列与管理。 - `bucket`含`tophash`和`overflow`
  • 07.19 10:07:50
    发表了文章 2024-07-19 10:07:50

    Dolphin指纹浏览器隐私保护升级:IPXProxy代理IP配置实战教程

    Dolphin指纹浏览器采用先进的技术,让用户在一台电脑上就可以处理数百个配置文件。每一个配置文件都有着独特的浏览器指纹,极大的保障了用户上网的安全性。并且搭配代理IP一起,还能给每个文件配置不同的IP地址,让网络活动可以畅通无阻。下面给大家带来Dolphin指纹浏览器和IPXProxy代理IP配置详细教程
  • 07.17 15:17:10
    发表了文章 2024-07-17 15:17:10

    MyBatis 的延迟加载是如何实现的

    MyBatis的延迟加载(懒加载)特性提高了性能,只在需要时加载关联数据。配置延迟加载需在`mybatis-config.xml`中设置`lazyLoadingEnabled`为`true`,`aggressiveLazyLoading`为`false`。实现原理基于代理对象,MyBatis为延迟加载属性创建代理,在访问时触发实际查询。代理通过Java动态代理实现,拦截方法调用,按需加载数据。
  • 07.17 15:07:07
    发表了文章 2024-07-17 15:07:07

    MySQL连接池DataSource怎么使用?

    **摘要:** 本文探讨了数据库连接池在高并发Web应用中的重要性,特别聚焦于阿里巴巴的DruidDataSource。DruidDataSource是一个高效的Java数据库连接池,包含监控、SQL防护和日志功能。文中通过示例展示了如何配置和使用DruidDataSource,包括在Java应用中的直接配置和在Spring Boot中的集成,并提到了启用SQL监控。此外,还分享了设置连接池参数的技巧,如合理设定初始、最大和最小连接数,并强调了定期监控和使用内置监控工具优化性能的重要性。
  • 07.15 11:27:14
    发表了文章 2024-07-15 11:27:14

    怎么用JDK自带工具进行JVM内存分析

    JVM内存分析工具,如`jps`、`jcmd`、`jstat`、`jstack`和`jmap`,是诊断和优化Java应用的关键工具。`jps`列出Java进程,`jcmd`执行诊断任务,如查看JVM参数和线程堆栈,`jstat`监控内存和GC,`jstack`生成线程堆栈信息,而`jmap`则用于生成堆转储文件。这些工具帮助排查内存泄漏、优化内存配置、性能调优和异常分析。例如,`jmap -dump:file=heapdump.hprof <PID>`生成堆转储文件,之后可以用Eclipse Memory Analyzer (MAT)等工具分析。
  • 07.12 11:52:02
    发表了文章 2024-07-12 11:52:02

    Python装饰器怎么做重试机制

    **使用Python装饰器实现的重试机制**简化了对可能出现临时故障的函数的处理,增强系统稳定性和用户体验。文中提供了一个简单的装饰器示例,允许在达到最大重试次数前,按设定间隔自动重试失败的函数调用。这种机制在分布式系统、网络通信中尤为重要,可应对网络波动、资源紧张等问题,避免服务中断。通过添加`@retry`装饰器,无需大量修改代码即可为函数添加重试功能。
  • 07.10 11:52:59
    发表了文章 2024-07-10 11:52:59

    什么是 Python 编译器

    **Python 编程语言以解释型为主,但也有编译器用于提升性能。CPython是默认解释器,先转为字节码再解释执行。PyPy是JIT编译器,执行速度快。Numba是针对数值计算的JIT编译器,优化数学运算。选择Python编译器要考虑性能、兼容性、内存使用及社区支持。对于机器学习,需支持科学库和GPU加速。**
  • 07.08 11:49:35
    发表了文章 2024-07-08 11:49:35

    Python中好用的爬虫框架

    **Scrapy** 是一个强大的Python爬虫框架,适合大规模数据采集,提供高度可定制的爬取流程、内置数据提取工具、自动请求调度、分布式爬取支持、中间件扩展及多种数据存储方式。 **Beautiful Soup** 和 **Requests** 结合使用,便于Python中简单网页的请求和HTML解析。Requests发送HTTP请求,Beautiful Soup解析内容,适合小型项目或数据提取。 **Requests-HTML** 是Requests的扩展,支持HTML解析和CSS选择器,自动处理链接,适合网页解析任务。
  • 07.04 14:20:47
    发表了文章 2024-07-04 14:20:47

    Pathlib好用吗?对比os.path

    `pathlib`是Python 3.4引入的模块,提供了一种面向对象的方式来处理文件路径,以替代可能引起混淆的`os.path`字符串操作。从3.6版开始,`open()`及`os`, `shutil`, `os.path`中的函数都支持`pathlib.Path`对象。`pathlib`通过统一使用正斜杠处理不同操作系统路径,简化了代码,如在Windows和Linux上。它还允许直接对文件进行读写操作,减少错误和提高可读性。虽然`pathlib`可能稍慢于传统方法,但在大多数情况下,其易用性和可维护性优点远胜过这点性能损失。因此,推荐使用`pathlib`进行路径操作。
  • 07.02 11:41:20
    发表了文章 2024-07-02 11:41:20

    一些使用python过程中的小贴士

    摘要: 在Python中,`type`是一个特殊类型,既是类型也是对象。`isinstance()`函数表明`type`和`object`都是类型并且是彼此的基类。`all()`和`any()`函数分别检查可迭代对象的所有元素是否都为真或至少有一个元素为真。链式操作如`==`和`in`具有相同的优先级,从左到右结合,可能导致意外的结果,例如`False == False in [False]`实际上是`True`,因为`False in [False]`先计算并返回`True`,然后与`False == True`比较。
  • 07.01 00:12:05
    发表了文章 2024-07-01 00:12:05

    mysql和Redis如何保持数据一致性

    文档讨论了在系统重建时如何处理数据库和缓存的一致性问题。关键点包括:数据库(如MySQL)和分布式ID生成器可能不宜轻易替换,而代码可以通过兼容性改造来适应新系统。文中以CPU、Memory和Disk的比喻解释了缓存(如Redis)在性能优化中的作用。为确保MySQL和Redis间的一致性,提到了四种策略:Read/Write Through、Write Behind、Cache Aside(先写数据库后更新缓存或先删除缓存后更新数据库)以及先写缓存后写数据库。考虑到读多写少和低频写操作的业务场景,最终选择了先写数据库后更新缓存的策略,并利用canal保证消息顺序性以实现最终一致性。

2024年06月

  • 06.28 11:16:31
    发表了文章 2024-06-28 11:16:31

    私人住宅IP:发挥IPXProxy的速度优势

    在当今数字化的世界中,保护个人在线隐私和数据安全显得尤为重要。随着互联网使用的普及,我们在网络上留下的每一个痕迹都可能泄露个人信息或导致数据被盗。为了提升网络安全性和保证在线活动的顺畅进行,越来越多的人选择使用私人住宅IP作为他们的网络代理工具。那么,私人住宅IP究竟是什么?它如何在连接速度上具备独特的优势?
  • 06.27 15:02:22
    发表了文章 2024-06-27 15:02:22

    Python有哪些好用的爬虫框架

    在Python中,Scrapy是一个强大的网络爬虫框架,专为数据采集设计,具有高度可定制的爬取流程、内置的数据提取工具、自动请求调度、分布式爬取支持和中间件扩展。它允许开发者轻松构建和管理爬虫,高效抓取和处理网页数据。 Beautiful Soup和Requests库组合则提供了简单的HTML解析和请求功能。Requests库用于发送HTTP请求,而Beautiful Soup则用于解析HTML内容,两者结合便于数据提取。Requests-HTML库进一步简化了这一过程,集成了Requests的功能并内置HTML解析,支持CSS选择器和XPATH。
  • 06.25 16:21:46
    发表了文章 2024-06-25 16:21:46

    Python 字符串格式化的方式有哪些?

    这篇文章主要介绍了Python的字符串格式化方法,包括: 1. `%` 操作符,如 `%s`, `%d`, `%f` 用于基本的变量插入和类型转换。 2. `str.format()` 方法,利用 `{}` 占位符和位置或关键字参数。 3. f-strings (Python 3.6+),直接在字符串前加 `f` 并在花括号内嵌入变量。 4. `string.Template` 模块,使用 `$` 符号进行模板替换。 5. `str.format_map()` 方法,接受字典替换占位符。 文章强调f-strings在新代码中的推荐使用,因其简洁和可读性。
  • 06.21 17:47:33
    发表了文章 2024-06-21 17:47:33

    Python if 的高级功能有哪些?

    **Python 条件语句简介** `if` 用于检查变量是否为真,真值包括非零数、非空字符串、非空列表等。`if xxx:` 当 `xxx` 为真时执行代码块,否则跳过。`if xxx == xxx` 使用 `==` 比较值是否相等,`if xxx is xxx` 则检查是否为同一对象。
  • 06.19 12:00:20
    发表了文章 2024-06-19 12:00:20

    Filter函数有哪些的高级用法

    `filter()`函数是Python中用于从序列中按条件筛选元素的内置函数。它接受一个函数和一个可迭代对象作为参数,返回一个迭代器,该迭代器包含应用函数后返回`True`的元素。基本语法是`filter(function, iterable)`。可以使用`lambda`表达式简化条件,例如筛选偶数:`filter(lambda x: x % 2 == 0, numbers)`。文章还讨论了使用自定义函数、处理多个条件的情况,并对比了`filter()`与列表推导式的用法。
  • 06.17 15:19:43
    发表了文章 2024-06-17 15:19:43

    怎样使用Cython提升Python的性能

    **Cython是Python的性能增强工具,用于提升Python代码的速度。它允许声明变量类型并调用C库。安装Cython使用`pip install Cython`。Cython语法接近Python,但通过类型声明优化性能。编译Cython代码需创建setup.py文件,然后运行`python setup.py build_ext --inplace`。通过Cython,可以直接优化Python代码和调用C函数,平衡速度与灵活性。**
  • 06.14 16:38:41
    发表了文章 2024-06-14 16:38:41

    怎么发布npm包?

    该文介绍了如何在JavaScript环境中发布npm包的步骤。首先,确保npm客户端配置使用官方源,以避免安全和兼容性问题。接着,登录npm账号。然后,检查`package.json`文件,其中包的`name`应唯一,版本号遵循语义化版本控制。更新版本号后,使用`npm publish`发布包。最后,通过在新环境中全局安装并测试包来验证发布是否成功
  • 06.12 14:59:29
    发表了文章 2024-06-12 14:59:29

    binlog、redolog和undolog三者有何区别?

    MySQL中的binlog、redo log和undo log是日志文件,各有特定作用。binlog用于数据备份、恢复和复制,适用于所有存储引擎。redo log记录事务修改,用于崩溃恢复和数据持久性,仅InnoDB存储引擎支持。undo log保存事务修改前的状态,用于事务回滚和MVCC,也仅InnoDB支持。它们在功能和记录内容上有明显区别,有助于事务管理和数据库一致性。
  • 06.11 00:14:58
    发表了文章 2024-06-11 00:14:58

    SQL中为什么不要使用1=1

    本文探讨了在SQL查询中使用`1=1`的现象及其背后的原因与问题。开发人员有时使用`1=1`作为始终为真的条件来方便动态构建SQL语句,但这样做可能会带来性能问题,尽管现代数据库查询优化器可能能优化掉这种条件,但在复杂查询或特定系统中仍可能影响效率。此外,`1=1`还降低了代码的可读性和跨数据库的兼容性。建议使用更佳实践,如MyBatis的动态SQL标签或Entity Framework的函数式查询,以避免不必要的条件。代码质量的重要性在于每一行代码都应有其明确的目的,避免浪费计算资源。
  • 06.05 14:24:52
    发表了文章 2024-06-05 14:24:52

    Go 中空结构有什么用法

    在 Go 语言中,空结构体 struct{} 是一个非常特殊的类型,它不包含任何字段并且不占用任何内存空间。虽然听起来似乎没什么用,但空结构体在 Go 编程中实际上有着广泛的应用。本文将详细探讨空结构体的几种典型用法,并解释为何它们在特定场景下非常有用。
  • 06.03 14:11:55
    发表了文章 2024-06-03 14:11:55

    不引入ES,如何利用MySQL实现模糊匹配

    本文介绍了实现一个公司申请审批流程的业务场景,该流程涉及商务角色申请添加公司,然后由管理员审批。为了防止添加重复的公司,管理员在审批前需检查已有公司信息。核心思路是通过分词、匹配数据库中的数据并按匹配度排序。在技术选型上,由于系统规模小,选择了使用MySQL的正则匹配功能而非引入ES,以降低复杂性。实现过程中,首先对输入的公司名称进行预处理,移除无用信息如地名等,然后使用IKAnalyzer进行分词,最后通过正则表达式在数据库中进行模糊匹配并按匹配度排序。代码示例展示了如何处理公司名称、分词和执行模糊匹配的SQL查询。

2024年05月

  • 05.30 11:38:31
    发表了文章 2024-05-30 11:38:31

    MySQL in 太慢的 3 种优化方案

    MySQL中的`eq_range_index_dive_limit`参数默认值为200,影响了IN查询的执行方式。当IN列表项少于这个值时,MySQL会使用扫描索引树(精确成本计算),而多于此值则使用索引统计(快速但可能不准)来分析查询成本。大量IN值可能导致性能下降。解决方案包括:1) 分批查询;2) 使用UNION ALL创建内存临时表;3) 创建实体表存储IN值并进行JOIN操作。注意,实体表需及时清理并避免反复插入删除导致性能下降。
  • 05.28 15:46:02
    发表了文章 2024-05-28 15:46:02

    正宇软件引领石家庄创新履职新模式,倾力打造智慧政协”平台

    正宇软件助力石家庄打造的“智慧政协”平台,不仅提升了政协工作的效率和水平,也扩大了正宇软件在政务服务领域的品牌影响力。
  • 发表了文章 2024-09-18

    MySQL 查询优化方法

  • 发表了文章 2024-09-13

    几个基础python防坑小常识

  • 发表了文章 2024-09-11

    Java 8 Stream Api 中的 peek 操作

  • 发表了文章 2024-09-09

    Springboot Starter 是如何工作的?

  • 发表了文章 2024-09-06

    常见java OOM异常分析排查思路分析

  • 发表了文章 2024-09-04

    优化Java多线程应用:是创建Thread对象直接调用start()方法?还是用个变量调用?

  • 发表了文章 2024-09-02

    Redis中大Key与热Key的解决方案

  • 发表了文章 2024-08-29

    List与String相互转化方法汇总

  • 发表了文章 2024-08-27

    网关修改响应码,拯救业务不规范设计

  • 发表了文章 2024-08-26

    go如何使用SQLX操作MySQL数据库?

  • 发表了文章 2024-08-22

    Spring创建的单例对象,存在线程安全问题吗?

  • 发表了文章 2024-08-20

    Python错误、异常和模块

  • 发表了文章 2024-08-16

    接口幂等该如何设计和实现

  • 发表了文章 2024-08-14

    JVM源码级别分析G1发生FullGC元凶的是什么

  • 发表了文章 2024-08-12

    go语言中的Atomic操作与sema锁

  • 发表了文章 2024-08-09

    Python里的类和对象是什么?

  • 发表了文章 2024-08-07

    go语言中一些用法

  • 发表了文章 2024-08-05

    Spring Boot 项目怎么使用策略模式?

  • 发表了文章 2024-08-01

    SpringBoot3怎么做统一结果封装?

  • 发表了文章 2024-07-30

    导出任务耗时如何优化

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