2009-07-03 4 views
4

Я работаю с базой данных в миллион строк, используя python для синтаксического анализа документов и заполнения таблицы терминами. Операторы вставки работают нормально, но инструкции обновления требуют очень много времени, размер таблицы растет.Операция UPDATE vs INSERT в PostgreSQL

Было бы здорово, если бы кто-то мог объяснить это явление, а также сказать, есть ли более быстрый способ делать обновления.

Спасибо, Arnav

+1

Пожалуйста, зайдите в psql и в таблицу \ d на стол, и опубликуйте эту информацию и инструкцию SQL, которые вы используете для обновления таблицы. –

ответ

6

Похоже, у вас есть проблемы индексации. Всякий раз, когда я слышу о проблемах, ухудшающихся по мере роста размера таблицы, меня заставляет задуматься, выполняете ли вы сканирование таблицы всякий раз, когда вы взаимодействуете со столом.

Проверьте, есть ли у вас первичный ключ и значащие индексы на этой таблице. Посмотрите на предложение WHERE, которое у вас есть на этом UPDATE, и убедитесь, что есть индекс в этих столбцах, чтобы как можно быстрее найти эту запись.

UPDATE: Напишите запрос SELECT, используя предложение WHERE, которое вы используете для ОБНОВЛЕНИЯ, и спросите механизм базы данных EXPLAIN PLAN. Если вы увидите TABLE SCAN, вы узнаете, что делать.

+0

также проверяет производительность при выборе тех же данных, что и UPDATing (с теми же предложениями WHERE и т. Д.) –

+2

Еще лучше: начать; объяснить аналитическое обновление ....; откатить; –

Смежные вопросы