From 6ec517e0ef2f964e85222ab54b215768221b352d Mon Sep 17 00:00:00 2001 From: FireMaskterK <20838718+FireMasterK@users.noreply.github.com> Date: Thu, 18 Nov 2021 23:32:19 +0000 Subject: [PATCH] Add index and improve pubsub db query. --- src/main/java/me/kavin/piped/Main.java | 9 +++------ src/main/java/me/kavin/piped/utils/obj/db/PubSub.java | 3 ++- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/main/java/me/kavin/piped/Main.java b/src/main/java/me/kavin/piped/Main.java index b1f7278..f10fd89 100644 --- a/src/main/java/me/kavin/piped/Main.java +++ b/src/main/java/me/kavin/piped/Main.java @@ -34,12 +34,9 @@ public class Main { Session s = DatabaseSessionFactory.createSession(); List pubSubList = s.createNativeQuery( - "select distinct pubsub.* from pubsub inner join users_subscribed on pubsub.id = users_subscribed.channel", - PubSub.class).getResultList(); - - pubSubList.removeIf(pubsub -> { - return System.currentTimeMillis() - pubsub.getSubbedAt() < TimeUnit.DAYS.toMillis(4); - }); + "select distinct pubsub.* from pubsub inner join users_subscribed on pubsub.id = users_subscribed.channel where pubsub.subbed_at < :time", + PubSub.class).setParameter("time", System.currentTimeMillis() - TimeUnit.DAYS.toMillis(4)) + .getResultList(); Collections.shuffle(pubSubList); diff --git a/src/main/java/me/kavin/piped/utils/obj/db/PubSub.java b/src/main/java/me/kavin/piped/utils/obj/db/PubSub.java index c1bb936..862f742 100644 --- a/src/main/java/me/kavin/piped/utils/obj/db/PubSub.java +++ b/src/main/java/me/kavin/piped/utils/obj/db/PubSub.java @@ -7,7 +7,8 @@ import javax.persistence.Index; import javax.persistence.Table; @Entity -@Table(name = "pubsub", indexes = { @Index(columnList = "id", name = "pubsub_id_idx") }) +@Table(name = "pubsub", indexes = { @Index(columnList = "id", name = "pubsub_id_idx"), + @Index(columnList = "subbed_at", name = "pubsub_subbed_at_idx") }) public class PubSub { @Id