postgresql - Is a foreign key mandatory to make a join query scale? -


i discuss simple postgres query , figure out if have got bit of theory behind postgres , dbs in general. here comes:

-- query 1 select posts.*, users.*           posts inner join users              on posts.user_id = users.id                       posts.user_id = :id          order posts.creation_time 

it involves 2 tables (users , posts) joined together. there index on (posts.creation_time, posts.user_id) speed search.

my understanding need foreign key associates posts.user_id users.id not enforce form of referencial integrity such, olso, , more importantly, speed on posts.user_id = users.id bit of query.

am right in saying so?

now conside version of query:

-- query 2 select posts.*, users.*           posts inner join users              on posts.user_id = users.id                       users.id = :id          order posts.creation_time 

assuming aforementioned foreign key (posts.creation_time, posts.user_id) exists, query scale, taking account variable in equation lives on other side of join?

my guess won't scale

thanks

check post:

postgres , indexes on foreign keys , primary keys

foreign keys necessary maintaining referential integrity of data. indexes helps make queries faster. creating foreign key not automatically create index.


Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -