Activity

  • Dennis replied to the question BuddyPress for Sensei Database ERROR in the forum Social Learner 8 years, 7 months ago

    It’s running database queries on page load.

    This is WITHOUT selecting a box or hitting any submit button.

    This is after I changed subscriber to student as described above just so I can get the page to load. We currently have 3 test accounts that are students (because I set the default new role in the WP settings to student). You will notice it is calling wp_get_object_terms() and update_meta_cache() for each of the 3 users. If I edit the function from subscriber to admin which we have 5 it will call those 2 queries 5 times each. Now if I leave everything the way you coded it (subscribers) it will call those 2 50,000+ times. That’s over 100,000 queries before the page will load.

    You will also notice #9 is for Teachers, which we have none, so there are no additional queries.

    You can use this for testing:

    Query Monitor

    Once again, this is WITHOUT selecting a box or hitting any submit button. This is just what happens when the admin page loads.

    #1
    Query:
    SELECT wp_users.*
    FROM wp_users
    INNER JOIN wp_usermeta
    ON ( wp_users.ID = wp_usermeta.user_id )
    WHERE 1=1
    AND ( ( wp_usermeta.meta_key = ‘wp_capabilities’
    AND CAST(wp_usermeta.meta_value AS CHAR) LIKE ‘%”student”%’ ) )
    ORDER BY user_login ASC

    Caller:
    WP_User_Query->query()-
    WP_User_Query->__construct()
    get_users()
    BuddyPress_Sensei_Admin->remove_convertion_users_to_bp_member_type()
    BuddyPress_Sensei_Admin->convert_subscribers_option()
    do_settings_fields()
    do_settings_sections()
    BuddyPress_Sensei_Admin->options_page()
    do_action(‘settings_page_sensei-buddypress/includes/admin’)

    #2
    Query:
    SELECT t.*, tt.*
    FROM wp_terms AS t
    INNER JOIN wp_term_taxonomy AS tt
    ON tt.term_id = t.term_id
    INNER JOIN wp_term_relationships AS tr
    ON tr.term_taxonomy_id = tt.term_taxonomy_id
    WHERE tt.taxonomy IN (‘bp_member_type’)
    AND tr.object_id IN (21898)
    ORDER BY t.name ASC

    Caller:
    wp_get_object_terms()-
    bp_get_object_terms()
    bp_get_member_type()
    BuddyPress_Sensei_Admin->remove_convertion_users_to_bp_member_type()
    BuddyPress_Sensei_Admin->convert_subscribers_option()
    do_settings_fields()
    do_settings_sections()
    BuddyPress_Sensei_Admin->options_page()
    do_action(‘settings_page_sensei-buddypress/includes/admin’)

    #3
    Query:
    SELECT user_id, meta_key, meta_value
    FROM wp_usermeta
    WHERE user_id IN (21898)
    ORDER BY umeta_id ASC

    Caller:
    update_meta_cache()-
    get_metadata()
    get_user_meta()
    WP_User->_init_caps()
    WP_User->for_blog()
    WP_User->init()
    WP_User->__construct()
    WP_User_Query->query()
    WP_User_Query->__construct()
    get_users()
    BuddyPress_Sensei_Admin->remove_convertion_users_to_bp_member_type()
    BuddyPress_Sensei_Admin->convert_subscribers_option()
    do_settings_fields()
    do_settings_sections()
    BuddyPress_Sensei_Admin->options_page()
    do_action(‘settings_page_sensei-buddypress/includes/admin’)

    #4
    Query:
    SELECT user_id, meta_key, meta_value
    FROM wp_usermeta
    WHERE user_id IN (21899)
    ORDER BY umeta_id ASC

    Caller:
    update_meta_cache()-
    get_metadata()
    get_user_meta()
    WP_User->_init_caps()
    WP_User->for_blog()
    WP_User->init()
    WP_User->__construct()
    WP_User_Query->query()
    WP_User_Query->__construct()
    get_users()
    BuddyPress_Sensei_Admin->remove_convertion_users_to_bp_member_type()
    BuddyPress_Sensei_Admin->convert_subscribers_option()
    do_settings_fields()
    do_settings_sections()
    BuddyPress_Sensei_Admin->options_page()
    do_action(‘settings_page_sensei-buddypress/includes/admin’)

    #5
    Query:
    SELECT user_id, meta_key, meta_value
    FROM wp_usermeta
    WHERE user_id IN (21900)
    ORDER BY umeta_id ASC

    Caller:
    update_meta_cache()-
    get_metadata()
    get_user_meta()
    WP_User->_init_caps()
    WP_User->for_blog()
    WP_User->init()
    WP_User->__construct()
    WP_User_Query->query()
    WP_User_Query->__construct()
    get_users()
    BuddyPress_Sensei_Admin->remove_convertion_users_to_bp_member_type()
    BuddyPress_Sensei_Admin->convert_subscribers_option()
    do_settings_fields()
    do_settings_sections()
    BuddyPress_Sensei_Admin->options_page()
    do_action(‘settings_page_sensei-buddypress/includes/admin’)

    #6
    Query:
    SELECT t.*, tt.*
    FROM wp_terms AS t
    INNER JOIN wp_term_taxonomy AS tt
    ON tt.term_id = t.term_id
    INNER JOIN wp_term_relationships AS tr
    ON tr.term_taxonomy_id = tt.term_taxonomy_id
    WHERE tt.taxonomy IN (‘bp_member_type’)
    AND tr.object_id IN (21898)
    ORDER BY t.name ASC

    Caller:
    wp_get_object_terms()-
    bp_get_object_terms()
    bp_get_member_type()
    BuddyPress_Sensei_Admin->remove_convertion_users_to_bp_member_type()
    BuddyPress_Sensei_Admin->convert_subscribers_option()
    do_settings_fields()
    do_settings_sections()
    BuddyPress_Sensei_Admin->options_page()
    do_action(‘settings_page_sensei-buddypress/includes/admin’)

    #7
    Query:
    SELECT t.*, tt.*
    FROM wp_terms AS t
    INNER JOIN wp_term_taxonomy AS tt
    ON tt.term_id = t.term_id
    INNER JOIN wp_term_relationships AS tr
    ON tr.term_taxonomy_id = tt.term_taxonomy_id
    WHERE tt.taxonomy IN (‘bp_member_type’)
    AND tr.object_id IN (21899)
    ORDER BY t.name ASC

    Caller:
    wp_get_object_terms()-
    bp_get_object_terms()
    bp_get_member_type()
    BuddyPress_Sensei_Admin->remove_convertion_users_to_bp_member_type()
    BuddyPress_Sensei_Admin->convert_subscribers_option()
    do_settings_fields()
    do_settings_sections()
    BuddyPress_Sensei_Admin->options_page()
    do_action(‘settings_page_sensei-buddypress/includes/admin’)

    #8
    Query:
    SELECT t.*, tt.*
    FROM wp_terms AS t
    INNER JOIN wp_term_taxonomy AS tt
    ON tt.term_id = t.term_id
    INNER JOIN wp_term_relationships AS tr
    ON tr.term_taxonomy_id = tt.term_taxonomy_id
    WHERE tt.taxonomy IN (‘bp_member_type’)
    AND tr.object_id IN (21900)
    ORDER BY t.name ASC

    Caller:
    wp_get_object_terms()-
    bp_get_object_terms()
    bp_get_member_type()
    BuddyPress_Sensei_Admin->remove_convertion_users_to_bp_member_type()
    BuddyPress_Sensei_Admin->convert_subscribers_option()
    do_settings_fields()
    do_settings_sections()
    BuddyPress_Sensei_Admin->options_page()
    do_action(‘settings_page_sensei-buddypress/includes/admin’)

    #9
    Query:
    SELECT wp_users.*
    FROM wp_users
    INNER JOIN wp_usermeta
    ON ( wp_users.ID = wp_usermeta.user_id )
    WHERE 1=1
    AND ( ( wp_usermeta.meta_key = ‘wp_capabilities’
    AND CAST(wp_usermeta.meta_value AS CHAR) LIKE ‘%”teacher”%’ ) )
    ORDER BY user_login ASC

    Caller:
    WP_User_Query->query()-
    WP_User_Query->__construct()
    get_users()
    BuddyPress_Sensei_Admin->remove_convertion_users_to_bp_member_type()
    BuddyPress_Sensei_Admin->convert_teachers_option()
    do_settings_fields()
    do_settings_sections()
    BuddyPress_Sensei_Admin->options_page()
    do_action(‘settings_page_sensei-buddypress/includes/admin’)