Когда лучше не использовать внутреннее соединение?

У меня есть две таблицы:

table1 (id, name, connte)
table2 (id, name, connte)

Они связаны через table1.connteи table2.connte. И каждый из них содержит по 100 записей.

Теперь, если я хочу удалить запись из таблицы 1 с id = 20 и соответствующие дочерние элементы в таблице 2, лучше ли сделать следующее:

   DELETE d1,d2 FROM table1 d1 INNER JOIN table2 d2 ON d1.connte= d2.connte WHERE d1.id = 20

или следующее:

  select connte from table1 where id = 20
  --Store connte in a variable say aabc--
  delete from table2 where connte = aabc   -> execute this first
  delete from table1 where id = 20    -> execute this second

Если есть только один родитель и один дочерний для записи, которую я хочу удалить (здесь table1.id = 20), то не дорого ли сделать внутреннее соединение для всей таблицы?

Я запускаю этот запрос из JAVA (т.е. JDBC), так что дороже (с точки зрения производительности) выполнять несколько запросов или внутреннее соединение для вышеупомянутого условия?

ПРИМЕЧАНИЕ. При условии отсутствия ссылочной целостности для таблиц. Итак, я не использую каскадное удаление.

6
задан Oleksi 5 June 2012 в 14:08
поделиться