Optimized playerbase total players queries

This commit is contained in:
Rsl1122 2019-08-15 14:38:09 +03:00
parent 9d865ad516
commit 20e8a13ef9
3 changed files with 15 additions and 5 deletions

View File

@ -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<Integer> 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<Integer> 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.
*

View File

@ -76,8 +76,8 @@ public class PlayerBaseOverviewJSONParser implements ServerTabJSONParser<Map<Str
Map<String, Object> 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));

View File

@ -76,8 +76,8 @@ public class NetworkPlayerBaseOverviewJSONParser implements NetworkTabJSONParser
Map<String, Object> 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));