1) Split the data into 100 tables, access via 1st two
characters of zip.
2) Tell MySQL to create indexes during table create.
When the 1st load happens, it will do a quick build of
indexes. This is a one shot deal. Faster to reload and
rebuild, than to create index afterwards.
3) Custom code Perl API to determine correct table and
lookup there.
Actual load and index took about 50 minutes.
Perl mod took 10 minutes.
Queries run between 5 and 30 queries a second,
with occassional hesitations. Dual XEON with 2GB
of memory for cache should cure that. I'll find out
on Friday. It's a winner.