© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
SupabaseS
Supabase•4y ago•
11 replies
PeanutBuddha

How to optimize a simple join

I have table "assets":
CREATE TABLE assets (
  id TEXT PRIMARY KEY,
  title TEXT
)
CREATE TABLE assets (
  id TEXT PRIMARY KEY,
  title TEXT
)

I have table "assetmeta":
CREATE TABLE assetmeta (
  id TEXT PRIMARY KEY,
  accessstatus TEXT
)
CREATE TABLE assetmeta (
  id TEXT PRIMARY KEY,
  accessstatus TEXT
)

I have a view "getpublicassets":
CREATE VIEW getpublicassets AS
SELECT * FROM assets LEFT JOIN assetsmeta ON assetsmeta.id = assets.id
WHERE accessstatus = 'public'
CREATE VIEW getpublicassets AS
SELECT * FROM assets LEFT JOIN assetsmeta ON assetsmeta.id = assets.id
WHERE accessstatus = 'public'

Then I run it:
SELECT * FROM getpublicassets LIMIT 100
SELECT * FROM getpublicassets LIMIT 100

When I EXPLAIN ANALYZE it says it is performing a loop for each row and it's slow. What can I do to optimize my view?
Tried adding an index:
CREATE INDEX asset_public ON assetmeta (
    accessstatus ASC
 );
CREATE INDEX asset_public ON assetmeta (
    accessstatus ASC
 );

Doesnt seem to matter
unknown.png
Supabase banner
SupabaseJoin
Supabase gives you the tools, documentation, and community that makes managing databases, authentication, and backend infrastructure a lot less overwhelming.
45,816Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements

Similar Threads

Simple RLS Policy with Join
SupabaseSSupabase / help-and-questions
4y ago
How to optimize full text search
SupabaseSSupabase / help-and-questions
8mo ago
How do I write a simple join for these tables in v2
SupabaseSSupabase / help-and-questions
4y ago
Understanding how to create a join in JavaScript
SupabaseSSupabase / help-and-questions
4y ago