Browse Source

db optimize

master
gsd 1 week ago
parent
commit
0a5616127b
  1. 23
      src/main/java/app/updates/OnlineUpdater.java

23
src/main/java/app/updates/OnlineUpdater.java

@ -101,32 +101,17 @@ public class OnlineUpdater extends BaseUpdater {
return current_day_max_player_count;
}
public List<MaxPeakOfDay> getMaxPeakOfDays(String server_id, int limit) {
return jdbcTemplate_ro.query("""
SELECT round(sum(s.player_count))::int as player_count, s.ts as fl FROM (
SELECT round(max(player_count), 4) as player_count, to_timestamp(utime)::date as ts
FROM servers_online
WHERE (? = 0 or server_id like ?) and player_count != 0
GROUP BY ts, server_id) as s group by s.ts order by s.ts desc limit ?
""",
new Object[]{
server_id==null||server_id.isEmpty()?0:1,
server_id==null||server_id.isEmpty()?"%":server_id,
limit},
(rs, rowNum) -> new MaxPeakOfDay(rs));
}
public List<AvgPeakOfDay> getAvgPeakOfDays(String server_id, int limit) {
long ts = Instant.now().getEpochSecond() - (86400L * (limit + 1));
return jdbcTemplate_ro.query("""
SELECT round(sum(s.player_count))::int as player_count, s.ts as fl FROM (
SELECT round(avg(player_count), 4) as player_count, to_timestamp(utime)::date as ts
SELECT avg(player_count) as player_count, to_timestamp(utime)::date as ts
FROM servers_online
WHERE (? = 0 or server_id like ?) and player_count != 0
WHERE (utime >= ?) and (? = 0 or server_id like ?) and player_count != 0
GROUP BY ts, server_id) as s group by s.ts order by s.ts desc limit ?
""",
new Object[]{
ts,
server_id==null||server_id.isEmpty()?0:1,
server_id==null||server_id.isEmpty()?"%":server_id,
limit},

Loading…
Cancel
Save