From cef1bf2554a4ed3a5c6aa4e8696df7099ba29ae2 Mon Sep 17 00:00:00 2001 From: Robert Date: Sun, 12 Apr 2026 10:51:57 -0700 Subject: [PATCH] Speed up query in paused loop. - Add an index on dverified. - Stop doing explicit conversion from str to int (dverified + 0) - dverified will always be a 10 digit unix timestamp, so string comparison results in the same as numeric. - Query goes from ~30 sec to ~5 (Alternative considered was adding a virtual dverified_num column, but that's a lot more invasive.) --- bin/paused | 2 +- doc/mod.schema.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/bin/paused b/bin/paused index 8180d5226..3abaa7ce6 100755 --- a/bin/paused +++ b/bin/paused @@ -201,7 +201,7 @@ sub loop () { # we're NOT called as a method WHERE length(userid) > 1 AND ( dverified='' OR - dverified+0 > ? + dverified > ? ) }; #}; $sth = $dbh->prepare($query); diff --git a/doc/mod.schema.txt b/doc/mod.schema.txt index c1ccb379c..b7e003464 100644 --- a/doc/mod.schema.txt +++ b/doc/mod.schema.txt @@ -292,6 +292,7 @@ CREATE TABLE uris ( is_perl6 tinyint NOT NULL DEFAULT 0, PRIMARY KEY (uriid), UNIQUE KEY useridbaseis_perl6 (userid,basename,is_perl6), + KEY dverified (dverified), KEY uri (uri) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 PACK_KEYS=1; /*!40101 SET character_set_client = @saved_cs_client */;