-
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:
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 ASCCaller:
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 ASCCaller:
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 ASCCaller:
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 ASCCaller:
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 ASCCaller:
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 ASCCaller:
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 ASCCaller:
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 ASCCaller:
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 ASCCaller:
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’)PS
We cut our development users down to about 20k just to see what will happen and it still crashes.