PostgreSQL’s architecture is process-based instead of thread-based. PostgreSQL launches a process “postmaster” on startup and after that spans a new process whenever a new client connects to PostgreSQL. Before version 10 there was no parallelism in a single connection. It is true that multiple queries from a different client can have parallelism because of process architecture, but a single query runs serially and did not have parallelism. This is a huge limitation because a single query cannot utilize the multi-core. PostgreSQL introduced parallelism in version 9.6. Parallelism in a sense where a single process can have multiple threads to query the system and utilize the multicore in a system. I will discuss all the parallel scans options which are in PostgreSQL with the benchmark of these scans.