Should I put it in admin.py or settings like a setting or how?
thanks
On Wednesday, 26 September 2012 10:16:29 UTC-4, rentgeeen wrote:
-- On Wednesday, 26 September 2012 10:16:29 UTC-4, rentgeeen wrote:
Here is mysql profiling:Results:
Query:
http://cl.ly/image/0311392u0Z0S
CPU Profile:
http://cl.ly/image/2D210h0f1L06
On Wednesday, 26 September 2012 09:38:03 UTC-4, rentgeeen wrote:If you want I can send you a zip of the project
On Wednesday, 26 September 2012 09:34:33 UTC-4, rentgeeen wrote:Here is the SQL again it overlap in previous post dont know why it posted twice:SELECT `auto_type`.`id`, `auto_type`.`client_id`, `auto_type`.`category_id`, `auto_type`.`subcategory_id`, `auto_type`.`project_id`, `auto_type`.`title`, `auto_client`.`id`, `auto_client`.`title`, `auto_category`.`id`, `auto_category`.`client_id`, `auto_category`.`title`, T4.`id`, T4.`title`, `auto_subcategory`.`id`, `auto_subcategory`.`client_id`, `auto_subcategory`.`category_ FROM `auto_type` Iid`, `auto_subcategory`.`title`, T6.`id`, T6.`title`, T7.`id`, T7.`client_id`, T7.`title`, T8.`id`, T8.`title`, `auto_project`.`id`, `auto_project`.`client_id`, `auto_project`.`category_id`, `auto_project`.`subcategory_ id`, `auto_project`.`title`, T10.`id`, T10.`title`, T11.`id`, T11.`client_id`, T11.`title`, T12.`id`, T12.`title`, T13.`id`, T13.`client_id`, T13.`category_id`, T13.`title`, T14.`id`, T14.`title`, T15.`id`, T15.`client_id`, T15.`title`, T16.`id`, T16.`title` NNER JOIN `auto_client` ON (`auto_type`.`client_id` = `auto_client`.`id`) INNER JOIN `auto_category` ON(`auto_type`.`category_id` = `auto_category`.`id`) INNER JOIN `auto_client` T4 ON (`auto_category`.`client_id` = T4.`id`) INNER JOIN `auto_subcategory` ON(`auto_type`.`subcategory_id` = `auto_subcategory`.`id`) INNER JOIN `auto_client` T6 ON (`auto_subcategory`.`client_id` = T6.`id`) INNER JOIN`auto_category` T7 ON (`auto_subcategory`.`category_id` = T7.`id`) INNER JOIN `auto_client` T8 ON (T7.`client_id` = T8.`id`) INNER JOIN `auto_project` ON(`auto_type`.`project_id` = `auto_project`.`id`) INNER JOIN `auto_client` T10 ON (`auto_project`.`client_id` = T10.`id`) INNER JOIN `auto_category` T11 ON(`auto_project`.`category_id` = T11.`id`) INNER JOIN `auto_client` T12 ON (T11.`client_id` = T12.`id`) INNER JOIN `auto_subcategory` T13 ON(`auto_project`.`subcategory_id` = T13.`id`) INNER JOIN `auto_client` T14 ON (T13.`client_id` = T14.`id`) INNER JOIN `auto_category` T15 ON(T13.`category_id` = T15.`id`) INNER JOIN `auto_client` T16 ON (T15.`client_id` = T16.`id`) ORDER BY `auto_type`.`id` DESCbelow are screenshots
On Wednesday, 26 September 2012 09:33:02 UTC-4, rentgeeen wrote:I am sorry I post the old one here is the update:Screenshot:Screenshot of Admin clicking on TYPES = 60 seconds to load this is the queryif I remove from admin "list_display
class ProjectAdmin(admin.ModelAdmin):
list_display = ('client', 'category', 'subcategory', 'title', )
admin.site.register(Project, ProjectAdmin)
all foreign keys then in admin all works super fast.SELECT `auto_type`.`id`, `auto_type`.`client_id`, `auto_type`.`category_id`, `auto_type`.`subcategory_id`, `auto_type`.`project_id`, `auto_type`.`title`, `auto_client`.`id`, `auto_client`.`title`, `auto_category`.`id`, `auto_category`.`client_id`, `auto_category`.`title`, T4.`id`, T4.`title`, `auto_subcategory`.`id`, `auto_subcategory`.`client_id`, `auto_subcategory`.`category_ FROM `auto_type` Iid`, `auto_subcategory`.`title`, T6.`id`, T6.`title`, T7.`id`, T7.`client_id`, T7.`title`, T8.`id`, T8.`title`, `auto_project`.`id`, `auto_project`.`client_id`, `auto_project`.`category_id`, `auto_project`.`subcategory_ id`, `auto_project`.`title`, T10.`id`, T10.`title`, T11.`id`, T11.`client_id`, T11.`title`, T12.`id`, T12.`title`, T13.`id`, T13.`client_id`, T13.`category_id`, T13.`title`, T14.`id`, T14.`title`, T15.`id`, T15.`client_id`, T15.`title`, T16.`id`, T16.`title` NNER JOIN `auto_client` ON (`auto_type`.`client_id` = `auto_client`.`id`) INNER JOIN `auto_category` ON(`auto_type`.`category_id` = `auto_category`.`id`) INNER JOIN `auto_client` T4 ON (`auto_category`.`client_id` = T4.`id`) INNER JOIN `auto_subcategory` ON(`auto_type`.`subcategory_id` = `auto_subcategory`.`id`) INNER JOIN `auto_client` T6 ON (`auto_subcategory`.`client_id` = T6.`id`) INNER JOIN`auto_category` T7 ON (`auto_subcategory`.`category_id` = T7.`id`) INNER JOIN `auto_client` T8 ON (T7.`client_id` = T8.`id`) INNER JOIN `auto_project` ON(`auto_type`.`project_id` = `auto_project`.`id`) INNER JOIN `auto_client` T10 ON (`auto_project`.`client_id` = T10.`id`) INNER JOIN `auto_category` T11 ON(`auto_project`.`category_id` = T11.`id`) INNER JOIN `auto_client` T12 ON (T11.`client_id` = T12.`id`) INNER JOIN `auto_subcategory` T13 ON(`auto_project`.`subcategory_id` = T13.`id`) INNER JOIN `auto_client` T14 ON (T13.`client_id` = T14.`id`) INNER JOIN `auto_category` T15 ON(T13.`category_id` = T15.`id`) INNER JOIN `auto_client` T16 ON (T15.`client_id` = T16.`id`) ORDER BY `auto_type`.`id` DESCClicking on PAGES time out cause it has more FKs
On Wednesday, 26 September 2012 03:59:02 UTC-4, Jani Tiainen wrote:Your query clearly indicates that you're still doing foreign keys
against TITLE fields, which are strings. So something is definitely
still incorrect in your models.
Make sure that your foreign keys really point to ID field (basically
that is leaving out
26.9.2012 9:24, rentgeeen kirjoitti:
> I postet the query above in the 1st post, it takes like 17secs, 1 of
> them like 60 secs
>
> |SELECT `auto_type`.`id`, `auto_type`.`client_id`,
> `auto_type`.`category_id`, `auto_type`.`subcategory_id`,
> `auto_type`.`project_id`, `auto_type`.`title`, `auto_client`.`id`,
> `auto_client`.`title`, `auto_category`.`id`, `auto_category`.`client_id`,
> `auto_category`.`title`, T4.`id`, T4.`title`, `auto_subcategory`.`id`,
> `auto_subcategory`.`client_id`, `auto_subcategory`.`category_ id`,
> `auto_subcategory`.`title`, T6.`id`, T6.`title`, T7.`id`, T7.`client_id`,
> T7.`title`, T8.`id`, T8.`title`, `auto_project`.`id`,
> `auto_project`.`client_id`, `auto_project`.`category_id`,
> `auto_project`.`subcategory_id`, `auto_project`.`title`, T10.`id`,
> T10.`title`, T11.`id`, T11.`client_id`, T11.`title`, T12.`id`,
> T12.`title`, T13.`id`, T13.`client_id`, T13.`category_id`, T13.`title`,
> T14.`id`, T14.`title`, T15.`id`, T15.`client_id`, T15.`title`, T16.`id`,
> T16.`title` FROM `auto_type` INNER JOIN `auto_client` ON
> (`auto_type`.`client_id` = `auto_client`.`title`) INNER JOIN
> `auto_category` ON (`auto_type`.`category_id` = `auto_category`.`title`)
> INNER JOIN `auto_client` T4 ON (`auto_category`.`client_id` = T4.`title`)
Above is join from auto_category to auto_client "title".
If your model would be "right" it should be autocategory.client_id = T4.id.
> INNER JOIN `auto_subcategory` ON (`auto_type`.`subcategory_id` =
> `auto_subcategory`.`title`) INNER JOIN `auto_client` T6 ON
> (`auto_subcategory`.`client_id` = T6.`title`) INNER JOIN `auto_category`
> T7 ON (`auto_subcategory`.`category_id` = T7.`title`) INNER JOIN
> `auto_client` T8 ON (T7.`client_id` = T8.`title`) INNER JOIN
> `auto_project` ON (`auto_type`.`project_id` = `auto_project`.`title`)
> INNER JOIN `auto_client` T10 ON (`auto_project`.`client_id` = T10.`title`)
> INNER JOIN `auto_category` T11 ON (`auto_project`.`category_id` =
> T11.`title`) INNER JOIN `auto_client` T12 ON (T11.`client_id` =
> T12.`title`) INNER JOIN `auto_subcategory` T13 ON
> (`auto_project`.`subcategory_id` = T13.`title`) INNER JOIN `auto_client`
> T14 ON (T13.`client_id` = T14.`title`) INNER JOIN `auto_category` T15 ON
> (T13.`category_id` = T15.`title`) INNER JOIN `auto_client` T16 ON
> (T15.`client_id` = T16.`title`) ORDER BY `auto_type`.`id` DESC|
>
> |what do you mean by back-end?|
>
> python, django, centos6 64bit server, mysql
>
> all works fine also on website + admin but only that part if I click each table in admin which are defined in admin.py
>
> | |class ProjectAdmin(admin.ModelAdmin):
>
> |
> list_display = ('client', 'category', 'subcategory', 'title', )
>
> admin.site.register(Project, ProjectAdmin)|
>
> |the more I add FK's to list display and you click that PROJECT table or others the view of it in admin is making that query and takes so long....if I make it just:|
>
> | class ProjectAdmin(admin.ModelAdmin):
> list_display = ( 'title', )
>
> admin.site.register(Project, ProjectAdmin)|
>
> NO FKs then it runs in 0.01ms
>
> Screenshot:
>
> http://cl.ly/image/3w3D3g0h3h1A
>
Also I wonder does admin run one query for each FK per row..
>
[snipsnip]
--
Jani Tiainen
- Well planned is half done and a half done has been sufficient before...
You received this message because you are subscribed to the Google Groups "Django users" group.
To view this discussion on the web visit https://groups.google.com/d/msg/django-users/-/2zFqrlodvIgJ.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.
No comments:
Post a Comment