|
|
|
Перестановка позиций местами
|
|||
|---|---|---|---|
|
#18+
Есть 6 тыс. записей. Нужно взять 231, 479, 877, 878, 1201 и 2745 записи и вставить их после 4741 записи. Каков наиболее выигрышный алгоритм решения подобной задачи? Интересует решение, которое будет работать на MySQL и PostgreSQL. пример принципа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Сохранение точных номеров не принципиально, потому что это чисто сортировочные ключи, а не идентификационные. Думал, что-то с помощью дат замутить, так до сих пор думаю. Может кто подскажет, где лучше всего искать информацию про подобные задачи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2009, 21:31 |
|
||
|
Перестановка позиций местами
|
|||
|---|---|---|---|
|
#18+
LumixЕсть 6 тыс. записей. Нужно взять 231, 479, 877, 878, 1201 и 2745 записи и вставить их после 4741 записи.Что значит после? Так меняй в одной транзакции Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2009, 22:02 |
|
||
|
Перестановка позиций местами
|
|||
|---|---|---|---|
|
#18+
LumixЕсть 6 тыс. записей. Нужно взять 231, 479, 877, 878, 1201 и 2745 записи и вставить их после 4741 записи. Каков наиболее выигрышный алгоритм решения подобной задачи? Интересует решение, которое будет работать на MySQL и PostgreSQL. пример принципа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Сохранение точных номеров не принципиально, потому что это чисто сортировочные ключи, а не идентификационные. Думал, что-то с помощью дат замутить, так до сих пор думаю. Может кто подскажет, где лучше всего искать информацию про подобные задачи?пятничное такое объяснение проблемы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2009, 22:22 |
|
||
|
Перестановка позиций местами
|
|||
|---|---|---|---|
|
#18+
Infernal V. RavenЧто значит после? "После" означает, что, например, сестра и дядя встали после папы. Метод, который вы предлагаете, поставит брата на место сестры, а собаку на место дяди. Это противоречит условию задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2009, 02:45 |
|
||
|
Перестановка позиций местами
|
|||
|---|---|---|---|
|
#18+
Nafпятничное такое объяснение проблемы Может так будет понятнее Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2009, 02:52 |
|
||
|
Перестановка позиций местами
|
|||
|---|---|---|---|
|
#18+
LumixМожет так будет понятнее Оно и с первого раза понятно было... Чего придираться стали... Другое дело оптимальность решения. А насколько часто будет выполняться такая операция? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2009, 10:22 |
|
||
|
Перестановка позиций местами
|
|||
|---|---|---|---|
|
#18+
krvsaА насколько часто будет выполняться такая операция? Даже не знаю, в чем измерить эту частоту. :) Ну, скажем, 3-4% запросов из всех запросов приложения будут именно этого характера. На каждые 10 тыс. запросов, 300-400 раз придется эту перестановку делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2009, 15:02 |
|
||
|
Перестановка позиций местами
|
|||
|---|---|---|---|
|
#18+
Lumix, Код: plaintext 1. 2. 3. 4. 5. 6. Что-нть типа этого? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2009, 16:04 |
|
||
|
Перестановка позиций местами
|
|||
|---|---|---|---|
|
#18+
LumixДаже не знаю, в чем измерить эту частоту. :) Как вариант в количествах штук в день и количествах людей это делающих. Если это делается редко и ограниченным количеством людей... Предложу такой способ... Сделать режим, который может "перенумировывать" записи БД через N. Например N=10 10 папа 20 мама 30 сестра ... Т.о. поместить "сестру" под "папу" не составит труда. Выполняется такое быстро, но не факт что между "папой"и "мамой" всегда будет "свободное" место... А так, обычный метод "пузырька" может помочь решить этот вопрос. Другое дело как его "обставить" в SQLях которые ты используешь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2009, 20:04 |
|
||
|
Перестановка позиций местами
|
|||
|---|---|---|---|
|
#18+
ПодпольщегLumix, Код: plaintext 1. 2. 3. 4. 5. 6. Что-нть типа этого? Правильно ли я понял, что вы предлагаете такую стратегию? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2009, 21:50 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36350311&tid=1542948]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
162ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 211ms |
| total: | 489ms |

| 0 / 0 |
