自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySql 前缀索引

MySQL中的前缀索引(Prefix Index)是一种特殊类型的索引,它仅对列值的前几个字符(而不是整个列值)建立索引。这种索引类型可以在一定程度上减少索引的大小,提高查询效率,特别是在处理长文本或字符列时,只需要索引列的前几个字符的查询。请注意,在选择使用前缀索引时,需要权衡其优缺点,并根据具体的应用场景和数据特性来决定是否使用以及如何使用前缀索引。

2024-04-30 13:59:51 348 2

原创 MySql 空间索引

在 MySQL 中,直接对几何数据类型(如POINTLINESTRINGPOLYGON等)使用 "几何索引" 的概念并不完全准确,因为 MySQL 不直接提供名为 "几何索引" 的索引类型。但是,你可以为这些几何数据类型创建空间索引(Spatial Index),这允许你高效地对空间数据进行查询和操作。MySQL 的空间数据类型和空间函数在SPATIAL扩展中定义,这些扩展主要用于处理地理空间数据。MySQL 使用R-tree数据结构来存储空间索引,以支持对空间数据的快速查找。

2024-04-30 13:58:17 499 1

原创 基本排序算法

Java 中有多种排序算法,包括冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序等。这些算法在复杂度、稳定性和适用性上有所不同。

2024-04-29 09:56:59 696

原创 设计模式-行为型模式-状态模式

【代码】设计模式-行为型模式-状态模式。

2024-04-26 11:06:58 337

原创 设计模式-行为型-命令模式

【代码】设计模式-行为型-备忘录模式。

2024-04-26 11:03:35 72

原创 设计模式-行为型模式-责任链模式

使用多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

2024-04-25 15:20:59 382

原创 设计模式-行为型-备忘录模式

【代码】设计模式-行为型-备忘录模式。

2024-04-25 15:09:03 112

原创 设计模式-行为型模式-观察者模式

观察者模式用于定义对象间的一种一对多的依赖关系,使得当一个对象状态变化时,其所有依赖对象都会收到通知并自动更新。

2024-04-25 10:49:29 439

原创 设计模式-结构型模式-适配器模式

适配器模式用于将一个类的接口转换成客户端希望的另一个接口。

2024-04-25 10:48:33 94

原创 设计模式-创建型模式-工厂模式

下面代码中CarFactory是一个工厂类,它根据传入的参数来创建不同类型的Car对象。通过工厂模式,在不改变客户端代码的情况下轻松地添加新的品牌汽车。工厂模式是一种用来创建对象的模式,它将对象的创建和使用分离开来,使得代码更加灵活和可扩展。

2024-04-25 10:47:27 303

原创 ThreadLocal 为什么会内存泄漏吗?是怎么产生的?

ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不通的变量值完成操作的场景。从上面的结构图,我们已经窥见ThreadLocal的核心机制:每个Thread线程内部都有一个Map。Map里面存储线程本地对象(key)和线程的变量副本(value)

2024-04-24 16:53:58 621

原创 MySql 查询优化

MySQL查询优化涉及多个方面,包括索引优化、查询优化、服务器配置优化等。

2024-04-24 15:55:28 271

原创 MySql on duplicate key update

"ON DUPLICATE KEY UPDATE"是MySQL的语法,当尝试插入的行导致一个duplicate key错误(如果该行中存在一个unique索引或primary key,并且该索引或primary key在表中已经存在),则执行UPDATE。

2024-04-24 15:43:49 228

原创 MySql 函数和表达式索引

MySQL 支持使用函数和表达式来创建索引,这通常被称为函数式索引或表达式索引。这样的索引在某些情况下非常有用,特别是当你需要基于某个函数的计算结果进行快速查询时。

2024-04-24 15:32:15 278

原创 R-tree相关整理

R-tree 是一种用于空间索引的树形数据结构,常用于地理信息系统 (GIS) 和空间数据库中以高效地处理空间查询。R-tree 的基本思想是将空间对象(如点、线、多边形等)用最小边界矩形 (MBR) 来表示,并在树中按空间位置对这些 MBR 进行层次化的划分和组织。

2024-04-24 15:05:24 315

原创 Mysql8.0 新特性--Clone Plugin

MySQL 8.0 引入的Clone Plugin是一个重大特性,它允许从本地或者远程的MySQL中克隆数据。克隆的数据包括schema、表、表空间、元数据等等,是一个完整的数据目录。插件可以使用克隆的目录配置和恢复一个MySQL Server。Clone Plugin的克隆操作分为本地克隆和远程克隆。本地克隆将启动克隆操作的MySQL克隆到该主机的一个指定目录下;

2024-04-24 14:49:30 926

原创 常用的负载均衡算法

负载均衡(Load Balancing)是一种计算机网络和服务器管理技术,旨在分配网络流量、请求或工作负载到多个服务器或资源,以确保这些服务器能够高效、均匀地处理负载,并且能够提供更高的性能、可用性和可扩展性。本文分析了五种常见的负载均衡算法,算法的实现都比较简单,在实际的生产环境中,我们可以根据自己的业务场景来选择合适的负载均衡算法。一致性哈希:Consistent Hashing,可以参考文章:hash & 一致性hash,如何选择?

2024-04-24 14:28:15 1176

原创 一个简单的分布式系统示例代码(Python)

使用socket库进行节点之间的通信。

2024-04-24 13:48:37 283 3

原创 一个简单的分布式系统示例代码 (Java)

其中包含一个服务器(节点A)和一个客户端(节点B)。在这个例子中,服务器会监听来自客户端的连接请求,并接收客户端发送的消息。客户端会连接到服务器并发送一条消息。

2024-04-24 13:43:16 249 3

原创 分布式架构搭建

搭建分布式架构涉及多个方面,包括系统设计、网络架构、数据存储、服务拆分、负载均衡、容错处理等。

2024-04-24 10:03:18 546

原创 SpringBoot钩子函数

如果你正在使用的库或框架没有直接提供钩子,你可以尝试通过扩展该类库或框架的类来添加自定义的钩子功能。这通常涉及到继承或组合,并覆盖或添加新的方法。

2024-04-22 17:03:54 869 1

原创 管理多线程永动任务

请注意,长时间运行的永动任务可能会消耗大量的系统资源,因此通常会在任务中添加一些休眠逻辑,以减少CPU的占用。,并提交了一个永动任务。任务是一个无限循环,每次循环执行一些逻辑(在这个例子中只是打印一条消息),然后休眠一秒。方法,它首先尝试正常关闭(不再接受新任务,并等待现有任务完成),如果超时则尝试强制关闭(取消所有任务)。在真实场景中,你可能还需要考虑如何优雅地处理任务的中断,例如在任务中捕获。,并决定是重新设定中断状态并退出循环,还是只是重置中断状态并继续执行。在这个例子中,我们创建了一个单线程的。

2024-04-22 16:43:27 665

原创 二叉树的层序遍历

方法首先检查根节点是否为空,如果为空则直接返回一个空的列表。然后,它创建一个队列并将根节点入队。在循环中,它首先获取当前层的节点数(即队列的大小),然后遍历这些节点,将它们的值添加到当前层的列表中,并将它们的子节点(如果存在)入队。完成当前层的遍历后,将当前层的列表添加到结果列表中。这个过程一直持续到队列为空,即遍历完所有层。二叉树的层序遍历通常使用队列(Queue)来实现。层序遍历也称为广度优先遍历(Breadth-First Traversal),它按照树的层级,从上到下、从左到右遍历节点。

2024-04-19 10:46:39 220 1

原创 MySql CPU激增原因分析

通过root登录数据库开启慢SQL查询日志,set global slow_query_log = ‘ON’,并设置慢SQL过滤时间set global long_query_time = 1(超过1秒视为慢SQL),指定慢SQL日志文件存放路径set global slow_query_log_file = ‘/var/lib/mysql/test_1116.log’。其中重点字段包括Comand 、Time 、State、Info,可以查看当前所有连接线程中命令、持续时间、状态、对应的SQL信息。

2024-04-19 10:16:27 950

原创 @Transactional 详解

在该示例中,我们在 `createUser` 方法上使用 `@Transactional` 注解,指定了事务的传播行为、隔离级别和超时时间。使用 `@Transactional` 注解时,需要在 Spring Boot 的配置类中启用事务支持。2. `isolation`:事务的隔离级别,用于指定事务之间的并发访问数据库时可能出现的问题,如脏读、不可重复读和幻读等。1. `propagation`:事务的传播行为,用于指定当前事务与其他事务之间的关系。3. `timeout`:事务的超时时间,单位为秒。

2024-02-29 16:20:50 455

原创 跟据业务选择缓存模式

前面介绍了缓存的基本思想、优势、代价以及读写模式,接下来一起看下互联网企业常用的缓存有哪些分类。

2024-02-19 15:40:04 908 1

原创 SpringBoot Kafka

实现一个SpringBoot应用程序,其中包含多个接收系统订阅多个发送系统,多个消费组和多个消费者。

2024-01-09 10:29:41 753

原创 消息队列比较

特性 ActiveMQ RabbitMQ RocketMQ Kafka 单机吞吐量 万级,比RocketMQ、Kafka低一个数量级 同ActiveMQ 10万级,支撑高吞吐 10万级,高吞吐,一般配合大数据类系统来进行实时数据计算、日志采集等场景 topic数量对吞吐量的影响 topic可以达到几百、几千的级别,吞吐量会有较小幅度的下降,这是RocketMQ的一大优势,在同等机器下,可以支撑大量的topic topic从几

2024-01-09 10:01:05 359

原创 如何防止抢购时候出现负库存

扣减库存的几种方式:下单减库存:即当买家下单后,在商品的总库存中减去买家购买数量。下单减库存是最简单的减库存方式,也是控制最精确的一种,下单时直接通过数据库的事务机制控制商品库存,这样一定不会出现超卖的情况。但是你要知道,有些人下完单可能并不会付款。 付款减库存:即买家下单后,并不立即减库存,而是等到有用户付款后才真正减库存,否则库存一直保留给其他买家。但因为付款时才减库存,如果并发比较高,有可能出现买家下单后付不了款的情况,因为可能商品已经被其他人买走了。 预扣库存:这种方式相对复杂一些,买家下单

2024-01-08 16:09:57 423

原创 Linux开放端口号

firewall-cmd --zone=public --add-port=要开放的端口号/tcp --permanent。–add-port=6379/tcp #添加端口(如 8080 , 3306 都行)格式为:端口/通讯协议。netstat -ntulp |grep 6379 //查看所有端口使用情况。–permanent #永久生效,没有此参数重启后失效。netstat -ntlp //查看当前所有tcp端口。–zone #作用域。

2024-01-05 17:31:06 417 1

原创 如何防止用户连续下单两次误操作

使用缓存机制来记录用户的请求,一旦发现有重复的请求,可以及时处理并返回相应的提示信息给用户。例如,可以在服务端使用Redis等缓存数据库来存储用户的订单信息,一旦发现有重复的订单信息,可以及时处理并返回相应的提示信息给用户。设置一个合理的超时时间,在用户提交订单后的一段时间内,如果用户没有得到服务端的响应,可以自动提示用户订单提交超时,让用户重新提交订单。令牌桶算法可以限制用户的请求频率,如果用户的请求频率超过了限制,可以拒绝用户的请求或者提示用户等待一段时间后再进行操作。

2024-01-05 17:13:18 949 1

原创 MySQL 远程跨库查询 FEDERATED引擎

mysql 提供了一个类似Oracle中的数据库链接(DBLINK)功能的存储引擎–FEDERATED当我们创建一个以FEDERATED为存储引擎的表时,服务器在数据库目录只创建一个表定义文件。文件由表的名字开始,并有一个frm扩展名。无其它文件被创建,因为实际的数据在一个远程数据库上。这不同于为本地表工作的存储引擎的方式。当开发人员需要使用 MySQL 和远程 MySQL 服务器中的多个数据库时,此技术非常有用。远程服务器存储数据,而本地服务器仅通过连接字符串指向它们。

2023-06-02 10:35:50 307

空空如也

空空如也

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

TA关注的人

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