Jeśli dane mieszczą się w pamięci RAM, data.table jest szybsze. Jeśli podasz przykład, prawdopodobnie szybko stanie się oczywiste, że źle używasz data.table. Czy zapoznałeś się z „nakazami i zakazami” na wiki data.table ?
SQL ma dolną granicę, ponieważ jest magazynem wierszy. Jeśli dane mieszczą się w pamięci RAM (a 64-bitowy to całkiem sporo), to data.table jest szybsze nie tylko dlatego, że znajdują się w pamięci RAM, ale także dlatego, że kolumny są w pamięci ciągłe (minimalizacja pobierania stron z pamięci RAM do L2 dla operacji na kolumnach). Użyj data.table poprawnie i powinien być szybszy niż dolna granica SQL. Wyjaśniono to w FAQ 3.1. Jeśli widzisz wolniej z data.table, istnieje duże prawdopodobieństwo, że używasz data.table niepoprawnie (lub wystąpił błąd wydajności, który musimy naprawić). Dlatego po przeczytaniu wiki data.table opublikuj kilka testów.