Comment by wmonk
The section of using functions on indexes could do with more explicit and deeper explanation. When you use the function on the index it becomes a full scan of the data instead as the query runner has to run the function on every row and column, effectively removing any benefit of the index.
Unfortunately I learned this the hard way!
Some well known docs on the topic- https://use-the-index-luke.com/sql/where-clause/obfuscation