Я пользователь R, и я часто обнаруживаю, что мне нужно написать функции, которые требуют подмножества больших наборов данных (10 миллионов миллионов строк). Когда я применяю такие функции по большому числу наблюдений, он может занять много времени, если я не буду осторожен в том, как я его реализую.
Для этого я иногда использовал пакет data.table, и это обеспечивает гораздо более высокую скорость, чем подмножество с использованием фреймов данных. Недавно я начал экспериментировать с пакетами, такими как RMySQL, нажав некоторые таблицы в mysql и используя пакет для запуска запросов sql и возврата результатов.
Я нашел смешанные улучшения производительности. Для меньших наборов данных (в миллионах) кажется, что загрузка данных в таблицу data.table и установка правильных клавиш делает более быстрое подмножество. Для более крупных наборов данных (от 10 до 100 миллионов) появляется запрос на отправку запроса на mysql быстрее.
Интересно, имеет ли кто-нибудь представление о том, какой метод должен быстрее возвращать простые запросы подмножества или агрегации и зависит ли это от размера данных? Я понимаю, что установка ключей в data.table несколько похожа на создание индекса, но у меня нет гораздо большей интуиции.