From 20e8a13ef9c266c6eff4845eb462a3bcf542678f Mon Sep 17 00:00:00 2001 From: Rsl1122 Date: Thu, 15 Aug 2019 14:38:09 +0300 Subject: [PATCH] Optimized playerbase total players queries --- .../access/queries/analysis/PlayerCountQueries.java | 12 +++++++++++- .../system/json/PlayerBaseOverviewJSONParser.java | 4 ++-- .../network/NetworkPlayerBaseOverviewJSONParser.java | 4 ++-- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Plan/common/src/main/java/com/djrapitops/plan/db/access/queries/analysis/PlayerCountQueries.java b/Plan/common/src/main/java/com/djrapitops/plan/db/access/queries/analysis/PlayerCountQueries.java index 7e736abdb..86a02c402 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/db/access/queries/analysis/PlayerCountQueries.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/db/access/queries/analysis/PlayerCountQueries.java @@ -21,6 +21,7 @@ import com.djrapitops.plan.db.access.QueryStatement; import com.djrapitops.plan.db.sql.parsing.Sql; import com.djrapitops.plan.db.sql.tables.SessionsTable; import com.djrapitops.plan.db.sql.tables.UserInfoTable; +import com.djrapitops.plan.db.sql.tables.UsersTable; import java.sql.PreparedStatement; import java.sql.ResultSet; @@ -174,7 +175,7 @@ public class PlayerCountQueries { } public static Query newPlayerCount(long after, long before, UUID serverUUID) { - String sql = SELECT + "COUNT(" + UserInfoTable.USER_UUID + ") as player_count" + + String sql = SELECT + "COUNT(1) as player_count" + FROM + UserInfoTable.TABLE_NAME + WHERE + UserInfoTable.REGISTERED + "<=?" + AND + UserInfoTable.REGISTERED + ">=?" + @@ -183,6 +184,15 @@ public class PlayerCountQueries { return queryPlayerCount(sql, after, before, serverUUID); } + public static Query newPlayerCount(long after, long before) { + String sql = SELECT + "COUNT(1) as player_count" + + FROM + UsersTable.TABLE_NAME + + WHERE + UsersTable.REGISTERED + "<=?" + + AND + UsersTable.REGISTERED + ">=?"; + + return queryPlayerCount(sql, after, before); + } + /** * Fetch a EpochMs - Count map of new players on a server. * diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/json/PlayerBaseOverviewJSONParser.java b/Plan/common/src/main/java/com/djrapitops/plan/system/json/PlayerBaseOverviewJSONParser.java index 6982fb741..fd48e3e2b 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/system/json/PlayerBaseOverviewJSONParser.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/system/json/PlayerBaseOverviewJSONParser.java @@ -76,8 +76,8 @@ public class PlayerBaseOverviewJSONParser implements ServerTabJSONParser trends = new HashMap<>(); - Integer playersBefore = db.query(PlayerCountQueries.uniquePlayerCount(0L, monthAgo, serverUUID)); - Integer playersAfter = db.query(PlayerCountQueries.uniquePlayerCount(0L, now, serverUUID)); + Integer playersBefore = db.query(PlayerCountQueries.newPlayerCount(0L, monthAgo, serverUUID)); + Integer playersAfter = db.query(PlayerCountQueries.newPlayerCount(0L, now, serverUUID)); trends.put("total_players_then", playersBefore); trends.put("total_players_now", playersAfter); trends.put("total_players_trend", new Trend(playersBefore, playersAfter, false)); diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/json/network/NetworkPlayerBaseOverviewJSONParser.java b/Plan/common/src/main/java/com/djrapitops/plan/system/json/network/NetworkPlayerBaseOverviewJSONParser.java index 8fe1dcdcd..4eb6cbef3 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/system/json/network/NetworkPlayerBaseOverviewJSONParser.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/system/json/network/NetworkPlayerBaseOverviewJSONParser.java @@ -76,8 +76,8 @@ public class NetworkPlayerBaseOverviewJSONParser implements NetworkTabJSONParser Map trends = new HashMap<>(); - Integer playersBefore = db.query(PlayerCountQueries.uniquePlayerCount(0L, monthAgo)); - Integer playersAfter = db.query(PlayerCountQueries.uniquePlayerCount(0L, now)); + Integer playersBefore = db.query(PlayerCountQueries.newPlayerCount(0L, monthAgo)); + Integer playersAfter = db.query(PlayerCountQueries.newPlayerCount(0L, now)); trends.put("total_players_then", playersBefore); trends.put("total_players_now", playersAfter); trends.put("total_players_trend", new Trend(playersBefore, playersAfter, false));