From 27dbe6d644ed8ff5476bcc2a9843eeaf4b91b904 Mon Sep 17 00:00:00 2001 From: gsd Date: Sun, 26 Jul 2026 16:36:46 +0300 Subject: [PATCH] db optimize 3.5 --- .../java/app/services/db/KillfeedService.java | 14 ++++++------- .../java/app/services/db/MessageService.java | 20 +++++++++---------- src/main/java/app/updates/OnlineUpdater.java | 16 +++++++-------- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/main/java/app/services/db/KillfeedService.java b/src/main/java/app/services/db/KillfeedService.java index 218f266..1620dad 100644 --- a/src/main/java/app/services/db/KillfeedService.java +++ b/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); } diff --git a/src/main/java/app/services/db/MessageService.java b/src/main/java/app/services/db/MessageService.java index ec796c4..9a3a10c 100644 --- a/src/main/java/app/services/db/MessageService.java +++ b/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); } diff --git a/src/main/java/app/updates/OnlineUpdater.java b/src/main/java/app/updates/OnlineUpdater.java index ab43620..9d04a72 100644 --- a/src/main/java/app/updates/OnlineUpdater.java +++ b/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)); }