← Back to team overview

mahara-contributors team mailing list archive

[Bug 1081947] A change has been merged

 

Reviewed:  https://reviews.mahara.org/3163
Committed: http://gitorious.org/mahara/mahara/commit/c6d8ccbf5a4ad538bddb18e96a2a2a64eb18b3fb
Submitter: Aaron Wells (aaronw@xxxxxxxxxxxxxxx)
Branch:    1.7_STABLE

commit c6d8ccbf5a4ad538bddb18e96a2a2a64eb18b3fb
Author: Robert Lyon <robertl@xxxxxxxxxxxxxxx>
Date:   Tue Nov 26 15:06:22 2013 +1300

Getting mysql not to use CAST() (bug #1081947)

In the 1.8+ codebase there are only two places where both mysql and
postgres use CAST(). So I've tried altering the calls so that mysql
doens't need to use CAST().

This will probably need to be tested with a large data mysql db site
to see if any speed gains are made, and also the calls are still
working correctly.

All other places it is being used by postgres only
Signed-off-by: Robert Lyon <robertl@xxxxxxxxxxxxxxx>

Change-Id: I9eaf196d062ef2a62bfdae0df179281f3411c392

-- 
You received this bug notification because you are a member of Mahara
Contributors, which is subscribed to Mahara.
Matching subscriptions: Subscription for all Mahara Contributors -- please ask on #mahara-dev or mahara.org forum before editing or unsubscribing it!
https://bugs.launchpad.net/bugs/1081947

Title:
  Use of CAST() causes extreme slowdown in large MySQL sites

Status in Mahara ePortfolio:
  Fix Committed
Status in Mahara 1.6 series:
  Fix Committed
Status in Mahara 1.7 series:
  Fix Committed
Status in Mahara 1.8 series:
  Fix Released
Status in Mahara 1.9 series:
  Fix Committed

Bug description:
  Mahara version  1.5.2
  Linux CentOS release 5.8
  PHP Version 5.3.15
  MySQL 5.0.77 

  When editing a page and trying to add a normal text box by dragging it
  into the page, this loads for approx 2 minutes or more and then
  eventually appears.

  It happens with a journal too but all others are fine and are instant
  as they should be.

  I'm not getting any apache log errors for this nor general server
  errors. The only thing I am able to see is the query that it hangs on
  for this length of time.... it is the below...

  I hope someone can help as obviously this is causing quite a lot of
  issues for the users!! Anyone able to diagnose what is the issue here?

  The thing is, there is another exact version of the Mahara site
  alongside this one but just a blank version which runs perfectly fine
  so this must be an issue within the database somewhere or the
  maharadata.

  Query below: this hangs for about 1 minute 45..

  SELECT a.*, CAST(a.owner IS NOT NULL AND a.owner = '1739' AS UNSIGNED) AS editable FROM "artefact" a
              LEFT OUTER JOIN "artefact_parent_cache" apc ON (a.id = apc.artefact AND a.institution = 'mahara' AND apc.parent = 371) WHERE (
                  a.owner = '1739'
                  OR a.id IN (
                      SELECT aar.artefact
                      FROM "group_member" m
                          JOIN "artefact" aa ON m.group = aa.group
                          JOIN "artefact_access_role" aar ON aar.role = m.role AND aar.artefact = aa.id
                      WHERE m.member = '1739' AND aar.can_republish = 1
                  )
                  OR a.id IN (SELECT artefact FROM "artefact_access_usr" WHERE usr = '1739' AND can_republish = 1)
                  OR a.institution IN ('test','mahara')
              ) AND artefacttype IN('blog')ORDER BY title ASC LIMIT 10 |

  Then this one for the rest of the time until eventually the text box
  or journal appears on the page:

  SELECT COUNT(*)  FROM "artefact" a
              LEFT OUTER JOIN "artefact_parent_cache" apc ON (a.id = apc.artefact AND a.institution = 'mahara' AND apc.parent = 371) WHERE (
                  a.owner = '1739'
                  OR a.id IN (
                      SELECT aar.artefact
                      FROM "group_member" m
                          JOIN "artefact" aa ON m.group = aa.group
                          JOIN "artefact_access_role" aar ON aar.role = m.role AND aar.artefact = aa.id
                      WHERE m.member = '1739' AND aar.can_republish = 1
                  )
                  OR a.id IN (SELECT artefact FROM "artefact_access_usr" WHERE usr = '1739' AND can_republish = 1)
                  OR a.institution IN ('test','mahara')
              ) AND artefacttype IN('blogpost') |

  Thank you for your help

To manage notifications about this bug go to:
https://bugs.launchpad.net/mahara/+bug/1081947/+subscriptions


References