May. 16th, 2008

anspa: (Default)
select fierce_urgency( now() );
anspa: (Default)
В прикладной базе данных (mysql 5.0, myisam) есть некоторый класс больших таблиц, всего их к примеру 30 штук. Новые данные в эти таблицы загружаются почти каждый день. Записи сами по себе короткие, скажем до 50 байт. Количество записей в каждой из таблиц остается примерно одинаковым - от 1 миллиона до 20 миллионов (на самом деле число записей постепенно растет, скажем на 5-10% с каждой загрузкой новых данных, т.е. не очень существенно, а может и вообще не расти). Ежедневно новые данные поступают примерно в том же объеме что и количество старых записей, т.е. если в таблице А был 1 миллион то загружаем еще 1 миллион каждый день. Но затем нужно удалить все дубликаты записей по некоему составному ключу, т.е. 90% старых записей "перетерлись" новыми, в таблице должны остаться 10% старых записей плюс новые записи.
реад море )
Вопрос конечно же - можно ли сделать этот процесс оптимальнее и как (не забываем что хотелось бы обрабатывать таблиц по 5 одновременно и не слишком перегружать сервер базы данных).

Посмотрел вариант с созданием временной таблицы.. Гнусно как-то.

Profile

anspa: (Default)
anspa

December 2016

S M T W T F S
    123
45678910
11121314151617
18192021 222324
25 262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 30th, 2025 02:20 am
Powered by Dreamwidth Studios