What are some reasons for choosing a case sensitive collation over a case insensitive one? I can see perhaps a modest performance gain for the DB engine in doing string comparisons. Is that it? If your data is set to all lower or uppercase then case sensitive could be reasonable but it’s a disaster if you store mixed case data and then try to query it. You have to then say apply a lower() function on the column so that it’ll match the corresponding lower case string literal. This prevents index usage in every dbms that I’ve used. So wondering why anyone would use such an option.
What are some reasons for choosing a case sensitive collation over a case insensitive
Share
There are many examples of data with keys that are naturally case sensitive:
Storing case sensitive data in case-insensitive system runs the risk of data inconsistency or even the loss of important information. Storing case insensitive data in a case sensitive system is, at worst, slightly inefficient. As you point out, if you only know the case-insensitive name of an object you’re looking for, you need to adjust your query:
I note that in PostgreSQL (and presumably in other systems), it is a simple matter to create an index on the expression
LOWER(name)which will be used in such queries.