[EMAIL PROTECTED] -> [email protected]  @ Thu, 17 May 2007 
15:48:27 +0400:

 >>  r> имхо: это потенциальные грабли и ловушка, по крайней мере для новичков

 r> Mikhail Gusarov пишет:
 >> Грабли будут всегда, если не понимать чётко postconditions любого
 >> запроса. Сказано order by - значит будет order by, и ничего больше
 >> не гарантируется: ни как эти order by соотносятся с другими
 >> запросами, и не будет ли этот order by стабильной сортировкой.

 r> Возможно.

 r> Надеюсь у разработчиков MySQL были весомые причины по разному
 r> использовать индекс в двух запросах:

 r> 1) select ... order by F1 limit N
 r> 2) delete ... order by F1 limit N

 r> прим: F1 - первое поле составного индекса

Скажем так, у них нет весомых причин непременно использовать его
одинаково.  А разным использование может быть, например, потому, что в
результате select они выдают все запрошенное (и значит, формируют ответ
перед выдачей - оно у них вроде бы делается именно так), а в результате
delete они удаляют, и ничего никуда не собирают.  Для разных операций
возможны разные обходы второго уровня индекса.

А вообще использовать order by ... limit в delete - решение
категорически непереносимое, и рекомендуется им не пользоваться без
крайней необходимости.  Стандартный (в смысле SQL-92) delete умеет
только where.

-- 
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: [EMAIL PROTECTED]

Курицца - не пицца. (Итальянская пословицца)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Ответить