Fix speed issues with the network page

This commit is contained in:
Michael Vogel 2020-07-10 00:22:26 +02:00
parent ced0effa2a
commit af6f6d4957
3 changed files with 22 additions and 10 deletions

View File

@ -168,10 +168,17 @@ class Item
$contact = DBA::selectFirst('contact', $fields, ['id' => $tagcid, 'uid' => $profile_uid]); $contact = DBA::selectFirst('contact', $fields, ['id' => $tagcid, 'uid' => $profile_uid]);
} }
// select someone by nick or attag in the current network // select someone by nick in the current network
if (!DBA::isResult($contact) && ($network != '')) { if (!DBA::isResult($contact) && ($network != '')) {
$condition = ["(`nick` = ? OR `attag` = ?) AND `network` = ? AND `uid` = ?", $condition = ["`nick` = ? AND `network` = ? AND `uid` = ?",
$name, $name, $network, $profile_uid]; $name, $network, $profile_uid];
$contact = DBA::selectFirst('contact', $fields, $condition);
}
// select someone by attag in the current network
if (!DBA::isResult($contact) && ($network != '')) {
$condition = ["`attag` = ? AND `network` = ? AND `uid` = ?",
$name, $network, $profile_uid];
$contact = DBA::selectFirst('contact', $fields, $condition); $contact = DBA::selectFirst('contact', $fields, $condition);
} }
@ -181,9 +188,15 @@ class Item
$contact = DBA::selectFirst('contact', $fields, $condition); $contact = DBA::selectFirst('contact', $fields, $condition);
} }
// select someone by nick or attag in any network // select someone by nick in any network
if (!DBA::isResult($contact)) { if (!DBA::isResult($contact)) {
$condition = ["(`nick` = ? OR `attag` = ?) AND `uid` = ?", $name, $name, $profile_uid]; $condition = ["`nick` = ? AND `uid` = ?", $name, $profile_uid];
$contact = DBA::selectFirst('contact', $fields, $condition);
}
// select someone by attag in any network
if (!DBA::isResult($contact)) {
$condition = ["`attag` = ? AND `uid` = ?", $name, $profile_uid];
$contact = DBA::selectFirst('contact', $fields, $condition); $contact = DBA::selectFirst('contact', $fields, $condition);
} }

View File

@ -1838,7 +1838,7 @@ class Item
if (!Tag::existsForPost($item['uri-id'])) { if (!Tag::existsForPost($item['uri-id'])) {
Tag::storeFromBody($item['uri-id'], $body); Tag::storeFromBody($item['uri-id'], $body);
} }
$ret = DBA::insert('item', $item); $ret = DBA::insert('item', $item);
// When the item was successfully stored we fetch the ID of the item. // When the item was successfully stored we fetch the ID of the item.
@ -2022,9 +2022,7 @@ class Item
} }
if (empty($fields)) { if (empty($fields)) {
// when there are no fields at all, just use the condition return;
// This is to ensure that we always store content.
$fields = $condition;
} }
DBA::update('item-content', $fields, $condition, true); DBA::update('item-content', $fields, $condition, true);

View File

@ -54,7 +54,7 @@
use Friendica\Database\DBA; use Friendica\Database\DBA;
if (!defined('DB_UPDATE_VERSION')) { if (!defined('DB_UPDATE_VERSION')) {
define('DB_UPDATE_VERSION', 1354); define('DB_UPDATE_VERSION', 1355);
} }
return [ return [
@ -195,6 +195,7 @@ return [
"addr_uid" => ["addr(32)", "uid"], "addr_uid" => ["addr(32)", "uid"],
"nurl_uid" => ["nurl(32)", "uid"], "nurl_uid" => ["nurl(32)", "uid"],
"nick_uid" => ["nick(32)", "uid"], "nick_uid" => ["nick(32)", "uid"],
"attag_uid" => ["attag(32)", "uid"],
"dfrn-id" => ["dfrn-id(64)"], "dfrn-id" => ["dfrn-id(64)"],
"issued-id" => ["issued-id(64)"], "issued-id" => ["issued-id(64)"],
"gsid" => ["gsid"] "gsid" => ["gsid"]