# Instantiating Prisma Client (/docs/orm/v6/prisma-client/setup-and-configuration/instantiate-prisma-client)

Location: ORM > v6 > Prisma Client > Setup and Configuration > Instantiating Prisma Client

The following example demonstrates how to import and instantiate your [generated client](/orm/v6/prisma-client/setup-and-configuration/generating-prisma-client) from the [default path](/orm/v6/prisma-client/setup-and-configuration/generating-prisma-client#using-a-custom-output-path):

  

#### TypeScript

```ts
import { PrismaClient } from "../prisma/generated/client";

const prisma = new PrismaClient();
```

#### JavaScript

```js
const { PrismaClient } = require("../prisma/generated/client");

const prisma = new PrismaClient();
```

> [!NOTE]
> You can further customize `PrismaClient` with [constructor parameters](/orm/v6/reference/prisma-client-reference#prismaclient) — for example, set [logging levels](/orm/v6/prisma-client/observability-and-logging/logging), [transaction options](/orm/v6/prisma-client/queries/transactions#transaction-options) or customize [error formatting](/orm/v6/prisma-client/setup-and-configuration/error-formatting).

The number of PrismaClient instances matters [#the-number-of-prismaclient-instances-matters]

Your application should generally only create **one instance** of `PrismaClient`. How to achieve this depends on whether you are using Prisma ORM in a [long-running application](/orm/v6/prisma-client/setup-and-configuration/databases-connections#prismaclient-in-long-running-applications) or in a [serverless environment](/orm/v6/prisma-client/setup-and-configuration/databases-connections#prismaclient-in-serverless-environments) .

The reason for this is that each instance of `PrismaClient` manages a connection pool, which means that a large number of clients can **exhaust the database connection limit**. This applies to all database connectors.

If you use the **MongoDB connector**, connections are managed by the MongoDB driver connection pool. If you use a **relational database connector**, connections are managed by Prisma ORM's [connection pool](/orm/v6/prisma-client/setup-and-configuration/databases-connections/connection-pool). Each instance of `PrismaClient` creates its own pool.

1. Each client creates its own instance of the [query engine](/orm/v6/more/internals/engines).

2. Each query engine creates a [connection pool](/orm/v6/prisma-client/setup-and-configuration/databases-connections/connection-pool) with a default pool size of:
   * `num_physical_cpus * 2 + 1` for relational databases
   * [`100` for MongoDB](https://www.mongodb.com/docs/manual/reference/connection-string-options/#mongodb-urioption-urioption.maxPoolSize)

3. Too many connections may start to **slow down your database** and eventually lead to errors such as:

   ```
   Error in connector: Error querying the database: db error: FATAL: sorry, too many clients already
       at PrismaClientFetcher.request
   ```

## Related pages

- [`Configuring error formatting`](https://www.prisma.io/docs/orm/v6/prisma-client/setup-and-configuration/error-formatting): This page explains how to configure the formatting of errors when using Prisma Client.
- [`Custom model and field names`](https://www.prisma.io/docs/orm/v6/prisma-client/setup-and-configuration/custom-model-and-field-names): Learn how you can decouple the naming of Prisma models from database tables to improve the ergonomics of the generated Prisma Client API.
- [`Database connections`](https://www.prisma.io/docs/orm/v6/prisma-client/setup-and-configuration/databases-connections): Databases connections
- [`Database polyfills`](https://www.prisma.io/docs/orm/v6/prisma-client/setup-and-configuration/database-polyfills): Prisma Client provides features that are not achievable with relational databases. These features are referred to as "polyfills" and explained on this page.
- [`Generating Prisma Client`](https://www.prisma.io/docs/orm/v6/prisma-client/setup-and-configuration/generating-prisma-client): This page explains how to generate Prisma Client. It also provides additional context on the generated client, typical workflows and Node.js configuration.