Ich hab mit CGI nichts am Hut.
Wenn möglich würde ich dafür sorgen, dass die
DB Buffer so dimensioniert sind, dass die Daten vollständig dort im
RAM liegen. 3000 Sätze insgesamt ist nicht viel, es sei denn, die Textbausteine bestehen aus den einzelnen Brockhausbänden.
Der Zugriff ist dann so oder so Kopfrechnen für das System.
Locate setzt vollständige Datasets am Client voraus, das wäre im Grunde schon der 2. "Cache". Ich würde zu gezielten Queries tendieren, kommt auch drauf an, ob Webserver und
DB auf einem System sind.