aneira mais rápida de subconjunto - data.table vs. MySQL

Eu sou um usuário R e frequentemente acho que preciso escrever funções que exijam subconjunto de grandes conjuntos de dados (10s de milhões de linhas). Quando aplico essas funções em um grande número de observações, pode demorar muito tempo se não tomar cuidado com a maneira de implementá-la

Para fazer isso, às vezes usei o pacote data.table, e isso fornece velocidades muito mais rápidas do que o subconjunto usando quadros de dados. Recentemente, comecei a experimentar pacotes como o RMySQL, empurrando algumas tabelas para o mysql e usando o pacote para executar consultas sql e retornar resultado

Encontrei melhorias de desempenho mistas. Para conjuntos de dados menores (milhões), parece que o carregamento dos dados em uma tabela data.t e a configuração das teclas corretas resultam em subconjuntos mais rápidos. Para conjuntos de dados maiores (10s a 100s de milhões), parece que o envio de uma consulta ao mysql se move mais rapidament

Queria saber se alguém tem alguma ideia de qual técnica deve retornar consultas simples de subconjunto ou agregação mais rapidamente e se isso deve ou não depender do tamanho dos dados? Entendo que definir chaves no data.table é um pouco análogo à criação de um índice, mas não tenho muito mais intuição além diss

questionAnswers(2)

yourAnswerToTheQuestion