Я объяснил в вопросе, какая информация является ненужной. Вопрос как раз и состоит в том, какие флажки и где отключить или включить. Вы баллы тут набираете что ли бессмысленными ответами? Лень вчитаться - лучше не отвечайте тогда.
Ну то есть, с большой долей вероятности, запрос этот в память не поместится? ) Я уже подумываю разбить базу на 43 таблицы (33 буквы алфавита и 10 цифр) и попробовать в них загрузить документы по первому символу. Потом базы по идее можно будет объединить.
Поле doc занимает до 200 байт в utf8, сейчас миллиард записей в текстовых файлах занимает около 150 гб. Скорость особо не имеет значения - даже неделя - допустимо. Главное, чтобы запрос в принципе выполнился и не вывалился из-за недостатка памяти.
Спасибо за ответ! Сколько по времени займет такой запрос при 1 мдрд записей в таблице? Сколько оперативки должно быть, чтобы не нарваться на её недостаток?
Написать парсер CSV-файлов нетрудно. Труднее сделать так, чтобы этот парсер прошелся по миллиарду строк, вычислил одинаковые и просуммировал данные по ним. Где хранить промежуточные результаты? В память они не поместятся (файлы занимают около 150 гб), поэтому придется делать это на жестком диске. Вот и интересуюсь готовыми решениями - возможно, до меня кто-то сталкивался с таким объемом данных и подскажет, как это сделать за минимальное время.
Представьте даже просто добавление в SQL-базу - нужно для каждого документа из 1 млрд сделать SELECT для того, чтобы узнать, есть он в базе или нет и, если есть, то просуммировать данные. 1 млрд SELECT'ов будут делаться вечность, причем чем больше база, тем дольше будет выполняться каждый SELECT.