Re: What executes faster?
От | Reinoud van Leeuwen |
---|---|
Тема | Re: What executes faster? |
Дата | |
Msg-id | 24970.194.109.0.126.1001929185.squirrel@webmail.xs4all.nl обсуждение исходный текст |
Ответ на | What executes faster? (Haller Christoph <ch@rodos.fzk.de>) |
Список | pgsql-hackers |
> [HACKERS] What executes faster? > Now that I've found the solution for my duplicate key problem, > I'm wondering what executes faster when I have to check for > duplicates. > 1. try to update > if no row affected -> do the insert > else done > 2. do a select > if row not found -> do the insert > else do the update > Another idea I'm thinking about: > I'm doing the check for duplicate key by myself now. > Aren't insert commands running faster, if I replace > an unique index by a not-unique index. I have solved an almost similar problem. I have a large table (about 8 milion rows) called radius and a table with updates and newlines called radiusupdate. The first thing I tried was 2 queries: update radius from radiusupdate where radius.pk = radiusupdate.pk insert into radius select * from radiusupdate RUwhere RU.pk not in (select pk from radius) But the second one is obviously not very fast. A "not in" never is... So I now do things just a little bit different. I added a field to the table radiusupdate called "newline". It is default set to true. Then I replace the second query by these two: update radiusupdate set newline = false from radius Rwhere radiusupdate.pk = radius.pk insert into radius select * from radiusupdate RUwhere newline = true This is a lot faster in my case.... Reinoud
В списке pgsql-hackers по дате отправления: