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_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`.`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` *DESC*
>> *
>> *
>> *below 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:
>>>
>>> http://cl.ly/image/2A3z1q2l053l
>>>
>>> Screenshot of Admin clicking on TYPES = 60 seconds to load this is the 
>>> query
>>>
>>> http://cl.ly/image/1G1S0c0r302s
>>>
>>> if 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_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`.`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` *DESC*
>>> *
>>> *
>>> Clicking 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/-/eaAW5GSaN2MJ.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to