Browse Source

db optimize 3.5

master
gsd 1 week ago
parent
commit
27dbe6d644
  1. 14
      src/main/java/app/services/db/KillfeedService.java
  2. 20
      src/main/java/app/services/db/MessageService.java
  3. 16
      src/main/java/app/updates/OnlineUpdater.java

14
src/main/java/app/services/db/KillfeedService.java

@ -58,8 +58,8 @@ public class KillfeedService {
"GROUP BY attacker_id, server_id " +
"ORDER BY c DESC LIMIT 10",
new Object[]{
server_id == null || server_id.isEmpty() ? 0 : 1,
server_id == null || server_id.isEmpty() ? "%" : server_id},
server_id == null || server_id.isEmpty() || server_id.contains("%") ? 0 : 1,
server_id == null || server_id.isEmpty() || server_id.contains("%") ? "%" : server_id},
(rs, n) -> new TopInFeed(rs)).stream().peek(t -> {
t.name = accountId2Nickname.apply(t.uid);
}).toList();
@ -72,8 +72,8 @@ public class KillfeedService {
"GROUP BY victim_id, server_id " +
"ORDER BY c DESC LIMIT 10",
new Object[]{
server_id == null || server_id.isEmpty() ? 0 : 1,
server_id == null || server_id.isEmpty() ? "%" : server_id},
server_id == null || server_id.isEmpty() || server_id.contains("%") ? 0 : 1,
server_id == null || server_id.isEmpty() || server_id.contains("%") ? "%" : server_id},
(rs, n) -> new TopInFeed(rs)).stream().peek(t -> {
t.name = accountId2Nickname.apply(t.uid);
}).toList();
@ -88,15 +88,15 @@ public class KillfeedService {
"ORDER BY c DESC LIMIT ? OFFSET ?",
new Object[]{
steamID.account_id,
server_id == null || server_id.isEmpty() ? 0 : 1,
server_id == null || server_id.isEmpty() ? "%" :server_id,
server_id == null || server_id.isEmpty() || server_id.contains("%") ? 0 : 1,
server_id == null || server_id.isEmpty() || server_id.contains("%") ? "%" :server_id,
limit,
offset },
(rs, n) -> new HypeWeapons(rs));
/*Long count = (Long) createNativeQuery("SELECT COUNT(weapon_index) FROM user_killfeed WHERE attacker_id = ? AND server_id = ? GROUP BY weapon_index")
.setParameter(1, steamID.account_id)
.setParameter(2, server_id==null||server_id.isEmpty()?"%":server_id)
.setParameter(2, server_id==null||server_id.isEmpty()|| server_id.contains("%")?"%":server_id)
.getSingleResult();*/
return Map.of("result", result, "count", -1);
}

20
src/main/java/app/services/db/MessageService.java

@ -25,8 +25,8 @@ public class MessageService {
"WHERE (? = 0 or server_id = ?) AND message LIKE ? " +
"ORDER BY user_messages.id DESC LIMIT ? OFFSET ?",
new Object[]{
server_id == null || server_id.isEmpty() ? 0 : 1,
server_id == null || server_id.isEmpty() ? "%" : server_id,
server_id == null || server_id.isEmpty() || server_id.contains("%") ? 0 : 1,
server_id == null || server_id.isEmpty() || server_id.contains("%") ? "%" : server_id,
filter == null || filter.isEmpty() ? "%" : "%" + filter + "%",
limit,
offset},
@ -36,8 +36,8 @@ public class MessageService {
"FROM user_messages " +
"WHERE (? = 0 or server_id = ?) AND message LIKE ?",
new Object[]{
server_id == null || server_id.isEmpty() ? 0 : 1,
server_id==null||server_id.isEmpty()?"%":server_id,
server_id == null || server_id.isEmpty() || server_id.contains("%") ? 0 : 1,
server_id == null || server_id.isEmpty() || server_id.contains("%") ? "%" : server_id,
filter==null||filter.isEmpty()?"%":"%" + filter + "%" },
(rs, n) -> rs.getLong("c"))
.stream().findFirst().orElse(0L);
@ -52,8 +52,8 @@ public class MessageService {
"ORDER BY user_messages.id DESC LIMIT ? OFFSET ?",
new Object[]{
steamID.account_id,
server_id == null || server_id.isEmpty() ? 0 : 1,
server_id == null || server_id.isEmpty() ? "%" : server_id,
server_id == null || server_id.isEmpty() || server_id.contains("%") ? 0 : 1,
server_id == null || server_id.isEmpty() || server_id.contains("%") ? "%" : server_id,
filter == null || filter.isEmpty() ? "%" : "%" + filter + "%",
limit,
offset},
@ -64,8 +64,8 @@ public class MessageService {
"WHERE account_id = ? AND (? = 0 or server_id = ?) AND message LIKE ?",
new Object[]{
steamID.account_id,
server_id == null || server_id.isEmpty() ? 0 : 1,
server_id==null||server_id.isEmpty()?"%":server_id,
server_id == null || server_id.isEmpty() || server_id.contains("%") ? 0 : 1,
server_id == null || server_id.isEmpty() || server_id.contains("%") ? "%" : server_id,
filter==null||filter.isEmpty()?"%":"%" + filter + "%"},
(rs, n) -> rs.getLong("c"))
.stream().findFirst().orElse(0L);
@ -79,8 +79,8 @@ public class MessageService {
"WHERE account_id = ? AND (? = 0 or server_id = ?)",
new Object[]{
steamID.account_id,
server_id == null || server_id.isEmpty() ? 0 : 1,
server_id==null||server_id.isEmpty()?"%":server_id },
server_id == null || server_id.isEmpty() || server_id.contains("%") ? 0 : 1,
server_id == null || server_id.isEmpty() || server_id.contains("%") ? "%" : server_id },
(rs, n) -> rs.getLong("c"))
.stream().findFirst().orElse(0L);
}

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

@ -75,8 +75,8 @@ public class OnlineUpdater extends BaseUpdater {
"FROM servers_online WHERE player_count != 0 and (? = 0 or server_id = ?) " +
"GROUP BY cast(to_timestamp(utime) as date) / ? ORDER BY ts ASC",
new Object[]{
server_id == null || server_id.isEmpty() ? 0: 1,
server_id == null || server_id.isEmpty() ? "%": server_id,
server_id == null || server_id.isEmpty() || server_id.contains("%") ? 0: 1,
server_id == null || server_id.isEmpty() || server_id.contains("%") ? "%": server_id,
PerDayStats.period},
(rs, rowNum) -> new PerDayStats(rs));
}
@ -86,8 +86,8 @@ public class OnlineUpdater extends BaseUpdater {
"FROM servers_online WHERE player_count != 0 and (? =0 or server_id = ?) " +
"GROUP BY cast(to_timestamp(utime) as date) / ? ORDER BY ts ASC",
new Object[]{
server_id == null || server_id.isEmpty() ? 0 : 1,
server_id == null || server_id.isEmpty() ? "%": server_id,
server_id == null || server_id.isEmpty() || server_id.contains("%") ? 0 : 1,
server_id == null || server_id.isEmpty() || server_id.contains("%") ? "%": server_id,
PerFiveMinutesStats.period},
(rs, rowNum) -> new PerFiveMinutesStats(rs));
}
@ -112,8 +112,8 @@ 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,
server_id==null || server_id.isEmpty() || server_id.contains("%") ? 0 : 1,
server_id==null || server_id.isEmpty() || server_id.contains("%") ? "%" : server_id,
limit},
(rs, rowNum) -> new AvgPeakOfDay(rs));
}
@ -128,8 +128,8 @@ GROUP BY ts, server_id) as s group by s.ts order by s.ts desc limit ?
"GROUP BY ts, server_id) sub GROUP BY sub.ts ",
new Object[]{
utime,
server_id==null||server_id.isEmpty()?0:1,
server_id==null||server_id.isEmpty()?"%":server_id},
server_id==null||server_id.isEmpty() || server_id.contains("%") ? 0 : 1,
server_id==null||server_id.isEmpty() || server_id.contains("%") ? "%" : server_id},
(rs, rowNum) -> new StatsOfPeakOfPerFiveMinutes(rs));
}

Loading…
Cancel
Save