首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >YashanDB|字段加索引反而查不到数据?可能是这个原因

YashanDB|字段加索引反而查不到数据?可能是这个原因

原创
作者头像
数据库砖家
发布2025-04-18 17:53:45
发布2025-04-18 17:53:45
1070
举报

【问题分类】索引功能使用

【关键词】索引、查询异常、时间字段、varchar 类型

问题描述

在某些业务场景中,原本可以正常查询的 SQL,在对字段添加索引后突然无法查出结果,数据仿佛“凭空消失”。

问题原因分析

这是由于旧版本 YashanDB 存在一个与字符串类型字段索引相关的 Bug。特别是当时间字段被定义为 varchar 类型,并在查询中混用 DATE_FORMAT 时,索引无法被正确命中,导致查询结果为空。

解决/规避方案

为避免该问题,建议采取以下措施:

1.调整字段类型

在建表时,将 UPDATETIME 等时间相关字段定义为 DATE 或 TIMESTAMP 类型,而非 varchar 字符串。

2.统一使用时间格式处理函数

查询条件中,要么全用 DATE_FORMAT,要么完全不用,保持一致性:

代码语言:javascript
复制
​
-- 推荐方式一(都使用 DATE_FORMAT)
DATE_FORMAT(updatetime, '%Y-%m-%d') 
  BETWEEN DATE_FORMAT('2021-10-19', '%Y-%m-%d') 
  AND DATE_FORMAT('2021-10-20', '%Y-%m-%d')
-- 推荐方式二(全部使用原始格式)
updatetime BETWEEN '2021-10-19' AND '2021-10-20'

影响版本

22.2.5.0 及以下版本

修复版本

已在 22.2.7.2 版本中修复该问题

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档