]> cat aescling's git repositories - mastodon.git/commit
Improve index on statuses for api/v1/accounts account_id statuses (#7476)
authorAkihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>
Mon, 14 May 2018 10:50:45 +0000 (19:50 +0900)
committerEugen Rochko <eugen@zeonfederated.com>
Mon, 14 May 2018 10:50:45 +0000 (12:50 +0200)
commit42a1231245410a74435db0342047a991e4c92109
tree45f1c0518a09a77215cab601ffdfc40dd803ff92
parent416f6445050b662fb15045185332e1dc3bec3694
Improve index on statuses for api/v1/accounts account_id statuses (#7476)

Queries with the combination of account_id, id, and visibility can be
categorized in three types:
1. Querying for public and unlisted to enumerate statuses visible to
anyone.
2. Querying for public, unlisted, and private to enumerate statuses
visible to follower.
3. Querying for direct to enumerate own direct statuses.

1 and 2 is covered by the index with condition 'visibility IN (0, 1, 2)'.
It would bring better performance in case that there are many direct
statuses.

The index with condition 'visibility = 3' is just for 3. It would be much
faster to query direct statuses thanks to this query.

The total size of those two indexes are expected to be smaller than the
deleted one because they are partial and does not have to cover all the
table.
db/migrate/20180514130000_improve_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb [new file with mode: 0644]
db/schema.rb