当前位置: 首页 > news >正文

数据库char字段做trim之后查询很慢的解决方式

select * from TABLE0 where trim(column1)=:param

当表数据量大时,即使给column1字段加上索引,这条查询语句也会很慢。

因为使用trim函数后,column1的索引会失效,有两种处理方法:

1.给表加上trim(column1)函数索引

这样就能走索引查询,不用全表扫描

2.代码里面对param补齐末尾的空格

使用tirm无非是担心char字段存储的长度没达到数据库设置的长度,数据末尾会出现空格,而前端展示数据时一般会去掉空格传给后端,这就导致无法查询出数据,char是用来存储定长字符的,虽然出现这种问题,是设计和使用上的不合理导致,但是还得解决这个问题。

可以在程序中对传入参数的末尾补齐空格,直到达到char字段的长度,这样查询就不需要tirm了,java代码如下:

    private String formatChar(String s, int charLen){int len = s == null ? 0 : s.length();if(len > 0 && len < charLen){StringBuilder blank = new StringBuilder();for (int i = 0, j= charLen - len; i < j; i++) {blank.append(" ");}s = s + blank;}return s;}

http://www.lryc.cn/news/571644.html

相关文章:

  • 需要做一款小程序,用来发券,后端如何进行设计能够保证足够安全?
  • 微信原生小程序转uniapp过程及错误总结
  • 环卫车辆定位与监管:安心联车辆监控管理平台--科技赋能城市环境卫生管理
  • 【力扣 中等 C】2. 两数相加
  • chili3d笔记18 出三视图调整
  • 数据结构——选择题—查漏补缺
  • Could not locate zlibwapi.dll. Please make sure it is in your library path!
  • 功耗高?加密弱?爱普特APT32F1023H8S6单片机 2μA待机+AES硬件加密破局
  • Vue3 + TypeScript 本地存储 localStorage 的用法
  • 【时时三省】(C语言基础)内部函数和外部函数
  • Cornerstone3D 2.x升级调研
  • EPLAN P8 2.9 如何使用.step格式3D文件绘制3D安装布局图
  • 用idea操作git缓存区回退、本地库回退、远程库回退
  • Oracle client 静默安装
  • 【八股消消乐】构建微服务架构体系—一致性抽象
  • react 自定义状态管理库
  • sql_mode(二)宽松模式和严格模式的区别
  • CHASE、CoSQL、SPARC概念介绍
  • 以list为输入条件,查询数据库表,java中的mapper层和mybatis层应该怎么写?
  • 裸金属服务器深度评测:云计算时代的性能与安全担当​​​​
  • centos 7单机安装ceph并创建rbd块设备
  • 博世X阿里云:智能座舱接入通义大模型!
  • MYSQL进阶超详细总结2.0
  • CppCon 2017 学习:CNL: A Compositional Numeric Library
  • Zephyr 高阶实践:彻底讲透 west 构建系统、模块管理与跨平台 CI/CD 配置
  • 微信小程序-数据加密
  • 数据结构 栈与队列 6.18
  • Vue3 × DataV:三步上手炫酷数据可视化组件库
  • Matplotlib快速入门
  • 2D写实交互数字人:让AI形象拥有“真人温度“的技术革命