|
Бесконечные циклы при модификации индексированных столбцов?
|
|||
---|---|---|---|
#18+
Читаю книгу Видениуса по MySQL. Затык возник на теме индексов . Во-первых, не объяснена суть модификации индексированных столбцов . Скажите, в каком порядке и как именно это происходит? Объясните, пожалуйста, почему в нижеприведенном примере возникает бесконечный цикл в старой версии MySQL? UPDATE iny_tbl SET key_col = key_col + 1 WHERE key_col > 0 ? Хоть убейте - не пойму. Может, я просто неправильно понимаю модификацию? Допустим, индексный столбец имеет вид: -2, -1, 0, 4, 6. Начинаем апдэйтить: -2 - пропускаем, -1, 0 - тоже. 4 "превращаем" в 5, затем модифицируем соответствующую "бывшей четверке" ячейку в таблице. То же делаем с "шестеркой"... Никаких проблем и бесконечных циклов. Затем проверяем, не нарушилась ли сортировка в индексном файле. Если - да, то сортируем каким-нить "пузырьком". Если ситуация - более сложная, т.е. запрос - таков, что после модификации индексного файла очередность в возрастающем порядке нарушится, то последующая сортировка "вернет все на место". Что я не так говорю? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2004, 14:19 |
|
|
start [/forum/search_topic.php?author=ZliyPes&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 749ms |
total: | 887ms |
0 / 0 |