How load only some node fields?
I did some profiling with a query of 100,000 nodes, fetching the field myfield from all nodes of type mybundle.

Good: A dynamic query with addField()

$connection = \Drupal::database();
$query = $connection-&gt;select('node__field_myfield');
$query-&gt;condition('node__field_myfield.bundle', 'mybundle');
$query-&gt;addField('node__field_myfield', 'field_myfield_value');
$result = $query-&gt;execute();
$values = $result-&gt;fetchAll();


This runs in about 250 milliseconds.

Bad: An entity query with loadMultiple()

$query = \Drupal::entityQuery('node');
$query-&gt;condition('type', 'mybundle');
$node_storage = \Drupal::entityTypeManager()-&gt;getStorage('node');
$values = [];
$nids = $query-&gt;execute();
$nodes = $node_storage-&gt;loadMultiple($nids);
foreach($nodes as $node) {
  $values[] = $node-&gt;get('field_myfield')-&gt;getValue();
}


This took 3 minutes after a few repeated attempts when the cache was fully built. After a cache rebuild, it took more than half an hour.