Извините за очень общее название, но я постараюсь быть как можно более конкретным.
Я работаю над приложением для анализа текста. У меня есть большое количество пар ключ-значение в форме ((word, corpus) -> occurence_count) (все целые числа), которые я храню в нескольких словарях python (tuple-> int). Эти значения распределены по нескольким файлам на диске (я их мариновал). Чтобы разобраться в данных, мне нужно объединить эти словари. По сути, мне нужно найти способ найти все вхождения определенного ключа во всех словарях и сложить их, чтобы получить общее количество.
Если я загружаю более одного словаря за раз, у меня заканчивается память, из-за чего мне пришлось разбить их в первую очередь. Когда я попытался, я столкнулся с проблемами производительности. В настоящее время я пытаюсь сохранить значения в БД (mysql), обрабатывая несколько словарей одновременно, поскольку mysql обеспечивает блокировку на уровне строк, что является как хорошим (так как это означает, что я могу распараллелить эту операцию), так и плохим (так как он замедляется запросы на вставку)
Какие у меня есть варианты? Является ли хорошей идеей написать словарь, основанный частично на диске, чтобы я мог обрабатывать слова по одному? Со стратегией замены LRU? Есть ли что-то, что я совершенно не замечаю?
Спасибо!