DatsunBing
DatsunBing

Reputation: 9076

SQL Performance Penalty with Table Self Joins

When doing a select query, how does the performance of a table self-join compare with a join between two different tables? For example, if tableA and tableB are exact duplicates (both structure and data), would it be preferable to:

select ... from tableA a inner join tableA b..., or

select ... from tableA a inner join tableB b...

Perhaps its not a straightforward answer, in which case, are there any references on this topic?

I am using MySql.

Thanks!

Upvotes: 1

Views: 351

Answers (1)

mvp
mvp

Reputation: 116167

Assuming that table B is exact copy of table A, and that all necessary indexes are created, self-join of table A should be a bit faster than join of B with A simply because data from table A and its indexes can be reused from cache in order to perform self-join (this may also implicitly give more memory for self-join, and more rows will fit into working buffers).

If table B is not the same, then it is impossible to compare.

Upvotes: 2

Related Questions