I'd like to know how to maximize speed when querying for the presence of a varchar
value in a column in a specific table. I don't need to know where it is, or how many occurrences there are, I just want a true
/false
. Of course, the column has an index.
Now, I have this:
SELECT exists (SELECT 1 FROM table WHERE column = <value> LIMIT 1);
FYI, you can do much easier than the match function: =countif(A:A,12345)>0 will return True if the number is found, false if it isn't.
EXISTS should normally return as soon as the subquery finds one row that satisfies its WHERE clause. So I think your query is as fast as you can make it.
I was a little surprised that LIMIT 1
seems to always speed up the query very slightly. I didn't expect that. You can see the effect with EXPLAIN ANALYZE
.
EXPLAIN ANALYZE SELECT exists (SELECT 1 FROM table WHERE column = <value> LIMIT 1);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With