SQLite still seems to be the best option IMO.
Concerning performance, see
among other (similar) links found through Google. I'd yet have to convinced that there can at all be a noticeable difference in performance, otherwise, even attempting to switch wouldn't make much sense.
This is partially also because we wrote our own extensions for SQLite giving us maximum performance with minimal need for data post-processing. For instance, we invented the subnet_match()
subroutine which can be used to compute subnet-aware matches, e.g.,
SELECT subnet_match('192.168.0.0/16','192.168.1.5');
returning
16
signaling that the addresses match in (at least) 16 bits.
We use this in queries like
SELECT count(id) matching_count,
max(id) chosen_match_id,
ip chosen_match_text,
group_concat(id) matching_ids,
subnet_match(ip,?) matching_bits
FROM client
WHERE matching_bits > 0
GROUP BY matching_bits
ORDER BY matching_bits DESC
LIMIT 1;
I doubt MySQL has this.