[tor-commits] [metrics-web/master] Avoid SELECT MAX() on partitioned statusentry table.
karsten at torproject.org
karsten at torproject.org
Sat Jan 14 11:06:43 UTC 2012
commit 1400d7b99cd3e7ee32a58e0025ba2a56a16aa561
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date: Sat Jan 14 12:04:36 2012 +0100
Avoid SELECT MAX() on partitioned statusentry table.
For some reason, SELECT MAX() performs a full table scan on all child
tables of a partitioned table. Good thing we have a non-partitioned table
containing the consensuses that has the same information.
---
.../torproject/ernie/web/RouterDetailServlet.java | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/org/torproject/ernie/web/RouterDetailServlet.java b/src/org/torproject/ernie/web/RouterDetailServlet.java
index 033e9e6..677c293 100644
--- a/src/org/torproject/ernie/web/RouterDetailServlet.java
+++ b/src/org/torproject/ernie/web/RouterDetailServlet.java
@@ -71,7 +71,7 @@ public class RouterDetailServlet extends HttpServlet {
+ "FROM statusentry JOIN descriptor "
+ "ON descriptor.descriptor = statusentry.descriptor "
+ "WHERE statusentry.validafter = "
- + "(SELECT MAX(validafter) FROM statusentry) "
+ + "(SELECT MAX(validafter) FROM consensus) "
+ "AND statusentry.fingerprint = ?";
try {
More information about the tor-commits
mailing list