Probleem is dat ze die gegevens willen beschikbaar hebben op de cliënt en de mogelijkheid willen om er vlot in te zoeken.
Met de juiste queries kan je doorgaans ook snel zoeken, zónder alles eerst op de client te zetten.
Het hangt er natuurlijk vanaf hoe je zoekt. Als je een zoekstring neemt, en een query opbouwt zoals die hieronder, dan weet je zeker dat het traag is. Je kan dan nooit gebruik maken van indexen, en je zal altijd je hele hoofdtabel (en waarschijnlijk de hele gejoinde tabellen) doorlopen.
Code:
where
Naam like '%piet'%' or
Straat like '%piet'%' or
Bedrijfsnaam like '%piet'%' or
..
Maar door de SQL samen te stellen op basis waarvan je wilt zoeken, en beperkingen te stellen aan _hoe_ je zoekt, kan je het een stuk efficienter maken. Als je bijvoorbeeld alleen wilt zoeken naar mensen die beginnen met 'piet', dan ziet je where clause er zo uit, en nu heeft je query ineens het voordeel van een index op de naam-kolom, en is ie misschien wel 100 keer sneller.
Dat lijkt me ook het principe waar Rik's filters op gebaseerd zijn.
Code:
where
Naam like 'piet'%'
We gebruiken zelf zoek-schermpjes die er zo uitzien. Je kan dan als gebruiker opgeven waarin je zoekt. Gebruikers leren dan ook vanzelf dat zoeken op volledige naam (een samengesteld, ongeindexeerd veld), veel trager is dan op ordernummer of postcode. Dat gebruik je dus alleen bij uitzondering. En als het vaak voorkomt dat je wel op volledige naam moet zoeken, dan kunnen we zorgen dat dat beter geindexeerd is. Je kan er dan zelfs voor kiezen om indexen te maken op de wel of niet hoofdlettergevoelige variant, of een variant ontdaan van diacrieten, of (zoals bij telefoonnummers) ontdaan van spaties en leestekens.
Je had het over big data, maar big data staat doorgaans ook niet op je client, en maakt gebruik van slimme indexeringen en slimme aggregaties/projecties waar je dan weer op doorqueriet. Een query op de ruwe data achter een big query systeem zal ook niet snel zijn. De truc is om zelden of nooit met de ruwe data te werken.
Onze zoekschermpjes zijn overigens aangepaste versies van de EST Search Dialogs.
Bookmarks