mirror of
https://github.com/supabase/supabase.git
synced 2026-10-12 12:55:06 +03:00
34 lines
1.5 KiB
Plaintext
34 lines
1.5 KiB
Plaintext
import Layout from '~/layouts/DefaultGuideLayout'
|
|
|
|
export const meta = {
|
|
id: 'timeouts',
|
|
title: 'Timeouts',
|
|
description: 'Timeouts and optimization',
|
|
}
|
|
|
|
By default, Supabase limits the maximum statement execution time to _3 seconds_ for users accessing the API using the anon key, and _8 seconds_ for authenticated users. Additionally, all users are subject to a global limit of _2 minutes_. This serves as a backstop against resource exhaustion due to either poorly written queries, or abusive usage.
|
|
|
|
### Changing the default timeout
|
|
|
|
The timeout values were picked as a reasonable default for the majority of use-cases, but can be modified using the [`alter role`](https://www.postgresql.org/docs/current/sql-alterrole.html) statement:
|
|
|
|
```sql
|
|
alter role authenticated set statement_timeout = '15s';
|
|
```
|
|
|
|
You can also update the statement timeout for a session:
|
|
|
|
```sql
|
|
set statement_timeout to 60000; -- 1 minute in milliseconds
|
|
```
|
|
|
|
### Statement Optimization
|
|
|
|
All Supabase projects come with the [`pg_stat_statements`](https://www.postgresql.org/docs/current/pgstatstatements.html) extension installed, which tracks planning and execution statistics for all statements executed against it. These statistics can be used in order to diagnose the performance of your project.
|
|
|
|
This data can further be used in conjunction with the [`explain`](https://www.postgresql.org/docs/current/using-explain.html) functionality of Postgres to optimize your usage.
|
|
|
|
export const Page = ({ children }) => <Layout meta={meta} children={children} />
|
|
|
|
export default Page
|