Maybe those 5 "conventions" are in no particular order, but I'd argue you should first check your indexes and only then consider "trying cacheing". Also, I'd think it'd be better to create indexes after "rewriting your code to use raw SQL", as indexing is usually (meaning almost always) designed to support queries; hence, you need to have queries first.