当前位置: 首页 > 网络应用技术

JPA解决了时间类型的不一致,并导致索引无法生效(1)

时间:2023-03-07 11:36:58 网络应用技术

  查询在某个功能上,查询速度达到2分钟,并且是一个表查询,表数据的数量为600W

  SQL在数据库可视化工具中执行,发现执行速度是正常的,并且采用索引。但是,应用程序中的查询达到了2分钟。

  在应用程序中,不应有索引,因为字段是时间字段,因此它很可能在数据库中具有函数转换。

  操作1恢复了测试环境,表格的数据量为50W,这反映了加法和无吸引力之间的差异。

  操作2与DBA DBA联系,说时间类型的存在时间类型在数据库中添加了函数转换

  测试环境数据库中的操作3增加表并将其设置为600W数据

  将数据添加到表

  在Java中添加物理课

  执行查询

  在数据库可视化工具中查询小于测试环境页面上的2s以执行查询查询时间接近6s

  解释页面查询不采用索引

  分析:JPA的底层是ORM框架,时间属性的映射是否存在问题?

  执行页面上的查询,查询时间小于2s,并且数据库可视化工具的查询时间

  进一步测试,删除索引

  页面查询时间接近6s,并且页面查询已充分证明。

  综上所述

  即使Java中的属性是日期类型,也有必要标记属性@Temporal(lemutantype.date),否则它不会对数据库中的字段最反射。数据库不可见的函数转换将在查询期间发生,从而导致索引故障。