- 博客(18)
- 收藏
- 关注
原创 【MySQL】MySQL表设计的经验(建议收藏)
作为后端开发,我们经常需要设计数据库表。整理了21个设计MySQL表的经验准则,分享给大家,希望大家看完会有帮助。如果没有特殊的理由, 一般都建议将字段定义为 NOT NULL。为什么呢?首先,NOT NULL可以防止出现空指针问题。其次,NULL值存储也需要额外的空间的,它也会导致比较运算更为复杂,使优化器难以优化SQL。NULL值有可能会导致索引失效如果将字段默认设置成一个空字符串或常量值并没有什么不同,且都不会影响到应用逻辑, 那就可以将这个字段设置为NOT NULL。
2025-03-22 15:48:24
969
原创 Vanna AI:告别代码,用自然语言轻松查询数据库,领先的RAG2SQL技术让结果更智能、更精准!
Vanna,是一款革命性的AI SQL智能体,可以将复杂的SQL查询简化为日常语义对话。在生成式AI的助力下,Vanna 让数据库查询变得前所未有的简单和直观。它是基于 OpenAI 和 Google 提供的大语言模型(LLM)。Vanna 通过预训练模型,结合你的数据库进行微调,可以快速帮你量身打造一个定制化的AI助手。Vanna 是一个获得 MIT 许可的开源 Python RAG(检索增强生成)框架,用于 SQL 生成和相关功能。GitHub 已经高达7200 颗星??
2025-03-22 03:01:44
1046
原创 Spring基础入门详解与实践
Spring AOP 其余IOC一样是spring的核心模块,围绕着AOP的增强功能,Spring集成了AspectJ作为AOP的一个特定实现,同时还在JVM动态代理/CGLIB的基础上,实现了一个AOP框架作为spring集成其他模块的工具,比如TransactionProxyFactoryBean声明式事务处理,就是通过AOP集成到Spring中的。Web层使用Web层框架,可选的,可以是Spring自己的MVC框架,或者提供的Web框架,如Struts、Webwork、tapestry和jsf。
2025-03-22 01:25:29
351
原创 springBoot发布https服务及调用
(2)CA 签名证书:对于生产环境,应该使用由受信任的证书颁发机构 (CA) 签名的证书。(1)自签名证书:如果你只是用于开发或测试环境,可以生成一个自签名证书。feign接口的地址还是正常配置http或https都支持。你需要提供一些信息,如组织名称等。注意记住密码和别名。这将创建一个有效期为 10 年的自签名证书,并将其存储在。启动服务即可通过https访问了,默认可以设置成false。把证书放在ssl目录下。
2025-03-21 23:47:26
371
原创 Spring Cloud——路由网关Zuul
网关是一个网络整体系统中的前置门户入口,请求首先通过网关,进行路径的路由,定位到具体的服务节点上。(1)Zuul是一个微服务网关,也是会在Eureka注册中心中进行服务的注册和发现,请求应该通过Zull来进行路由。(2)Zuul网关不是必要的,是推荐使用的,一般在微服务数量较多(多于10个)的时候推荐使用,对服务的管理有严格要求的时候推荐使用,当微服务权限要求严格的时候推荐使用。(3)Zuul包含了对请求的路由和过滤路由功能:负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础。
2025-03-10 22:38:15
668
原创 redis设置过期时间
需要注意的是,在 Redis 中,即使某个键已经过期,也不一定会立即被删除,因为 Redis 会定期地检查待删除列表,并删除那些过期时间已到的键。同时,在设置过期时间的时候,应该根据业务的实际情况和系统的负载来调整过期时间,以达到既能保证并发安全,又能尽量避免因为过期时间过短而频繁获取锁、因为过期时间过长而导致资源被长时间占用的效果。Redis 设置过期时间的意思是为一个 key 设置一个时间窗口,在这个时间窗口内,该 key 可以被访问和使用,到达时间窗口后,Redis 会自动删除过期的 key。
2025-03-10 16:38:25
930
原创 PON架构(全光网络)
目前组网架构世界上有一种最快的速度又是光,以前传统以太网络规划满足不了现在的需求。有线网无线网全光网络方案场景全光网络分类以太全光网络PON(Pas-sive-Optical Network 无源光网络)再典型的中大型高校网络中 推荐万兆入室 千兆到桌面的带宽设计 一般三层 (终端-接入层-汇聚层-核心层-出口(安全设备)-互联网)单校区核心设备 一般采用两台高性能的核心交换机 双机的方式采用的是 M-LAG 多校区之间核心交换机采用100G互联,并为将来升级更大的带宽出口预留汇聚层设备,一般采用高转发能力
2025-03-10 11:52:01
744
原创 MySQL:表的设计原则和聚合函数
例如:定义一个学生表,其中的字段有:学号,姓名,年龄,班级名,学校名,学校地址,这就符合了第一范式,但是如果是:学号,姓名,年龄,班级名,学校,这就不符合第一范式,因为无法找到一个数据类型来表示学校这个对象。
2025-03-07 22:02:11
543
原创 MySQL-存储过程的创建和使用
将能够完成特定功能的SQL指令进行封装(SQL指令集),编译之后存储在数据库服务器上,并为其命名,客户端可以通过直接调用SQL指令集,获取执行结果如果有需要多次执行的SQL,每次执行都需要通过连接传递到MySQL服务器,并且需要经过编译和执行后,再返回执行结果。重复且浪费资源如果需要连续执行多个SQL指令,并且第二个SQL指令需要使用第一个SQL执行的结果集作为参数。SQL指令无需客户端编写、通过网络传输,可以节省网络开销,同时避免SQL指令在传输过程中被恶意篡改,保证安全性;
2025-03-05 18:16:53
796
原创 JSqlParser实战指南:解析、修改和生成SQL语句的实用技巧
JSqlParser 是一个流行的 Java SQL 解析器库,它提供了强大的功能来解析、分析和操作 SQL 查询语句。总的来说,Java SQL 解析器在需要对 SQL 查询进行解析、分析和定制化处理的场景下非常有用,它可以帮助你实现各种数据库相关的功能和工具。Java SQL 解析器通常用于处理 SQL 查询语句的解析和分析。本文我们选取最具代表性的 JSqlParser 来看看 SQL 解析器的使用。
2025-03-05 16:53:15
746
原创 Java进阶,集合,Colllection,常见数据结构
需求某影院系统需要在后台存储上述三部电影,然后依次展示出来。分析①:定义一个电影类,定义一个集合存储电影对象。②:创建3个电影对象,封装相关数据,把3个对象存入到集合中去。③:遍历集合中的3个对象,输出相关信息。//1.定义一个电影类//2.定义一个集合对象存储3部电影对象movies.add(new Movie("《你好,李焕英》",9.5,"张小雯,贾玲,沈腾,陈赫"));
2025-03-05 14:43:30
906
原创 error @achrinzanode-ipc@9.2.5 The engine “node“ is incompatible with this module. 解决node.js版本不兼容问题
【代码】error @achrinzanode-ipc@9.2.5 The engine “node“ is incompatible with this module. 解决node.js版本不兼容问题。
2025-03-05 00:25:46
309
原创 2023年java面试问题大全及答案大全
答:String是不可变的,每次对String的操作都会创建一个新的String对象,而StringBuilder是可变的,适用于频繁修改字符串的场景。Java中的反射是什么?用过哪些 Map 类,都有什么区别,HashMap 是线程安全的吗,并发下使用的 Map 是什么,他们内部原理分别是什么,比如存储方式,hashcode,扩容,默认容量等。Java中的多态是什么?讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,当 new 的时候,他们的执行顺序。
2025-03-04 22:07:43
246
原创 .mysqld error while loading shared libraries libaio.so.1 cannot open sha
使用离线方式安装:rpm -ivh --nodeps mysql* ,执行 systemctl start mysqld.service发现启动不了,通过vi /var/log/mysql.log看到如下关键字:libraries: libaio.so.1,之前也是按照网上帖子各种修改都没有解决问题,库是Linux异步I/O库,这个库对MySQL是必需的,因为它依赖于这个库来进行异步I/O操作。2,如果执行了whereis libaio.so.1,没有找到该文件,就要手动安装下libaio。
2025-03-03 17:30:35
275
原创 (SQL) 语句
注:易错切记不可以将‘’in‘’换为‘=’,当然如果管理学院确实只有一个的话,运行也是可以成功的,但不建议。(3)将姓名为“王华”的学生选修数据库原理及应用课程的成绩增加5分。where sdept in(‘数计学院’ ,‘管理学院’)where sname=‘王华’)and cno=where sdept = (‘数计学院’ )查询数计学院或者管理学院学生的学号和姓名。(4)将管理学院全体学生的成绩置为空。where sdept=‘管理学院’where sdept=‘管理学院’
2025-03-03 12:18:01
370
原创 离线安装 Nginx
在现代互联网应用中,Nginx 作为高性能的 HTTP 和反向代理服务器,被广泛应用于各种网站和应用系统中。它以其轻量级、高并发处理能力和稳定性而著称。然而,在某些网络受限的环境中,直接在线安装 Nginx 及其依赖项可能会遇到困难。为了满足这些环境的需求,本文将详细介绍如何在离线环境下安装 Nginx 及其所有必要的依赖项。我们将使用 CentOS7 作为示例操作系统,但这些步骤同样适用于其他 Linux 发行版。
2025-03-03 10:28:03
753
原创 QT学习---使用多线程的两种方法(子类化QThread+子类化QObject)
Qt有两种多线程的方法,其中一种是继承QThread的run函数,另外一种是把一个继承于QObject的类转移到一个Thread里。Qt4.8之前都是使用继承QThread的run这种方法,但是Qt4.8之后,Qt官方建议使用第二种方法。两种方法区别不大,用起来都比较方便,但继承QObject的方法更加灵活。这里要记录的是如何正确的创建一个线程,特别是如何正确的退出一个线程。
2023-10-26 13:32:44
373
原创 Linux 多线程原理深剖
其实这就是一个复用的思想,因此在 Linux 看来线程的控制块和进程的控制块是类似的,他并没有单独搞出一个数据结构来描述他,而是直接对进程取而用之,这也是为什么我们将所有进程·的执行流都叫做轻量化进程,Windows 是支持线程操作的,这也是为什么windows操作系统逻辑比 Linux 复杂的多。一个线程如果被分离了,这个线程依旧要使用该进程的资源,依旧在该进程内运行,甚至这个线程崩溃了一定会影响其他线程,只不过这个线程退出时不再需要主线程去join了,当这个线程退出时系统会自动回收该线程所对应的资源。
2023-10-26 00:29:57
85
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人