On Wed, 28 Apr 2010 16:47:10 +0100, Ron White <[email protected]> wrote:
> As my ACL grows It has crossed my mind that for every acl stanza making
> use of a MySQL that fires off, there is the roundtrip cost of the query.
> Whilst some of the lookups can be optimised by ACL layout, I'm not going
> to be able to avoid some similar very similar queries when I check my
> database for certain flags being set on a per user basis.

Please do note that for exactly similar - ie. identical :) - queries in
the same message session, Exim will cache the results anyway:

http://www.exim.org/exim-html-current/doc/html/spec_html/ch09.html#SECID64

I've built a few systems which handle a relatively large volume (ie.
>100000 messages/day being delivered) which use MySQL, and in all cases the
database itself has not been a bottleneck.

If you run a mock SMTP session as follows:

exim -d+all-memory -bh [insert valid IP here] 2>&1 | tee session.out

...then input all the relevant EHLO/HELO, MAIL FROM and RCPT TO commands
followed by DATA with a valid message, you'll get all the debug output in
the file session.out. This should let you check just how (sub)optimal your
query formation is - what you're looking for are lines like this:

02:45:30 32556 cached data used for lookup of SELECT dir FROM etable WHERE
name='[email protected]' limit 1

ooh, I saved myself a single query ;-)

Graeme


-- 
## List details at http://lists.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to