Performance Channel
Folgende Herausforderung. Ich betreibe 2 Accounts mit den identischen Kanaleinstellungen, auf dem gleichen Server. Konto A hat ca. 40% weniger Kontakte als Konto B.
Circle/Kanal
– Neu – Empfangen
Tag Auschließen
– 12 Begriffe
Sprachen
– language
= ‚un‘ OR language
= ‚de‘ OR language
= ‚en‘
Aufrufzeit Kanal mit Account A
Datenbank: 0.571/0, Netzwerk: 0, Darstellung: 0.07, Sitzung: 0, I/O: 0, Sonstiges: 0.16, Gesamt: 0.8
Class-Init: 0.011, Boot: 0.143, Init: 0.002, Inhalt: 0.627, Sonstiges: 0.013, Gesamt: 0.797
Aufrufzeit Kanal mit Account B
Datenbank: 7.949/0, Netzwerk: 0, Darstellung: 0.06, Sitzung: 0, I/O: 0, Sonstiges: 0.15, Gesamt: 8.16
Class-Init: 0.01, Boot: 0.15, Init: 0.002, Inhalt: 7.989, Sonstiges: 0.011, Gesamt: 8.162
Database Read:
Database::select (422), Timeline::getRawChannelItems (241), Timeline::getChannelItems (216), Network::content (236): 7.457
Log für Account B
2025-07-05 18:13:10 8.374 Timeline.php 422 getRawChannelItems /*Database::select (422), Timeline::getRawChannelItems (241), Timeline::getChannelItems (216), Network::content (236) */ SELECT `uri-id`, `owner-id`, `comments`, `activities`, `received` FROM `post-searchindex-user-view` WHERE (NOT `uri-id` IN (SELECT `uri-id` FROM `post-tag` INNER JOIN `tag` ON `tag`.`id` = `post-tag`.`tid` WHERE `post-tag`.`type` = 1 AND `name` IN ('xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx')) AND (`language` = 'un' OR `language` = 'de' OR `language` = 'en') AND `uid` = xxxx AND (NOT `restricted` OR EXISTS(SELECT `id` FROM `post-user` WHERE `uid` = xxxx AND `uri-id` = `post-searchindex-user-view`.`uri-id`)) AND NOT EXISTS(SELECT `cid` FROM `user-contact` WHERE `uid` = xxxx AND `cid` = `post-searchindex-user-view`.`owner-id` AND (`ignored` OR `blocked` OR `collapsed` OR `is-blocked` OR `channel-frequency` = 1))) ORDER BY `received` DESC LIMIT 40
Die schlechte Performance auf Konto B war schleichend. Die Aufrufzeiten waren zuvor identisch zu Konto A. Erst brachen sie Zeitweise ein, normalisierten sich jedoch wieder. Nach Optimierung der DB Tabellen hat sich das jetzt leider dauerhaft verschlechtert und der Aufruf wird immer langsamer.
Die DB ist 145 GB groß.
Kennt jemand das Problem? Wie habt ihr es gelöst?
!Friendica Support