Bug #23194 Bug Fixed

member_data tables still being queried when disabled in channel entries tag

Version: 3.5.10 Reporter: James Catt

This is an archived bug report. If you are experiencing a similar issue, upgrade to the latest release and if that does not solve the problem, submit a new bug report

I have a channel:entries tag pair that’s pulling a list of all blog entries in the system. I keep getting a blank page when trying to spit them out all at once, presumably because the DB query identified below is too much of a memory hog (the template works as long as I keep the entry limit low, but beyond about 100 it starts failing).

I’ve tried setting disable="member_data" to improve the performance, but I noticed that the query is still calling two LEFT JOINs on the member-related tables––shouldn’t this be eliminated from the query when setting the disable?

Here’s the channel entries call:

{exp:channel:entries channel="blog" limit="999" status="open" disable="member_data"}

…and here’s the query I’m seeing in the debugger, which has a little exclamation mark next to it. Note that I’ve truncated the full list of IDs for brevity

0.0673s
3.1MB
SELECT  t.entry_id, t.channel_id, t.forum_topic_id, t.author_id, t.ip_address, t.title, t.url_title, t.status, t.view_count_one, t.view_count_two, t.view_count_three, t.view_count_four, t.allow_comments, t.comment_expiration_date, t.sticky, t.entry_date, t.year, t.month, t.day, t.edit_date, t.expiration_date, t.recent_comment_date, t.comment_total, t.site_id as entry_site_id,
         w.channel_title, w.channel_name, w.channel_url, w.comment_url, w.comment_moderate, w.channel_html_formatting, w.channel_allow_img_urls, w.channel_auto_link_urls, w.comment_system_enabled,
         m.username, m.email, m.url, m.screen_name, m.location, m.occupation, m.interests, m.aol_im, m.yahoo_im, m.msn_im, m.icq, m.signature, m.sig_img_filename, m.sig_img_width, m.sig_img_height, m.avatar_filename, m.avatar_width, m.avatar_height, m.photo_filename, m.photo_width, m.photo_height, m.group_id, m.member_id, m.bday_d, m.bday_m, m.bday_y, m.bio,
         md.*,
         wd.*
       FROM exp_channel_titles  AS t
       LEFT JOIN exp_channels   AS w  ON t.channel_id = w.channel_id
       LEFT JOIN exp_channel_data AS wd ON t.entry_id = wd.entry_id
       LEFT JOIN exp_members  AS m  ON m.member_id = t.author_id
       LEFT JOIN exp_member_data AS md ON md.member_id = m.member_id WHERE t.entry_id IN (12926,12914,12903, [** full ID list removed for brevity **]) ORDER BY t.sticky desc, t.entry_date desc, t.entry_id desc

…shouldn’t those last two LEFT JOINs be excluded in this scenario?

.(JavaScript must be enabled to view this email address)

ExpressionEngine News!

#eecms, #events, #releases