Top 20 PostgreSQL Interview Questions and Answers

Top 20 PostgreSQL Interview Questions and Answers Work through these 20 questions out loud. Open any question for the full model answer, the trap to avoid, and the follow-up a panel usually asks.

  1. What did text blocks change in JDK 15, and where do they still go wrong in production?

    I use text blocks for SQL, JSON fixtures, and HTML snippets in tests so the source matches the payload. I keep the closing """ at the column I want as the left edge. For JSON I...

    Full answer

  2. What are sequenced collections in JDK 21, and which calls replace fragile index access?

    I reach for getFirst/getLast on lists and deques instead of magic indexes. For a recent-activity map I use LinkedHashMap as a SequencedMap and pollFirstEntry to evict oldest....

    Full answer

  3. What is the difference between ArrayList and LinkedList?

    ArrayList: dynamic array, great for get(i) and iteration, amortized append. LinkedList: node chain, costly random access, only wins for frequent insert/remove in middle with...

    Full answer

  4. How does @Transactional work?

    Spring creates a proxy around @Transactional beans. Calling createOrder() from another bean starts a transaction on the thread-bound EntityManager; commit on success, rollback...

    Full answer

  5. How do you test Spring Boot applications?

    Unit test services with Mockito — no Spring. @WebMvcTest + MockMvc for controller contract. @DataJpaTest for repository queries. @SpringBootTest + Testcontainers for critical...

    Full answer

  6. What are text blocks and how do they improve Java code?

    String query = """ SELECT u.id, u.name FROM users u WHERE u.active = true """; — readable without \n concatenation. Use formatted for parameters carefully — prefer...

    Full answer

  7. How do Spring application events work with @EventListener?

    OrderService publishes OrderCreatedEvent after save. EmailListener @EventListener sends confirmation. @TransactionalEventListener(AFTER_COMMIT) prevents email on rolled-back...

    Full answer

  8. When use @Query native SQL vs JPQL in Spring Data JPA?

    JPQL for standard entity fetches and portable logic. Native for PostgreSQL-specific jsonb queries, recursive CTEs, or performance-tuned index hints after EXPLAIN. Interface...

    Full answer

  9. How do Flyway/Liquibase integrate with Spring Boot JPA?

    Prod: spring.jpa.hibernate.ddl-auto=validate, Flyway V1__init.sql through Vn. CI: @Testcontainers PostgreSQL + Flyway migrate + integration tests. Never rename column without...

    Full answer

  10. Best practices for Spring Data pagination with Pageable?

    Controller: @PageableDefault(size=20, sort="createdAt", direction=DESC) Pageable p. Cap size at 100. Admin reports: keyset pagination on id > lastId for deep pages — OFFSET...

    Full answer

  11. Saga pattern — choreography vs orchestration?

    Order saga: reserve inventory → charge payment → ship. Failure at payment triggers release inventory compensation. Orchestration clearer for complex flows with visibility....

    Full answer

  12. Explain the transactional outbox pattern.

    OrderService @Transactional saves Order and OutboxEvent(type=ORDER_CREATED, payload=json). OutboxProcessor @Scheduled polls FOR UPDATE SKIP LOCKED, sends to Kafka, updates...

    Full answer

  13. Database sharding strategies for high-scale Java services?

    Shard by tenant_id mod 32 — RoutingDataSource lookup. User-scoped queries single shard. Global admin reports from CQRS read replica or Elasticsearch. Plan shard key early —...

    Full answer

  14. A REST API is slow only in production, not locally. How do you debug it?

    Enable Micrometer timers and Hibernate statistics or datasource-proxy in staging with prod-like data. Check Hikari `connections-active`, JVM GC pauses, and Feign/RestClient...

    Full answer

  15. A database connection pool is getting exhausted. How do you identify and solve it?

    Enable `spring.datasource.hikari.leak-detection-threshold`. Watch `hikaricp.connections.active` and threads blocked waiting. Fix leaks with try-with-resources; avoid long...

    Full answer

  16. What happens if @Transactional fails midway? How do you verify rollback?

    Default: runtime exception marks rollback-only; transaction commits nothing on exit. ```java @Transactional(rollbackFor = Exception.class) public void placeOrder(Order o) {...

    Full answer

  17. How do you test production-like behavior locally?

    Local H2 ≠ prod Postgres. Use Testcontainers for integration tests. ```java @Testcontainers @SpringBootTest class OrderApiIT { @Container static PostgreSQLContainer<?> db = new...

    Full answer

  18. Database is healthy but app shows connection timeout. Why?

    DB healthy from admin console but app waits for free connection. Check Hikari pending threads. ```yaml spring.datasource.hikari.maximum-pool-size: 10...

    Full answer

  19. How does React reconciliation work, and when does a component remount instead of update?

    Reconciliation is identity-based: type + key. Same button in the same slot updates. Swap <Input> for <Textarea>, or change key from "email" to "phone", and React remounts —...

    Full answer

  20. Why are index keys dangerous in a sortable or filterable list?

    If I sort a todo list keyed by index, the checked box stays on row 0 even though a different todo moved there. I key by todo.id. Index keys are OK only for static lists that...

    Full answer

PostgreSQL Interview Questions and Answers · Top 50 PostgreSQL Interview Questions and Answers (2026 Edition) · Top 40 PostgreSQL Interview Questions | Must-Prepare before interview. · PostgreSQL Interview Questions Every Fresher Must Know

All interview question lists · Interview guides · Home · Support the platform