How can you identify issues in a database query? How to interpret the query execution plan, how can you tell that it is using indexes or not? What algorithms do database indexes use? In addition to b-tree, what other algorithm is used by db indexes? What is the difference between hash based indexes and b-tree? When to use them? Trade-offs? If even after solving the issues with indexes, how can you improve the performance of the database? How would you solve concurrency issues with database transactions? How to use pessimistic lock? What are the isolation levels? What would be the best isolation level to solve the issue with money transfer coding exercise? What is exactly the isolation level repeatable read, serializable, read committed, and other questions related to the same topic...... How would you create partitions in a database (which approach would you use)? What are the tradeoffs of db partitions (sharding)? If even after sharding, you still have problems with performance, what would you do? Some questions about event sourcing, that I don't recall anymore.. What is CQRS, how to implement it? There were also some questions about availability like, if a write database is down, what would be the impacts if it is down for a long period of time? (Guess what the answer was? Because of locks in their upstream systems….) So, seems like they prefer pessimistic concurrency control and synchronized blocks.