Skip to content

Commit 34600c7

Browse files
committed
Move query outside the loop and reduce chunk size to 1000
This involved changing CacheQueryBuilder\whereParentIn to take a parameter name, renaming the function accordingly. Signed-off-by: Sijmen Schoon <me@sijmenschoon.nl>
1 parent c959bf2 commit 34600c7

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

lib/private/Files/Cache/Cache.php

+12-10
Original file line numberDiff line numberDiff line change
@@ -587,11 +587,12 @@ private function removeChildren(ICacheEntry $entry) {
587587
return $cacheEntry->getId();
588588
}, $children);
589589

590-
$childIdChunks = array_chunk($childIds, 2048);
591-
foreach ($childIdChunks as $childIdChunk) {
592-
$query = $this->getQueryBuilder();
593-
$query->delete('filecache_extended')
594-
->where($query->expr()->in('fileid', $query->createNamedParameter($childIdChunk, IQueryBuilder::PARAM_INT_ARRAY)));
590+
$query = $this->getQueryBuilder();
591+
$query->delete('filecache_extended')
592+
->where($query->expr()->in('fileid', $query->createParameter('childIds')));
593+
594+
foreach (array_chunk($childIds, 1000) as $childIdChunk) {
595+
$query->setParameter('childIds', $childIdChunk, IQueryBuilder::PARAM_INT_ARRAY);
595596
$query->execute();
596597
}
597598

@@ -605,11 +606,12 @@ private function removeChildren(ICacheEntry $entry) {
605606
}
606607
}
607608

608-
$parentIdChunks = array_chunk($parentIds, 2048);
609-
foreach ($parentIdChunks as $parentIdChunk) {
610-
$query = $this->getQueryBuilder();
611-
$query->delete('filecache')
612-
->whereParentIn($parentIdChunk);
609+
$query = $this->getQueryBuilder();
610+
$query->delete('filecache')
611+
->whereParentInParameter('parentIds');
612+
613+
foreach (array_chunk($parentIds, 1000) as $parentIdChunk) {
614+
$query->setParameter('parentIds', $parentIdChunk, IQueryBuilder::PARAM_INT_ARRAY);
613615
$query->execute();
614616
}
615617
}

lib/private/Files/Cache/CacheQueryBuilder.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -91,15 +91,15 @@ public function whereParent(int $parent) {
9191
return $this;
9292
}
9393

94-
public function whereParentIn(array $parents) {
94+
public function whereParentInParameter(string $parameter) {
9595
$alias = $this->alias;
9696
if ($alias) {
9797
$alias .= '.';
9898
} else {
9999
$alias = '';
100100
}
101101

102-
$this->andWhere($this->expr()->in("{$alias}parent", $this->createNamedParameter($parents, IQueryBuilder::PARAM_INT_ARRAY)));
102+
$this->andWhere($this->expr()->in("{$alias}parent", $this->createParameter($parameter)));
103103

104104
return $this;
105105
}

0 commit comments

Comments
 (0)