一、、、
话说今天客户遇到了统计数据查询非常缓慢的问题,情况比较诡异,在某次程序升级之后突然发生。
鉴于之前rds(mysql5.6)表现还不错,所以以为可能是用户单表数据接近千万所以导致查询有问题,产生瓶颈了,导致iops一直跑满。然而数据全部同步到本地的mysql5.7之后发现,本地速度很快啊。。。
只好开始看aliyun的慢日志,发现竟然有些查询需要近20分钟!把这些查询挑出来explain,悲催的发现,本地和服务器的查询计划完全不一样...服务器的根本就没用到索引,虽然索引存在。
再然后就开始了漫长的分析过程,why why why...后来联系一位oracle master的朋友咨询了一下才明白,这种破事竟然很正常...最终我灵机一动,删掉了服务器的索引然后重建,发现终于查询计划可以用上索引了,看来是索引莫名其妙的失效了!
这个事情让我对rds的机制产生了非常不靠谱的赶脚,另外即使能用索引了,服务器和本地使用的索引竟然不一样,完全莫名其妙;比如用状态和时间查询,存在这两个字段的联合索引,竟然在rds mysql 5.6上会落到另外一个奇怪的索引上。
下面再买rds尽量买5.7了,我觉得应该是mysql5.6的不靠谱导致的;另外这个数据量,也许应该考虑一下分区了。
二、、、
开发团队之前用springboot的时候一直在idea里面配合jrebel,结果新来了一批开发人员之后,jrebel安装的乱七八糟,导致做点什么都得重启项目,实在崩溃。
于是调查了一下发现springboot-devtools依赖竟然就是解决这个的,实在很意外,因为早几年知道spring loaded,这东西也是当时grails 2.x的自动编译加载的基础,实在不是太好用,没想到现在springboot又自己做了一个小插件,看起来似乎也不麻烦。
具体配置上也比较简单:
1.添加依赖(maven or gradle)
2.添加代码
System.setProperty("spring.devtools.restart.enabled", "false");
否则重新编译会引发项目自动重启
3.src/main/resources/config/application-dev.yml,spring.devtools.livereload.enabled: true
这个配置比较关键,会编译后自动加载,很好用。
另外说一下的是,如果有jrebel启动,devtools会自动禁用,采用jrebel;另外devtools好像不具备自动重新加载mybatis的能力,有这个需求最好是jrebel了。
相关推荐
通过上述的分析和解决方案的介绍,我们可以看到在使用SpringBoot的devtools工具时,需要考虑到类加载器的使用问题,特别是在多模块项目或者特定的框架搭配使用时,这可能导致一些意外的异常。通过添加META-INF/...
SpringBoot Devtools实现项目热部署的方法示例 SpringBoot Devtools是SpringBoot框架中的一种开发工具,主要用来实现项目热部署,热部署可以大大提高开发效率,减少重复劳动。下面我们将详细介绍SpringBoot ...
总的来说,SpringBoot2.X Devtools的热部署功能通过自动化代码变更的检查和应用重启,极大地提升了开发效率。只需简单的配置,开发者就可以享受到这种便利,专注于代码编写,而不必频繁地进行手动重启操作。
本文将详细介绍如何在SpringBoot中使用devtools进行热部署,并探讨其工作原理。 首先,要启用SpringBoot的热部署功能,我们需要在项目的`pom.xml`或`build.gradle`文件中添加Spring Boot DevTools的依赖。对于Maven...
若要更改此行为,可以在`application.properties`中设置`spring.devtools.restart.exclude`,比如排除`/static`和`/public`目录下的文件: ```properties spring.devtools.restart.exclude=static/**,public/** ``` ...
IntelliJ IDEA中SpringBoot项目通过devtools实现热部署的方法 1. 添加devtools依赖项:在pom.xml文件中添加spring-boot-devtools依赖项,以便在IntelliJ IDEA中使用热部署功能。 知识点:spring-boot-devtools是...
为了实现SpringBoot项目修改后无需重启即可生效,即所谓的热部署,我们可以利用SpringBoot提供的devtools(开发者工具)和其他配置。以下是对这个主题的详细解释: 1. **SpringBoot DevTools (开发者工具)** ...
SpringBoot 是一个流行的 Java 框架,为了提高开发效率和降低开发成本,SpringBoot 提供了 DevTools 依赖项,以实现热部署过程解析。下面将详细介绍 SpringBoot 实现 DevTools 热部署过程解析的过程。 首先,需要在...
Spring Boot的DevTools是开发者工具集,主要用于简化开发过程中的热部署问题。热部署是指在开发过程中,当代码发生变化时,无需手动重启应用,系统能够自动检测并重新加载修改后的代码,大大提高了开发效率。本教程...
Spring Boot DevTools是一款专为Spring Boot开发者设计的强大工具,它极大地优化了本地开发流程,提供了自动重启和LiveReload功能。这个工具使得开发人员在修改代码后无需手动重启应用,即可实时看到代码变更的效果...
在现代Web开发中,SpringBoot和Vue.js是两个非常受欢迎的技术栈。SpringBoot简化了Java后端的开发流程,提供了快速构建微服务的能力;而Vue.js则是一款轻量级的前端框架,以其易学易用、组件化和高效的性能受到...
随着 Spring 项目的发展,其复杂度逐渐增加,SpringBoot 应运而生,它构建在现有的 Spring 框架之上,减少了样板代码和配置,使得开发者能更快地启动和运行项目。SpringBoot 的主要优点包括: 1. **减少开发时间**...
- 今天毛毛张分享的是最近复现了一个练手的前后端分离的项目,改项目一个基于`Java`的`Springboot`框架和`Vue`框架,使用`MySQL`数据库的音乐管理系统,以满足用户对音乐的播放和管理需求 - **前端技术栈:** `Vue....
SpringBoot之脚手架是一个基于Java的项目,它集成了多个流行的技术框架,为开发者提供了一个快速入门和高效开发的平台。在这个项目中,我们主要关注SpringBoot的核心特性以及所集成的各种组件的功能和使用方法。 1....
SpringBoot如何通过devtools实现热部署 SpringBoot是一款基于Java的开源框架,提供了许多实用的功能和配置项,其中之一就是热部署。在SpringBoot中,我们可以通过devtools实现热部署,避免每次修改代码后都需要...
5. **SpringBoot DevTools**: 开发者工具,提供了快速重启、热部署等功能,极大地提高了开发效率。 三、手写SpringBoot实践 在着手手写SpringBoot之前,我们需要理解上述核心组件的工作机制。下面,我们分步骤进行...
- 创建SpringBoot项目:首先,我们需要创建一个新的SpringBoot项目,并添加必要的依赖,如Spring Web、Spring Boot DevTools等。 - 配置OPC客户端:引入OPC库后,需要配置客户端连接参数,如服务器地址、端口、...
这使得你可以实时观察和修改数据,以便快速定位问题。 2. 组件树:它展示了应用中的组件层次结构,每个组件的props、data、methods、生命周期钩子等信息一目了然,方便理解和追踪组件间的关系。 3. 派生状态...
6. **错误和警告提示**:当你的Vue应用出现错误或警告时,Vue3 DevTools会在控制台中显示,帮助你快速定位问题所在。 7. **自定义设置**:Vue3 DevTools允许用户根据自己的需求调整设置,例如启用/禁用某些功能,...
Vue Devtools 6.4.5 版本是一款强大的前端开发工具,专为Vue.js框架设计,用于在浏览器环境中进行调试和性能优化。这个版本的更新主要集中在提升开发者体验和修复已知问题,使得Vue应用的开发过程更加顺畅。下面我们...