One more question , I am more concern about database design also, e.g. Table designs and its relationship , data model like scalable
DB Design like , when we grow our features/Buisness DB should not be big barrier
But in cases where scale gets exponentially bigger at a rate at which you cannot possibly keep adding computing resources, breaking the best followed practices is the only way to get more performance without adding hardware resources at the same rate as increased scale, this at times includes but is not limited to, getting rid of foreign keys, coupling your app logic along with your db to to breakdown larger tables periodically/automatically/ runtime creation. This though requires skills across the entire stack and has it's fair share of downfalls and is never a recommended practice unless you know what you're doing and are okay with compromising on some of ACID properties. since maintaining something like this becomes unsustainable without contingencies.
Take all of this with some grain of salt as the topic is highly subjective.