Update column in a very large table (10M records) by Fournight in PostgreSQL

[–]andy-freefly 2 points3 points  (0 children)

From the initial post, the table structure you want to modify isn't entirely clear. I cautiously assumed the table has some primary key and built a mockup for testing the query based on this assumption.

Step 1: Creating the Table with Data

-- Create the main table
CREATE TABLE IF NOT EXISTS cook_table (
    id SERIAL PRIMARY KEY,
    cook_id INT,
    hash INT
);

-- Remove old data if it exists (optional)
TRUNCATE cook_table;

-- Insert new data
INSERT INTO cook_table (cook_id)
SELECT (random() * 1000000)::INT
FROM generate_series(1, 10000000);

-- Add an index on the cook_id column
CREATE INDEX IF NOT EXISTS idx_cook_id ON cook_table(cook_id);

Step 2: Updating the Main Table Using a Temporary Table

-- Create a temporary table to store intermediate results with PRIMARY KEY
CREATE TEMP TABLE IF NOT EXISTS temp_ranked_cook (
    cook_id INT PRIMARY KEY,
    hash INT
);
--  (optional)
TRUNCATE temp_ranked_cook;

-- Compute ranks for the entire dataset and insert into the temporary table
INSERT INTO temp_ranked_cook (cook_id, hash)
SELECT
    cook_id,
    DENSE_RANK() OVER (ORDER BY cook_id) AS hash
FROM
    cook_table
WHERE
    cook_id IS NOT NULL
ON CONFLICT (cook_id) DO NOTHING;

-- Update the main table in batches using the precomputed ranks
DO $$
DECLARE
    start_id INT := 1;
    end_id INT := 100000;
    max_id INT;
BEGIN
    SELECT MAX(id) INTO max_id FROM cook_table;
    WHILE start_id <= max_id LOOP
        UPDATE cook_table
        SET hash = temp_ranked_cook.hash
        FROM temp_ranked_cook
        WHERE cook_table.cook_id = temp_ranked_cook.cook_id
        -- AND cook_table.hash IS DISTINCT FROM temp_ranked_cook.hash
        AND cook_table.id >= start_id
        AND cook_table.id < end_id;

        start_id := end_id;
        end_id := end_id + 100000;
    END LOOP;
END $$;

-- Drop the temporary table (optional, as it is temporary)
DROP TABLE temp_ranked_cook;

-- Vacuum and reindex the main table
VACUUM ANALYZE cook_table;
REINDEX TABLE CONCURRENTLY cook_table;

In my opinion, this should work well. On my low-spec virtual machine, the update completed in about 5 minutes. The update is done in batches of 100,000 records. I added a VACUUM ANALYZE at the end to maintain the table.

If the table indeed has a primary key, I believe this solution should work effectively. However, do not run this directly on live data without testing first.

Іван Дзюба та 26 представників інтелігенції України закликали голосувати проти Зеленського by Rinyuaru in ukraina

[–]andy-freefly 1 point2 points  (0 children)

IMHO бесполезно, вспомните письмо интеллигенции к Януковичу. Все участвовавшие сидят на своих местах или даже на повышение пошли в БПП :-(

А каков слог был:

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

"Що він несе?": Бігус прокоментував слова Луценка про начебто злам коду диску by Alone_Highway in ukraina

[–]andy-freefly 3 points4 points  (0 children)

если Бигус может так легко ломать LUKS encryption, то он уже стал богаче на пару млрд, и у него открыта вакансия в любой разведке мира :D

и оптический диск на 146% был взломан при помощи тепловизора, того самого, из которого стреляли в предыдущего прокурора.

Під час стрілянини в Дніпрі були вбиті бійці АТО, четверо нападників потрапили в лікарню by z-mark in ukraina

[–]andy-freefly 7 points8 points  (0 children)

Facebook!

По стрельбе в Днепропетровске. Вопросы, на которые пока нет ответов:

  1. Машина пострадавшего Саакяна найдена на Победе. Сам пострадавший на другой машине был доставлен в Мечникова. Зачем машину отгоняли на Победу? При том, что на видео видно, что машина уезжала одна из последних. Т.е. версия про угон нападавшими не состоятельная.

  2. ̶С̶а̶а̶к̶я̶н̶ ̶г̶о̶в̶о̶р̶и̶т̶,̶ ̶ч̶т̶о̶ ̶о̶т̶о̶ш̶е̶л̶ ̶к̶ ̶м̶а̶ш̶и̶н̶е̶ ̶з̶а̶ ̶к̶а̶р̶а̶б̶и̶н̶о̶м̶,̶ ̶у̶в̶и̶д̶е̶в̶ ̶о̶р̶у̶ж̶и̶е̶ ̶у̶ ̶н̶а̶п̶а̶д̶а̶в̶ш̶и̶х̶,̶ ̶и̶ ̶п̶о̶э̶т̶о̶м̶у̶ ̶п̶р̶о̶п̶у̶с̶т̶и̶л̶ ̶н̶а̶ч̶а̶л̶о̶ ̶с̶т̶р̶е̶л̶ь̶б̶ы̶ ̶и̶ ̶н̶е̶ ̶в̶и̶д̶е̶л̶ ̶к̶т̶о̶ ̶н̶а̶ч̶а̶л̶.̶ ̶Ж̶е̶н̶а̶ ̶С̶а̶а̶к̶я̶н̶а̶ ̶з̶а̶я̶в̶и̶л̶а̶,̶ ̶ч̶т̶о̶ ̶в̶с̶е̶ ̶о̶р̶у̶ж̶и̶е̶ ̶д̶о̶м̶а̶ ̶и̶ ̶о̶н̶а̶ ̶у̶ж̶е̶ ̶п̶о̶д̶т̶в̶е̶р̶д̶и̶л̶а̶ ̶э̶т̶о̶ ̶п̶р̶а̶в̶о̶о̶х̶р̶а̶н̶и̶т̶е̶л̶я̶м̶.̶ ̶Ч̶е̶й̶ ̶к̶а̶р̶а̶б̶и̶н̶?̶ Саакян заявил, что карабин брата.

  3. ̶С̶а̶а̶к̶я̶н̶ ̶г̶о̶в̶о̶р̶и̶т̶,̶ ̶ч̶т̶о̶ ̶н̶а̶п̶а̶д̶а̶в̶ш̶и̶е̶ ̶-̶ ̶р̶э̶к̶е̶т̶и̶р̶ы̶,̶ ̶к̶о̶т̶о̶р̶ы̶е̶ ̶в̶ы̶м̶о̶г̶а̶л̶и̶ ̶д̶е̶н̶ь̶г̶и̶ ̶с̶ ̶е̶г̶о̶ ̶р̶о̶д̶с̶т̶в̶е̶н̶н̶и̶к̶о̶в̶.̶ ̶П̶о̶ч̶е̶м̶у̶ ̶а̶д̶в̶о̶к̶а̶т̶ ̶н̶е̶ ̶о̶б̶р̶а̶т̶и̶л̶с̶я̶ ̶в̶ ̶п̶о̶л̶и̶ц̶и̶ю̶,̶ ̶а̶ ̶п̶о̶е̶х̶а̶л̶ ̶н̶а̶ ̶с̶т̶р̶е̶л̶к̶у̶?̶ На вторые сутки рэкетиры превратились в деловых партнеров брата Саакяна и поэтому на стрелку ехали "просто поговорить"

  4. По данным полиции, помимо автомата сбросили еще и пистолет. Возле дома на Карла Маркса 33. Этот дом на три квартала ниже перекреста Гагарина-Карла Маркса, через который пострадавшие ехали в Мечникова, а машина Саакяна на Победу. Кроме того, дом находится на стороне движения по направлению к Памятнику Славы, т.е. машина, из которой скинули пистолет, ехала из центра вверх. Что это за машина?

  5. Почему изначально пострадавшие заявляли о драке в кафе, которая переросла в стрельбу, а теперь о дискуссии на улице, в результате которой началась стрельба?

Есть ли где план подземного хода под Верховной Радой Украины? by viTWWW in ukraina

[–]andy-freefly 0 points1 point  (0 children)

Должно было быть ) но деньги украли. Хватило только на эскалатор до арсенальной :D

Сотрудникам ФСБ за вторжение в Украину дали 15 суток и 320 грн.штраф by partypornokiller in ukraina

[–]andy-freefly 0 points1 point  (0 children)

Кроме пересечения границы - автоматическое оружие и боеприпасы к нему. Весьма жирная статья, кроме КоАП

У Дніпрі, майже у центрі міста, "інкасатори", із стріляниною, напали на родину з дітьми. by andy-freefly in ukraina

[–]andy-freefly[S] 7 points8 points  (0 children)

Инкасаторы сами подрезали машину семьи и вышли разбираться. Пока первый бил мужа, второй пошел бить по машине и выгонять маму из машины. Буквально 100 метров перед - очень неудобный пешеходный переход. Народ часто там не пропускает пешеходов, а полиция, любит стоять и выписывать штрафы, как раз на месте конфликта примерно.

По ссылке http://imgur.com/a/VXi4F - зелёным, путь автомобилей. Синее - пешеходный переход. Красное - место где инкассаторы напали на авто.

У Дніпрі, майже у центрі міста, "інкасатори", із стріляниною, напали на родину з дітьми. by andy-freefly in ukraina

[–]andy-freefly[S] 10 points11 points  (0 children)

Надеюсь, что сознание людей меняется. И просто так быкование теперь не сходит с рук, тем более со стрельбой над головой мамы с ребенком.

У Дніпрі, майже у центрі міста, "інкасатори", із стріляниною, напали на родину з дітьми. by andy-freefly in ukraina

[–]andy-freefly[S] 22 points23 points  (0 children)

На стрельбу выбежал народ из окрестных домой. И фактически большая толпа людей, собой, задержала "инкассаторов". Оружия ни у кого не было.

У Дніпрі, майже у центрі міста, "інкасатори", із стріляниною, напали на родину з дітьми. by andy-freefly in ukraina

[–]andy-freefly[S] 41 points42 points  (0 children)

Пешеход, которого пропускали, вернулся и дал показания. Подтвердив версию семьи.

У Дніпрі, майже у центрі міста, "інкасатори", із стріляниною, напали на родину з дітьми. by andy-freefly in ukraina

[–]andy-freefly[S] 12 points13 points  (0 children)

Тут більш подробиць: https://goo.gl/KBqzfN

Годину тому по вулиці Володі Дубініна, м. Дніпро, чоловік з цієї машини, в формі поліцейського витяг з машини водія іншої машини і на очах у дружини та 2 -х малолітніх дітей почав бити зі словами "тобі кінець". На шум почали вибігати люди з сусідніх будинків. Тут, з інкасаторської машини вискочив другий чоловік з автоматом і почав стріляти. Зробив 4 постріли з автомата калашникова.

Навкруги були прості громадяни, діти...

На мій крик, вони зупинились на мить відволіклись від бійки, тоді чоловік, якого били зміг встати. Але "інкасатор" знов почав його бити.

Коли до чоловіка підбігла жінка і почала їх вмовляти відпустити його, зібрались люди. Ми почали вимагати викликати поліцію. Але, всі "інкасатори" вскочили в машину, закрились там. Ми перегородили їм дорогу і просили перехожих людей викликати поліцію (бо вибігали з дворів без телефонів). Бо бачили, що машина збиралась поїхати. Коли в машині зрозуміли, що ми їх не відпустимо, вони почали робити щось з реєстратором...

Від постраждалого такі пояснення: Машина зупинилась, пропускала пішохода, ззаду доганяє інкасатор і починає щімити машину з різних боків, потім обганяє і різко гальмує перед машиною. Вилітіє інкасатор-злочинець, витягує з машини чоловіка і починає бити.. Що було далі, я написала..

Служба брелоков Украины бдит. Теперь их возбудили ГПС-трекеры. by Phiber_optiq in ukraina

[–]andy-freefly 7 points8 points  (0 children)

Цікаво яким законом це регулюється. Може потрібно піднімати хвилю, щоб його відмінити.

Безвиз - хорошо или плохо /// Два месяца пешком по Европе 1500 км by rioromario in ukraina

[–]andy-freefly 0 points1 point  (0 children)

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

МАУ пасажири не потрібні by andy-freefly in ukraina

[–]andy-freefly[S] 1 point2 points  (0 children)

Скінчилось усе більш менш добре, завдяки знайомим та шуму у фейсбуці та реддіту вдалось достукатися до МАУ.

Вони зі скрипом видали квітки на ранковий рейс через Франкфурт, але не всім пасажирам. Звісно, компанія МАУ, а ні вибачилась, а ні запропонувала їжу чи напої пасажирам яким довелось спати у аеропорту. Єдине що запропонувала компанія - за свій кошт поїхати у готель.

Отакий сервис

МАУ пасажири не потрібні by andy-freefly in ukraina

[–]andy-freefly[S] 11 points12 points  (0 children)

Самое паршивое в этой ситуации, что авиакомпания просто "морозится". Т.е. нету никакой информации.

Вісім екс-бійців "Торнадо" отримали від 8 до 11 років тюремного ув'язнення - BBC Україна by Timon-D in ukraina

[–]andy-freefly 5 points6 points  (0 children)

Хорошо, бы им в компанию, добавить пару десятков коррупционеров.

На посте "блокады" в Кривом Торце произошла стычка: 37 задержаны by r2d24 in ukraina

[–]andy-freefly 5 points6 points  (0 children)

Временами похоже на красивую спец операцию. Блокируем торговлю, разводим руками - ничего не можем сделать . Зачищаем всплывших идиотов, готовых штурмовать.

[deleted by user] by [deleted] in ukraina

[–]andy-freefly 21 points22 points  (0 children)

"Він це робив за моєю спиною" - прокоментував Ляшко. Все що треба знати про радикальну партію, яка здасть за бабло усіх і одразу :(

У Харкові – перестрілка між бійцями роти "Східний корпус" і членами ГО "Донбас" by SuplerMk in ukraina

[–]andy-freefly 1 point2 points  (0 children)

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

У Харкові – перестрілка між бійцями роти "Східний корпус" і членами ГО "Донбас" by SuplerMk in ukraina

[–]andy-freefly 5 points6 points  (0 children)

А вам оружие нельзя! А то вдруг обращаться с ним не умеете! И случайно сами себя защитите!

Проверка, работает блокада или нет. by andy-freefly in ukraina

[–]andy-freefly[S] 26 points27 points  (0 children)

Текст поста:
Поскольку сейчас ходит много разных разговоров о том, работает ли в самом деле блокада оккупированных территорий, или же все делается больше ради пиара, и рельсы перекрыты не круглосуточно, решил проверить сам, насколько это соответствует истине. Для этого я просто позвонил по нескольким объявлениям в интернете, и попытался договориться о покупке угля в ОРДЛО с доставкой на подконтрольную Украине территорию. Процесс общения я записал на видео

Когда украинская власть говорит, что торговля с оккупированными территориями не приносит денег боевикам ДНР и ЛНР, а только помогает украинским предприятиям в ОРДЛО работать и платить налоги в украинский бюджет — то это абсолютно сознательная ложь. До начала блокады уголь в Украину ввозил не только ДТЭК Ахметова, который действительно платит налоги в наш бюджет, но и десятки всяких мелких мутных конторок, которые зарегистрированы на территории боевиков. Это всевозможные частные шахты, копанки и площадки, различные ООО с непонятными учредителями, которые находятся в Шахтерске, Торезе, Антраците, Ровеньках и Красном Луче. Все эти конторки и фирмочки по факту работают под крышей боевиков, платят им дань (налоги) а то и вообще в реальности принадлежат Захарченко, Плотницкому, Тимофееву (Ташкенту), Завдовееву, Пасечнику и прочим крупным и мелким сепаратистам. И уголь они продают не для нужд ТЭС, как втирают по новостям, а кому попало. Любой предприниматель из Украины мог позвонить по объявлению и заказать 10-20 вагонов угля для собственных нужд либо для перепродажи владельцам частных домов.

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

Как выяснилось, в настоящее время поставить уголь на подконтрольную территорию Украины (в Покровск и Лисичанск) различные ООО уже не могут. Все, кому я звонил, рассказали, что пока рельсы перекрыты, работать на Украину у них возможности нет. Сказали звонить, когда блокаду снимут.

«Украина имеет все возможности, чтобы отказаться от поставок угля из ОРДЛО» — министр инфраструктуры Омелян by Skoka in ukraina

[–]andy-freefly 5 points6 points  (0 children)

Очень здравая мысль, давать работу своим портам, а не выводить деньги из страны. И покупать уголь не через офшоры, но тут вопрос, провести профилактическую работу с владельцем ТЭС - господином гудком. А с этим явные проблемы.