项目中10条数据的分页列表查询大概要6秒多,原SQL只是在3000014行的表数据里查询,如图:
因为是mysql的数据库,mysql可能通过explain与desc来查看并分析sql语句的执行情况,如图:
可以看出有创建有索引的,如果不放必索引创建有问题,可以通过 show index from tableName 来查询表
创建索引,奇怪的有索引查询还那么慢,难道索引不起作用还是索引创建后不可用,于是我尝试备份了这张表
-- 创建备份表 create table t_gateway_info_back select * from t_gateway_info;
这样只是创建表结构与数据,同样的在此表上执行查询耗时还是没有什么变化,从这里可以看出我们创建的索引没有起作用,为什么呢?查看了一下表结构字段定义为varchar(64)类型,返回去再看看sql发现查询条件的参数类型有问题(到这里你发现问题没有?),修改sql执行查询,如图:
到这里问题应该明白了,可以看到 mysql 帮我们做了一件事儿"隐式转换".
相关推荐
在开始解决分页查询问题之前,我们先来了解一下MyBatis Plus的基本概念。MyBatis Plus的核心组件之一是PaginationInterceptor,这是一个分页拦截器,它负责在执行SQL时自动添加分页条件。在不启用这个拦截器的情况下...
5. **错误处理和日志记录**:插件可能包含了错误处理机制,当分页操作出现问题时,能及时反馈错误信息,同时,记录操作日志有助于后期的排查和优化。 6. **版本控制**:考虑到MongoDB数据库和Java环境的更新,插件...
可能有异常处理代码来捕获和处理JDBC操作中的错误,同时使用日志框架(如Log4j或SLF4J)记录系统运行信息,方便调试和问题排查。 8. **安全性**:考虑到SQL注入攻击,项目可能会使用`PreparedStatement`而非`...
MyBatis 分页插件与 Druid 连接池是 Java Web 开发中常用的两个组件,它们在数据库操作和性能优化方面发挥着重要作用。本篇将详细介绍这两个组件的使用和功能。 首先,Druid 是阿里巴巴开源的一个高效、强大的...
这份文档可能涵盖了装置的工作原理、操作指南、维护保养建议,甚至包括了故障排查和维修步骤。阅读此文档可以帮助用户和工程师更深入地理解设备的工作机制,提高工作效率,同时也能为设备的改进和升级提供参考。 总...
这一步骤保证了分页查询的效率,同时保持了SQL的简洁性。 3. **Page对象**: Page 对象是PageHelper的内部类,用于存储分页结果和分页参数。它不仅包含了查询结果集,还记录了当前页数、总页数、总记录数等信息,...
- jsp0902:可能是一个JSP文件,可能是项目的某一部分,具体功能可能与日期9月2日有关,或者表示项目的某个阶段。 总的来说,这个项目提供了一个基础的Web应用实例,展示了如何使用JSP进行用户认证、数据分页以及...
标签 "源码" 提醒我们,理解分页插件的实现,可以深入研究其源代码,这有助于我们更好地定制和优化分页功能,以及学习更多关于MyBatis和拦截器的知识。 标签 "工具" 表示PageHelper是一个实用的工具,能简化开发...
- 开发环境中,IDE(如Eclipse、IntelliJ IDEA)的项目编码设置也应设为UTF-8,防止源代码保存时出现问题。 10. **日志输出**: - 日志框架如Log4j、Logback的日志配置文件也要指定UTF-8编码,确保日志中的中文...
Struts2、Hibernate和MyBatis是Java Web开发中常用...不过,项目描述中提到条件查询需改善,可能意味着需要优化查询效率,避免N+1查询等问题,以及确保代码的可读性和可维护性。欢迎大家提出建议,共同提升项目的质量。
- 可通过Druid监控页面查看SQL执行效率,分析慢查询,优化SQL语句。 5. **注意事项** - 数据源的初始化大小、最大连接数、最小连接数等参数需根据实际应用负载情况进行合理配置。 - 分页插件的配置需与数据库...
解决这一问题的方法之一是优化SQL查询语句,确保关键表有合适的索引,并实现有效的分页机制。 - **友好的错误提示**:在系统出现错误时,向用户提供清晰、简洁的错误提示信息,不仅有助于提升用户体验,还可以帮助...
在Java项目开发中,有许多关键点和最佳实践需要注意。以下是一些主要的知识点和心得总结: 1. 数据库设计与建模: - 在创建数据库表时,应基于业务需求分析表的字段,确保满足第三范式以减少数据冗余。 - 使用...
- 故障排查和优化技巧,如如何处理MBP的查询效率问题,以及SpringBoot应用的性能调优方法。 通过这份复习资料,开发者将能够深入理解MyBatis-Plus和SpringBoot的核心概念,提高Java Web开发能力,并为实际项目开发...
集成JMESa到Java项目中通常包括以下步骤: 1. **导入依赖**:将jmesa-3.0.4.zip解压后,将.jar文件添加到项目的类路径中,或者如果使用Maven或Gradle,将依赖信息添加到构建文件中。 2. **创建分页对象**:在代码...
- 分析和解决实际项目中遇到的复杂查询问题。 - 如何通过多表连接、子查询等方式高效地获取所需数据。 2. **大数据量处理策略**: - 当面对海量数据时,如何优化查询性能,提高系统的响应速度。 - 包括分区技术...
- **分页查询**:为了提高性能,避免一次性加载大量数据,可以使用分页查询。 - **索引管理**:定期进行索引重建或刷新,保持索引的高效性。 - **错误处理**:处理可能的网络异常、连接超时等问题,确保应用健壮...
虽然过程中可能会遇到一些小问题,比如参数传递不正确、页面布局调整等,但只要保持耐心和细心,逐一排查问题所在,就能够顺利完成任务。希望本文能对正在学习或者应用这两种技术的朋友们有所帮助。 在这个过程中,...
本文将详细介绍如何在Spring Boot项目中集成MyBatis,以及如何获取和使用相关的资源。 一、Spring Boot与MyBatis的集成原理 Spring Boot通过`spring-boot-starter`系列模块简化了依赖管理,`spring-boot-starter-...