Python: Using explain

For debugging slow queries, you can get the Postgres EXPLAIN execution plan of a query using the explain() method. This works on any query, even for rpc() or writes.

Explain is not enabled by default as it can reveal sensitive information about your database. It's best to only enable this for testing environments but if you wish to enable it for production you can provide additional protection by using a pre-request function.

Follow the Performance Debugging Guide to enable the functionality on your project.

Parameters

Examples

Get the execution plan

response = supabase.table("countries").select("*").explain().execute()

Get the execution plan with analyze and verbose

response = (
    supabase.table("countries")
    .select("*")
    .explain(analyze=True, verbose=True)
    .execute()
)