https://bz.apache.org/SpamAssassin/show_bug.cgi?id=7990
Bug ID: 7990
Summary: SQLBasedAddrList missing index on txrep, result may be
extreme slow
Product: Spamassassin
Version: SVN Trunk (Latest Devel Version)
Hardware: PC
OS: Linux
Status: NEW
Severity: major
Priority: P2
Component: spamassassin
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: Undefined
(This one was using PostgreSQL, namely v11.)
One specific email with 100+ recipients was stuck in the system. It turned out
that Txrep have tried to remove the whitelisted addresses, one by one, from the
table by using:
my $sql = "DELETE FROM $self->{tablename} WHERE username = ? AND email = ?";
The table has only index on last_hit, so this requires a sequential scan. It is
a definite problem on a table with about 5 million entries: hundreds of
sequential scans for one mail caused about 6 minutes of runtime on that
particular and not very large server. Since it's a seq scan it happens again
and again since the DB has no way to tell that the entries aren't there in the
first place.
CREATE INDEX i_txrep_username_email ON txrep (username,email);
reduced the runtime a little bit, to about 3-5 seconds.
(Also I have the eerie feeling that I have already reported that in the last
decade, but search come up with nothing familiar.)
--
You are receiving this mail because:
You are the assignee for the bug.