Это довольно большой вопрос.
Я бы начал с чтения о модели данных , особенно в разделе «Мышление в терминах запросов».
Цельсделать как можно меньше запросов за «действие», которое вам нужно выполнить.Это часто требует денормализации, иногда несколькими способами.Есть также немало трюков, которые иногда нужно использовать для достижения этой цели;пример Twissandra в связанной документации демонстрирует несколько общих.
Проще давать конкретные предложения для конкретных требований, когда они у вас есть.