Теоретический вопрос от начинающего SQLиста :)
От: SWayf  
Дата: 20.06.08 19:44
Оценка:
Теоретический.. и возможно глупый вопрос начинающего сильно не пинайте

Вообщем есть два запроса

SELECT *
FROM table1, table2
WHERE table1.id = table2.ref_id AND table2.name='Boris'

SELECT *
FROM table1
JOIN table2 ON table2.ref_id=table1.id
WHERE table2.name = 'Boris'

Вообщем понятно что оба запроса вернут одинаковый результат..
Второй запрос более предпочтительнее по теории...
Как я понял он предпочтительнее из-за вопросов производительности
И вопрос, собвственно в следующем.. в современных базах данных,
может сильно (принципиально) отличаться производительность этих запросов или
все-таки базы оптимизируют сами это безобразие?
Re: Теоретический вопрос от начинающего SQLиста :)
От: wellwell Австралия https://www.softperfect.com
Дата: 21.06.08 03:27
Оценка:
"SWayf" <42561@users.rsdn.ru> wrote in message news:2995253@news.rsdn.ru...
> И вопрос, собвственно в следующем.. в современных базах данных,
> может сильно (принципиально) отличаться производительность этих запросов или
> все-таки базы оптимизируют сами это безобразие?

В производительности разницы нет, сервер интерпретирует оба типа (implicit и explicit join) одинаково, однако более новый синтакис с JOIN ON более предпочтителен, т.к. повышается читаемость кода, кроме того, старый синтакс может не поддерживаться в более новых серверах. Короче, нет ни одной причины использовать неявный JOIN.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Теоретический вопрос от начинающего SQLиста :)
От: SWayf  
Дата: 21.06.08 10:14
Оценка:
Здравствуйте, wellwell, Вы писали:

W>"SWayf" <42561@users.rsdn.ru> wrote in message news:2995253@news.rsdn.ru...

>> И вопрос, собвственно в следующем.. в современных базах данных,
>> может сильно (принципиально) отличаться производительность этих запросов или
>> все-таки базы оптимизируют сами это безобразие?

W>В производительности разницы нет, сервер интерпретирует оба типа (implicit и explicit join) одинаково, однако более новый синтакис с JOIN ON более предпочтителен, т.к. повышается читаемость кода, кроме того, старый синтакс может не поддерживаться в более новых серверах. Короче, нет ни одной причины использовать неявный JOIN.


ясно.. спасибо
Re[2]: Теоретический вопрос от начинающего SQLиста :)
От: wildwind Россия  
Дата: 22.06.08 00:23
Оценка:
Здравствуйте, wellwell, Вы писали:

W>В производительности разницы нет, сервер интерпретирует оба типа (implicit и explicit join) одинаково, однако более новый синтакис с JOIN ON более предпочтителен, т.к. повышается читаемость кода, кроме того, старый синтакс может не поддерживаться в более новых серверах. Короче, нет ни одной причины использовать неявный JOIN.


Я бы не был столь категоричен, особенно касательно последней части.
Есть некоторые СУБД (не будем показывать пальцем), в которых [полная] поддержка ANSI синтаксиса появилась относительно недавно. Ну а как известно, где "новые" фичи, там и новые баги, некоторые из которых могут жить довольно долго.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.