[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]