The premise of a system design interview is ridiculously broad. You could spend half an hour talking about how to scale a system or design at a very high level; or it could be an excuse to get you to mock-up an API or to talk about some useful algorithm. You can and should expect to write code, but then again maybe you won't have to. It's a lucky dip question.
There are books which are tangentially useful, eg Designing Data Intensive Applications or Site Reliability Engineering. Even if you're not going for SRE, it's good to understand the problems that are involved with high availability.
Having a good overview of something like Code Complete is useful, if only because it has generic advice for designing large programs.
For case studies I don't think books are any good. Watch conference talks and read the company dev blogs.
There are books which are tangentially useful, eg Designing Data Intensive Applications or Site Reliability Engineering. Even if you're not going for SRE, it's good to understand the problems that are involved with high availability.
Having a good overview of something like Code Complete is useful, if only because it has generic advice for designing large programs.
For case studies I don't think books are any good. Watch conference talks and read the company dev blogs.