Skip to content
Extraits de code Groupes Projets
Valider 30ed4b4e rédigé par Jonne Haß's avatar Jonne Haß
Parcourir les fichiers

Merge pull request #3968 from marpo60/limit_shareable_from_person_queries

limit ShareablesFromPerson queries to improve performance
parents f50ce2cb 38cf1efd
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -16,6 +16,7 @@
* Ported aspects to backbone [#3850](https://github.com/diaspora/diaspora/pull/3850)
* Join tagging's table instead of tags to improve a bit the query [#3932](https://github.com/diaspora/diaspora/pull/3932)
* Refactor contacts/index view [#3937](https://github.com/diaspora/diaspora/pull/3937)
* Limit queries in ShareablesFromPerson [#3968](https://github.com/diaspora/diaspora/pull/3968)
## Features
......
......@@ -116,16 +116,12 @@ module EvilQuery
def make_relation!
return querents_posts if @person == @querent.person
# persons_private_visibilities and persons_public_posts have no limit which is making shareable_ids gigantic.
# perhaps they should the arrays should be merged and sorted
# then the query at the bottom of this method can be paginated or something?
shareable_ids = contact.present? ? fetch_ids!(persons_private_visibilities, "share_visibilities.shareable_id") : []
shareable_ids += fetch_ids!(persons_public_posts, table_name + ".id")
@class.where(:id => shareable_ids, :pending => false).
select('DISTINCT '+table_name+'.*').
order(table_name+".created_at DESC")
select('DISTINCT ' + table_name + '.*').
order(table_name + ".created_at DESC")
end
protected
......@@ -143,11 +139,11 @@ module EvilQuery
end
def persons_private_visibilities
contact.share_visibilities.where(:hidden => false, :shareable_type => @class.to_s)
contact.share_visibilities.where(:hidden => false, :shareable_type => @class.to_s).limit(15)
end
def persons_public_posts
@person.send(table_name).where(:public => true).select(table_name+'.id')
@person.send(table_name).where(:public => true).select(table_name + '.id').limit(15)
end
end
end
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter