【SQL】SQL练习题
lc高频SQL题
简单查询
可回收且低脂的产品
题目地址:
https://leetcode.cn/problems/recyclable-and-low-fat-products/
1234567891011+-------------+---------+| Column Name | Type |+-------------+---------+| product_id | int || low_fats | enum || recyclable | enum |+-------------+---------+product_id 是该表的主键(具有唯一值的列)。low_fats 是枚举类型,取值为以下两种 ('Y', 'N'),其中 'Y' 表示该产品是低脂产品,'N' 表示不是低脂产品。recyclable 是枚举类型,取值为以下两种 ('Y', 'N'),其中 'Y' 表示该产品可 ...
【Redis】Redis实现冷热数据分离
概念
冷热数据分离是一种常用的数据优化策略,它通常会根据数据的访问模式和频率来划分数据存储的方式,将热点数据存储非关系型数据库,将冷数据存储到关系型数据库,以提高系统的性能和资源利用率。
识别冷热数据
在实际业务中,识别冷热数据和处理更新热点数据可以采用以下方法:
基于访问频率的划分:
使用统计工具或监控系统,观察数据的访问频率。通常访问频率高的数据可以归为热数据,访问频率低的数据可以归为冷数据。
如下为常用的方式:
使用AOP切面
使用Spring AOP(面向切面编程)可以在方法执行前后加入自定义的逻辑,包括统计方法的调用次数等。在方法调用前记录开始时间,调用后计算执行时间,然后根据执行时间和调用次数来判断哪些数据被频繁访问。
集成监控工具
集成监控工具,如Spring Boot Actuator、Micrometer等,可以帮助收集应用程序的运行时信息,包括HTTP请求次数、方法调用次数等。可以使用这些信息来评估哪些数据被频繁访问。
日志记录
在方法的开始和结束处记录日志,并在日志中包含关键信息,如方法名、参数等。再通过日志分析工具来分析访问频率
使 ...
【数据库】常见数据库类型
说明
介绍市面上比较流行的数据库
关系型数据库
MySQL
开源关系型数据库管理系统,易于使用且功能强大
更多:官方网站
PostgreSQL
开源关系型数据库,具有高度可扩展性和丰富的功能集。
更多:官方网站
Oracle Database
商业关系型数据库,广泛用于企业级应用
更多:官方网站
Microsoft SQL Server
Microsoft提供的企业级关系型数据库管理系统
更多:官方网站
华为 GaussDB
华为开发的高性能分布式数据库,支持多种数据模型,具备强大的分布式计算能力。
更多:官方网站
南大通用数据库(南大先融)
南京大学研发的先进数据库系统,具备高性能、高可靠性和良好的可扩展性。
更多:官方网站
达梦数据库
国产的高性能关系型数据库,支持分布式计算和海量数据处理,广泛应用于企业级应用。
更多:官方网站
神通数据库
由神通信息科技开发的高性能关系型数据库,具有强大的安全性和稳定性。
更多:官方网站
锐捷数据库
锐捷网络开发的企业级数据库,具备高可用性和性能,广泛用于网络安全和管理领域。
更多:官方网 ...
【Druid】SpringBoot配置Druid监控检测慢SQL
概况
Druid是阿里巴巴生态中的一员,不仅提供了高效的数据库连接池,还包括了SQL解析和数据源监控功能。在系统中遇到慢SQL问题时,借助Druid的监控能力,可以快速地定位问题所在,从而提高系统的性能和效率。
Github地址:https://github.com/alibaba/druid
项目框架
SpringBoot + Mybatis-Plus + MySQL8 + druid
引入
12345<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.16</version></dependency>
配置
123456789101112131415161718192021222324252627282930313233343536373839404142434445 ...
【实操】分词器+布隆过滤器实现文字过滤技术,过滤垃圾评论和敏感词汇
HanLP+布隆过滤器过滤敏感词
HanLP
称为汉语言处理包,是一套自然语言处理工具包,其中包括了许多常用的中文处理工具,例如分词、词性标注、命名实体识别等。它是由中国科学院计算技术研究所自然语言处理与社会人文计算研究中心开发的开源项目。
常用的功能
分词器:HanLP
提供了多种分词器,包括了基于统计的分词器、基于感知机的分词器等,可以满足不同场景的需求。
词性标注:能够将句子中的每个词语标注上相应的词性,如名词、动词、形容词等。
命名实体识别:能够识别出句子中的命名实体,如人名、地名、组织名等。
依存句法分析:可以分析句子中词语之间的依存关系,找出句子的主谓宾结构。
关键词提取:根据句子的内容,提取出关键词。
文本分类:可以将文本按照预先定义的类别进行分类。
短文本相似度计算:可以计算两段文本之间的相似度。
繁简转换:可以将繁体字转换为简体字,反之亦然。
拼音转换:可以将汉字转换为拼音。
自定义词典:可以自定义词典,以满足特定领域的分词需求。
引入中文分词器
123456<!--引入中文分词器--><dependency& ...
【实战】基于Vue3搭建的管理系统
引言
目前,主流的前端开发框架为Vue3+TypeScript。本文将以Vue3+TypeScript为基础,构建一个简单的管理系统,旨在帮助了解Vue3与Vue2之间的区别,熟悉Vue3的开发方式。
项目地址:xxx
搭建
前提环境
安装了 包管理器npm 与 脚本运行环境
node.js
下面两种创建方式推荐脚手架cli
cli方式
创建项目
1vue create z-self_front
选择手动创建 Manually select features,
回车---> 确认 , 空格---> 选择上
选择依赖,按下回车
选择3.x , 按下回车
按照下图,选择后,按下回车
等待项目创建成功
项目的基本结构
启动项目
1npm run serve
项目效果
vite方式
据说 vite
没有脚手架,router、vuex、axios、element-plus、eslint等全要自己手动一个个引入,还各种报错的问题.
参考
api管理
request/api.ts
1 ...
【并发】多线程+CyclicBarrier实现计算任务拆解
场景
假设有一个大的计算任务,需要对一个数组中的所有元素进行求和。我们可以将这个任务拆分成多个子任务,每个子任务负责求和一部分元素,最后将所有子任务的结果累加得到最终结果
CyclicBarrier
位于java.util.concurrent.CyclicBarrier
作用 : 它允许一组线程互相等待,直到到达某个公共屏障点 (Common Barrier
Point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时
CyclicBarrier 很有用。因为该 Barrier
在释放等待线程后可以重用,所以称它为循环( Cyclic ) 的 屏障( Barrier
) 。
构造方法
CyclicBarrier(int parties, Runnable
barrierAction)
创建一个新的
CyclicBarrier,它将在给定数量的参与者(线程)处于等待状态时启动,
并在启动 barrier 时执行给定的屏障操作,该操作由最后一个进入 barrier
的线程执行。
其他方法
barrier.await() ...