Matthew,

> Well, this is a development box. But the live box wouldn't be much more
> than RAID 1 on SCSI 10ks so that should only be a halving of seek time,
> not the 1000 times reduction I'm after!

If you're looking for 1000 times reduction, I think you're going to need 
*considerably* beefier hardware.   You'd pretty much have to count on the 
whole DB being in RAM, and a CPU being always available for incoming queries.

> In fact, now I think about it, I have been testing on a 2.4 kernel on a
> dual HT 3GHz Xeon with SCSI RAID array and the performance is only
> marginally better.

Yes, but HT sucks for databases, so you're probably bottlenecking yourself on 
CPU on that machine.   

However, if this is the query you really want to optimize for:

select street, locality_1, locality_2, city from address 
where (city = 'Nottingham' or locality_2 = 'Nottingham'
       or locality_1 = 'Nottingham')
  and upper(substring(street from 1 for 1)) = 'A' 
group by street, locality_1, locality_2, city
order by street
limit 20 offset 0

... then this is the query you should test on.   Although I will say that your 
denormalized schema is actually hurting you siginificantly with the above 
type of query; indexes aren't going to be possible for it.

-- 
Josh Berkus
Aglio Database Solutions
San Francisco

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to