diff --git a/core/modules/path_alias/src/AliasManager.php b/core/modules/path_alias/src/AliasManager.php
index 57eb23466..27b38fbbd 100644
--- a/core/modules/path_alias/src/AliasManager.php
+++ b/core/modules/path_alias/src/AliasManager.php
@@ -219,7 +219,13 @@ public function getAliasByPath($path, $langcode = NULL) {

       // Load paths from cache.
       if (!empty($this->preloadedPathLookups[$langcode])) {
-        $this->lookupMap[$langcode] = $this->pathAliasRepository->preloadPathAlias($this->preloadedPathLookups[$langcode], $langcode);
+        // Split it into chunks so we don't get massive slow query.
+        $chunks = array_chunk($this->preloadedPathLookups[$langcode], 100, TRUE);
+        foreach ($chunks as $chunk) {
+          $preloaded = $this->pathAliasRepository->preloadPathAlias($chunk, $langcode);
+          // Place preloaded chunk into lookupMap.
+          $this->lookupMap[$langcode] = array_merge($this->lookupMap[$langcode], $preloaded);
+        }
         // Keep a record of paths with no alias to avoid querying twice.
         $this->noAlias[$langcode] = array_flip(array_diff($this->preloadedPathLookups[$langcode], array_keys($this->lookupMap[$langcode])));
       }
