Thanks for sharing. As to the point of Yuri, graphql will not solve the DB issue entirely if at all, I like to use graphql but for different reasons.
I like graphql as an interface to microservices built with REST endpoints.
The graphql awesomeness comes in the ability to select exactly what do I need in my response, in REST once the endpoint is defined, I'll get all data available even when I don't need it, with graphql I can choose with fields I want, which makes it extremely powerful to reduce bandwidth.
Imagine you are building an app with a web and mobile component, while on Web you may show the user a lot of information, on the mobile you may want to reduce it, or show a different set of data, in REST, you will have to create 2 endpoints for the same purpose, with graphql, you just need to change your query and the issue is fixed.