LinuxTeam-teilar / cronos.teilar.gr

cronos.teilar.gr website
http://cronos.teilar.gr
GNU Affero General Public License v3.0
5 stars 1 forks source link

Η σελίδα με τις ανακοινώσεις κάνει χιλιάδες sql queries #49

Open tampakrap opened 11 years ago

tampakrap commented 11 years ago

Η σελίδα με τις ανακοινώσεις κάνει πολλά queries, πρέπει να γίνεται μόνο ένα με τα κατάλληλα JOIN. Το πρόβλημα είναι στον παρακάτω κώδικα:

for author in following_authors:
    author_type = ContentType.objects.get_for_model(author)
    creator = Authors.objects.get(content_type__pk = author_type.id, object_id = author.id)
    creators.append(creator)

Εκεί γίνεται η συσχέτιση μεταξύ των tables ContentType και του Authors. Αυτό γίνεται σε for loop για όλα τα posts, το οποίο πρέπει να αντικατασταθεί με ένα JOIN.

tampakrap commented 11 years ago

Στο παραπάνω commit όπως λέει και το message έφτιαξα ένα branch το οποίο κάνει print στην κονσόλα και σε JSON αρχείο όλα τα SQL queries που γίνονται, για λόγους debugging. Το αρχείο JSON αποθηκεύεται στο /tmp/$INSTANCE_NAME/posts_queries.json (όπου $INSTANCE_NAME είναι 'cronos' από default)

tampakrap commented 11 years ago

Υπάρχει πιθανότητα να μην γίνεται με python, και να χρειάζεται raw SQL command