https://bugzilla.wikimedia.org/show_bug.cgi?id=42923

--- Comment #1 from Sam Reed (reedy) <[email protected]> ---
Ouch.

Based on the queries I can see on my local wiki (explain then against enwiki):

mysql:wikiadmin@db63 [enwiki]> SELECT /* ORMTable::rawSelect 192.168.0.18 */ 
student_id  FROM `ep_students`  WHERE student_user_id = '0'  LIMIT 1\G
Empty set (0.00 sec)

mysql:wikiadmin@db63 [enwiki]> EXPLAIN  SELECT /* EPRoleObject::hasCourse
192.168.0.18 */  course_id  FROM `ep_courses` INNER JOIN `ep_users_per_course`
ON ((upc_course_id=course_id))  WHERE upc_role = '2' AND upc_user_id = '0' 
LIMIT 1\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: ep_courses
         type: index
possible_keys: PRIMARY
          key: ep_course_instructor_count
      key_len: 1
          ref: NULL
         rows: 1
        Extra: Using index
*************************** 2. row ***************************
           id: 1
  select_type: SIMPLE
        table: ep_users_per_course
         type: eq_ref
possible_keys: ep_users_per_course,ep_upc_course_id,ep_upc_role
          key: ep_users_per_course
      key_len: 9
          ref: const,enwiki.ep_courses.course_id,const
         rows: 1
        Extra: Using index
2 rows in set (0.01 sec)

mysql:wikiadmin@db63 [enwiki]> EXPLAIN  SELECT /* EPRoleObject::hasCourse
192.168.0.18 */  course_id  FROM `ep_courses` INNER JOIN `ep_users_per_course`
ON ((upc_course_id=course_id))  WHERE upc_role = '3' AND upc_user_id = '0' 
LIMIT 1\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: ep_courses
         type: index
possible_keys: PRIMARY
          key: ep_course_instructor_count
      key_len: 1
          ref: NULL
         rows: 1
        Extra: Using index
*************************** 2. row ***************************
           id: 1
  select_type: SIMPLE
        table: ep_users_per_course
         type: eq_ref
possible_keys: ep_users_per_course,ep_upc_course_id,ep_upc_role
          key: ep_users_per_course
      key_len: 9
          ref: const,enwiki.ep_courses.course_id,const
         rows: 1
        Extra: Using index
2 rows in set (0.00 sec)

mysql:wikiadmin@db63 [enwiki]> EXPLAIN  SELECT /* ORMTable::count 192.168.0.18
*/  COUNT(*) AS rowcount  FROM `ep_orgs`   LIMIT 1\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: ep_orgs
         type: index
possible_keys: NULL
          key: ep_org_active
      key_len: 1
          ref: NULL
         rows: 1
        Extra: Using index
1 row in set (0.00 sec)

mysql:wikiadmin@db63 [enwiki]> EXPLAIN  SELECT /* ORMTable::count 192.168.0.18
*/  COUNT(*) AS rowcount  FROM `ep_courses`   LIMIT 1\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: ep_courses
         type: index
possible_keys: NULL
          key: ep_course_instructor_count
      key_len: 1
          ref: NULL
         rows: 1
        Extra: Using index
1 row in set (0.00 sec)

mysql:wikiadmin@db63 [enwiki]> EXPLAIN  SELECT /* ORMTable::count 192.168.0.18
*/  COUNT(*) AS rowcount  FROM `ep_courses`  WHERE (course_end >=
'20121210224746') AND (course_start <= '20121210224746')  LIMIT 1\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: ep_courses
         type: range
possible_keys: ep_course_start,ep_course_end
          key: ep_course_start
      key_len: 16
          ref: NULL
         rows: 1
        Extra: Using where
1 row in set (0.00 sec)

mysql:wikiadmin@db63 [enwiki]> EXPLAIN  SELECT /*
SpecialEducationProgram::getRoleCount 192.168.0.18 */ DISTINCT
COUNT(upc_user_id) AS rowcount  FROM `ep_users_per_course`  WHERE upc_role =
'0'  LIMIT 1\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: ep_users_per_course
         type: ref
possible_keys: ep_upc_role
          key: ep_upc_role
      key_len: 1
          ref: const
         rows: 1
        Extra: Using index
1 row in set (0.00 sec)

mysql:wikiadmin@db63 [enwiki]> EXPLAIN  SELECT /* ORMTable::rawSelect
192.168.0.18 */  course_students  FROM `ep_courses`  WHERE (course_end >=
'20121210224746') AND (course_start <= '20121210224746')\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: ep_courses
         type: range
possible_keys: ep_course_start,ep_course_end
          key: ep_course_start
      key_len: 16
          ref: NULL
         rows: 1
        Extra: Using where
1 row in set (0.00 sec)

mysql:wikiadmin@db63 [enwiki]> EXPLAIN  SELECT /*
SpecialEducationProgram::getRoleCount 192.168.0.18 */ DISTINCT
COUNT(upc_user_id) AS rowcount  FROM `ep_users_per_course`  WHERE upc_role =
'1'  LIMIT 1\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: ep_users_per_course
         type: ref
possible_keys: ep_upc_role
          key: ep_upc_role
      key_len: 1
          ref: const
         rows: 1
        Extra: Using index
1 row in set (0.00 sec)

mysql:wikiadmin@db63 [enwiki]> EXPLAIN  SELECT /*
SpecialEducationProgram::getRoleCount 192.168.0.18 */ DISTINCT
COUNT(upc_user_id) AS rowcount  FROM `ep_users_per_course`  WHERE upc_role =
'2'  LIMIT 1\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: ep_users_per_course
         type: ref
possible_keys: ep_upc_role
          key: ep_upc_role
      key_len: 1
          ref: const
         rows: 2
        Extra: Using index
1 row in set (0.00 sec)

mysql:wikiadmin@db63 [enwiki]> EXPLAIN  SELECT /*
SpecialEducationProgram::getRoleCount 192.168.0.18 */ DISTINCT
COUNT(upc_user_id) AS rowcount  FROM `ep_users_per_course`  WHERE upc_role =
'3'  LIMIT 1\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: ep_users_per_course
         type: ref
possible_keys: ep_upc_role
          key: ep_upc_role
      key_len: 1
          ref: const
         rows: 1
        Extra: Using index
1 row in set (0.00 sec)

mysql:wikiadmin@db63 [enwiki]> EXPLAIN  SELECT /* ORMTable::rawSelect
192.168.0.18 */ DISTINCT course_term  FROM `ep_courses`\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: ep_courses
         type: index
possible_keys: NULL
          key: ep_course_term
      key_len: 257
          ref: NULL
         rows: 1
        Extra: Using index
1 row in set (0.00 sec)

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are watching all bug changes.
_______________________________________________
Wikibugs-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikibugs-l

Reply via email to