|
Отключение Индексов
|
|||
---|---|---|---|
#18+
Несоклько раз слышал понятие "отключение индексов и тригеров в таблице" Вопрос: как? На форуме поиском не нашел, в документации пока тоже. PostgreSQL 8.2. Как временно отключить индексы в таблице (чтобы забить в нее кучу данных через INSERT), а потом вернуть их на место, кроме как удалить их и потом создать заново? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2008, 18:51 |
|
Отключение Индексов
|
|||
---|---|---|---|
#18+
Удалить и создать заново. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2008, 19:56 |
|
Отключение Индексов
|
|||
---|---|---|---|
#18+
Вообще такая фишка есть в некоторых СУБД. Индексы и констрейнты в них можно отключать и включать. Потом они конечно должны быть перестроены если данные в индексированных полях менялись (перестроение делается автоматически на уровне движка базы). Почему бы и в PostgreSQL такую штуку не сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2008, 09:41 |
|
Отключение Индексов
|
|||
---|---|---|---|
#18+
AndronВообще такая фишка есть в некоторых СУБД. Индексы и констрейнты в них можно отключать и включать. Потом они конечно должны быть перестроены если данные в индексированных полях менялись (перестроение делается автоматически на уровне движка базы). Почему бы и в PostgreSQL такую штуку не сделать? Так сделайте :) вышлите патч команде пг, если это будет востребовано, то думаю его включать в основную ветку. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2008, 10:11 |
|
Отключение Индексов
|
|||
---|---|---|---|
#18+
Кстати каким образом принимается решение о добавлении той или иной возможности в PostgreSQL ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2008, 12:42 |
|
Отключение Индексов
|
|||
---|---|---|---|
#18+
Таки придется просто удалять? Жаль, хотелось отключать автоматически перед заливкой данных в таблицу (более 1000 таблиц), придется писать умный код, который определяет все параметры индексов, удаляет их и потом восстанавливает. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2008, 13:10 |
|
Отключение Индексов
|
|||
---|---|---|---|
#18+
ZashibisТаки придется просто удалять? Жаль, хотелось отключать автоматически перед заливкой данных в таблицу (более 1000 таблиц), придется писать умный код, который определяет все параметры индексов, удаляет их и потом восстанавливает. Типа так (Pg8.3) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2008, 08:53 |
|
Отключение Индексов
|
|||
---|---|---|---|
#18+
Отключение индекса: Код: sql 1. 2. 3.
Включение индекса: Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2019, 13:07 |
|
Отключение Индексов
|
|||
---|---|---|---|
#18+
Monocle Отключение индекса: Код: sql 1. 2. 3.
Включение индекса: Код: sql 1. 2. 3.
всегда было интересно услышать мнение разработчиков или приближенных к ним, - насколько данный метод безопасен. Руки иногда чешутся в продакшн такое сделать. Но осторожность всегда берёт верх ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2019, 14:32 |
|
Отключение Индексов
|
|||
---|---|---|---|
#18+
gav21 Monocle Отключение индекса: Код: sql 1. 2. 3.
Включение индекса: Код: sql 1. 2. 3.
всегда было интересно услышать мнение разработчиков или приближенных к ним, - насколько данный метод безопасен. Руки иногда чешутся в продакшн такое сделать. Но осторожность всегда берёт верх Могу ошибаться, но вроде когда индекс инвалидный, он перестает обновляться. И после временного отключения требуется обязательная перестройка индекса. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2019, 15:23 |
|
Отключение Индексов
|
|||
---|---|---|---|
#18+
Синий Слон Могу ошибаться, но вроде когда индекс инвалидный, он перестает обновляться. И после временного отключения требуется обязательная перестройка индекса. Он перестает ИСПОЛЬЗОВАТЬСЯ для запросов но не обновляться. Так что выигрыша при insert от этого не получится а вот протестировать нужен ли индекс для чего то вообще и не ломается ли чего от его отсутствия - можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2019, 18:02 |
|
Отключение Индексов
|
|||
---|---|---|---|
#18+
А когда индекс начинает перестраиваться\обновляться, после завершения транзакции (commit) или уже во время вставки? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2019, 19:17 |
|
Отключение Индексов
|
|||
---|---|---|---|
#18+
Guzya А когда индекс начинает перестраиваться\обновляться, после завершения транзакции (commit) или уже во время вставки? Во время вставки-обновления сразу. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2019, 19:26 |
|
Отключение Индексов
|
|||
---|---|---|---|
#18+
Синий Слон Могу ошибаться, но вроде когда индекс инвалидный, он перестает обновляться. Это смотря какой именно из флагов сбрасывать, их несколько немного различающихся. indisvalid требует чтобы писатели индекс уже обновляли, но запросы не могли использовать для чтения. gav21 всегда было интересно услышать мнение разработчиков или приближенных к ним, - насколько данный метод безопасен. Любые прямые изменения системного каталога - только на свой риск, это не поддерживаемая операция и любые последующие фейерверки не являются багом и исправлению не подлежат. Уже поэтому не безопасен, только потому что это прямая модификация системного каталога. Хотел сослаться на письмо Тома, но не смог его найти. Проверять надо здесь: https://github.com/postgres/postgres/blob/REL_12_STABLE/src/backend/commands/indexcmds.c#L1362 Всё ли из того что делает create index concurrently начиная с фазы 3 (или даже с конца фазы два, найдите вызов index_set_state_flags с INDEX_CREATE_SET_READY) будет актуально для ручных манипуляций. Совсем криминала вроде как нет, если индекс был valid - значит validate_index полезного ничего найти не должен. Cache invalidation на индекс при update pg_index уйти должен, а вот инвалидации на табличку - нет, так что комментарий актуальным будет "existing sessions might fail to use the new index" ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2019, 19:47 |
|
Отключение Индексов
|
|||
---|---|---|---|
#18+
[quot Melkij#22021245] Синий Слон Проверять надо здесь: https://github.com/postgres/postgres/blob/REL_12_STABLE/src/backend/commands/indexcmds.c#L1362 Всё ли из того что делает create index concurrently начиная с фазы 3 (или даже с конца фазы два, найдите вызов index_set_state_flags с INDEX_CREATE_SET_READY) будет актуально для ручных манипуляций. Совсем криминала вроде как нет, если индекс был valid - значит validate_index полезного ничего найти не должен. Cache invalidation на индекс при update pg_index уйти должен, а вот инвалидации на табличку - нет, так что комментарий актуальным будет "existing sessions might fail to use the new index" Спасибо за разъяснение. Подожду когда появится alter index ix_name set disable из коробки :D ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 10:50 |
|
|
start [/forum/topic.php?fid=53&gotonew=1&tid=1994930]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
12ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 248ms |
total: | 408ms |
0 / 0 |