SQL (ie: relational) databases are designed for memory efficiency - they're from a time where memory was expensive. Their storage is oriented to store objects and their relations, with best practice oriented to storage in highly normalized forms, requiring CPU-intensive denormalization through joins at access-time.
NoSQL makes a different distinction - data is stored to be highly distributed across multiple partitions, as memory is cheap and access needs to be fast. This comes at a cost of consistency (preferring eventual, but strong consistency can be guaranteed with some limited throughput). To make use of the partition space effectively, NoSQL schema should be designed based around real-world data access patterns, rather than supporting theoretical data access that's best suited for SQL.