diff options
author | friendica <info@friendica.com> | 2015-02-12 17:45:25 -0800 |
---|---|---|
committer | friendica <info@friendica.com> | 2015-02-12 17:45:25 -0800 |
commit | da2349bb6a85d13f0aa29046bef3021cf0c884ba (patch) | |
tree | c6746dacc91a9f073bca67869074cc81825964df /install | |
parent | 94a9aa9610647935a10ba6d4d8f70c955a9d7243 (diff) | |
download | volse-hubzilla-da2349bb6a85d13f0aa29046bef3021cf0c884ba.tar.gz volse-hubzilla-da2349bb6a85d13f0aa29046bef3021cf0c884ba.tar.bz2 volse-hubzilla-da2349bb6a85d13f0aa29046bef3021cf0c884ba.zip |
provide relief to sites that are severely impacted by the slow ITEM_UNSEEN searches. This does not incorporate any other flag optimisations as that will require a major DB update and possibly involve significant downtime. This is just to bite off a little chunk now and provide some much needed relief.
Diffstat (limited to 'install')
-rw-r--r-- | install/schema_mysql.sql | 2 | ||||
-rw-r--r-- | install/schema_postgres.sql | 2 | ||||
-rw-r--r-- | install/update.php | 12 |
3 files changed, 15 insertions, 1 deletions
diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index 8addc0af9..247b33814 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -688,6 +688,7 @@ CREATE TABLE IF NOT EXISTS `item` ( `item_restrict` int(11) NOT NULL DEFAULT '0', `item_flags` int(11) NOT NULL DEFAULT '0', `item_private` tinyint(4) NOT NULL DEFAULT '0', + `item_unseen` smallint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `uid` (`uid`), KEY `parent` (`parent`), @@ -717,6 +718,7 @@ CREATE TABLE IF NOT EXISTS `item` ( KEY `public_policy` (`public_policy`), KEY `comments_closed` (`comments_closed`), KEY `changed` (`changed`), + KEY `item_unseen` (`item_unseen`), FULLTEXT KEY `title` (`title`), FULLTEXT KEY `body` (`body`), FULLTEXT KEY `allow_cid` (`allow_cid`), diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql index b68a7cb97..d852f38e9 100644 --- a/install/schema_postgres.sql +++ b/install/schema_postgres.sql @@ -528,6 +528,7 @@ CREATE TABLE "item" ( "item_restrict" bigint NOT NULL DEFAULT '0', "item_flags" bigint NOT NULL DEFAULT '0', "item_private" numeric(4) NOT NULL DEFAULT '0', + "item_unseen" smallint(1) NOT NULL DEFAULT '0', "item_search_vector" tsvector, PRIMARY KEY ("id") ); @@ -559,6 +560,7 @@ create index "item_uid_mid" on item ("mid","uid"); create index "item_public_policy" on item ("public_policy"); create index "item_comment_policy" on item ("comment_policy"); create index "item_layout_mid" on item ("layout_mid"); +create index "item_unseen" on item ("item_unseen"); -- fulltext indexes create index "item_search_idx" on item USING gist("item_search_vector"); diff --git a/install/update.php b/install/update.php index 2c9e54ff9..d2f1ead3c 100644 --- a/install/update.php +++ b/install/update.php @@ -1,6 +1,6 @@ <?php -define( 'UPDATE_VERSION' , 1136 ); +define( 'UPDATE_VERSION' , 1137 ); /** * @@ -1558,3 +1558,13 @@ function update_r1135() { return UPDATE_SUCCESS; return UPDATE_FAILED; } + +function update_r1136() { + $r1 = q("alter table item add item_unseen smallint(1) not null default '0' "); + $r2 = q("create index item_unseen on item ( item_unseen ) "); + $r3 = q("update item set item_unseen = 1 where ( item_flags & 2 ) > 0 "); + + if($r1 && $r2 && $r3) + return UPDATE_SUCCESS; + return UPDATE_FAILED; +} |