全部产品

云数据库 RDS MySQL 版的decimal字段过大导致查询不准确

更新时间:2019-12-31 17:45:48

免责声明:本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

 

问题描述

云数据库 RDS MySQL 版的decimal字段过大,导致查询不准确。

 

问题原因

云数据库 RDS MySQL 版的decimal字段过大查询不准的情况,这是MySQL数据库的BUG引起。

 

解决方法

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

可以通过添加索引进行优化解决,优化SQL语句如下。

create table mlgtestdecimal(`campaign_id` decimal(24, 0) NOT NULL, name VARCHAR(50));
insert into mlgtestdecimal(campaign_id, name)
VALUES('XXXXXXX','XXXXXX');
insert into mlgtestdecimal(campaign_id, name)
VALUES('XXXXXXX','XXXXXX');
SELECT *
from mlgtestdecimal
where campaign_id='XXXXXXX'
  and name='XXXXXX'
  alter table mlgtestdecimal add index ind_decimal (`campaign_id`);

 

适用于

  • 云数据库 RDS MySQL 版

 

如果您的问题仍未解决,您可以在阿里云社区免费咨询,或提交工单联系阿里云技术支持。