Spring模型使用多个表

时间:2017-02-03 11:14:30

标签: mysql spring spring-mvc spring-jdbc

我有一个包含5000万行的数据库表。通过索引我减少了从50秒到2-5秒选择单行的请求时间。因为我仍然需要检索多个单行。通过在仅包含上个月记录的视图上执行选择,我能够进一步减少(<500ms)。
不幸的是,设备有可能在上个月内没有产生记录,但我仍然需要它的最新记录。

有没有可能告诉spring mvc&#34; fallback&#34;到另一个表,如果主表上没有结果?类似的东西:

@Entity
@Table
(
schema="tbl",
name="name_of_view_for_last_month",
fallbackname="name_of_actual_table"
)

1 个答案:

答案 0 :(得分:0)

select 
  case check.exists
  when 1 then check.id 
  when 0 then (select id 
               from name_of_actual_table
               where <condition to get single row>)
  end as result
from (
    select count(id) as exist, id
    from name_of_view_for_last_month last
    where <condition to get single row>) check

如上所述,如何在SQL级别上解决它?

在Spring级别,您可以为完整数据表和月视图创建2个dao类。

在服务中调用monthDataDao,如果没有返回,则使用相同的请求调用fullDataDao