Если ваш сервис сейчас не испытывает лютых нагрузок в сотни запросов в секунду, и вопрос об оптимизации в жёлтой зоне ещё не встал, то лучше не хранить поле rating, а добавлять аннотацией в момент выборки данных из БД. Если же СУБД надо разгрузить любой ценой, то надо не save переопределять, а обработчик сигналаpre_save объявить, в котором записывать это поле.
Про производительность вы неправы, ORM всегда будет медленнее запросов. А ещё ORM никогда не будет настолько же гибок. Но зато ORM изолирует вас от особенностей конкретных СУБД, и ваш проект может без изменений переехать с MySQL на PostgreSQL, в случае необходимости. Кроме того, с ORM проще работать и есть возможность находить ошибки статическим анализом.
Никаких особых настроек под ORM не требуется. Проверяйте, что до сервера есть маршрутизация, что порт ни чем не закрыт и что в pg_hba.conf разрешены подключения через сеть.
Никак. Маршалинг всегда симметричный. Если бы можно было при сохранении сущности в базу отбросить ключи отображения, то откуда бы они взялись при восстановлении сущности из базы?