Столкнулся с не приятной проблемой:
Код recall/functions/shortcodes.php:
$rcl_action_users = $wpdb->get_results("
SELECT
us.ID AS user,us.user_registered AS time_action
FROM
".$wpdb->prefix."users AS us
WHERE
us.ID NOT IN (SELECT ua.user FROM ".RCL_PREF."user_action AS ua)");
Создает бешеные запросы к бд, которые там выполняются по минуте:
# Time: 150227 19:00:11
# User@Host: xxxxxxxxxxxx @ localhost []
# Query_time: 49.872164 Lock_time: 0.000054 Rows_sent: 14426 Rows_examined: 82305577
SET timestamp=1425052811;
SELECT
us.ID AS user,us.user_registered AS time_action
FROM
wp_users AS us
WHERE
us.ID NOT IN (SELECT ua.user FROM wp_rcl_user_action AS ua);
Как я понимаю этот запрос используется в функции для определения последней активности пользователя на сайте,а может и нет. В любом случае прошу помощи, из-за этой бяки лишняя нагрузка и 500-ые ошибки у пользователей
видимо до установки плагина на сайте уже были какие пользователи, причем после установки эти пользователи так и не заходили на сайт и не оставили информации о своей активности в БД, поэтому когда через шорткод плагина идет выборка пользователей по активности он начинает выводить пользователей не по активности, а по дате регистрации, исключая при этом пользователей с активностью. Я проблем с этим запросом не наблюдал, но если у вас он отрабатывает долго, то проблему можно решить либо удалив пользователей у которых активности нет, либо прописав им последнюю активность на дату регистрации запросом в БД.
вот такой запрос проверяет есть такие пользователи на сайте и прописывает им информацию об активности, чтобы потом можно было с ней работать:
$no_action_users = $wpdb->get_results("SELECT COUNT(us.ID) FROM ".$wpdb->prefix."users AS us WHERE us.ID NOT IN (SELECT ua.user FROM ".RCL_PREF."user_action AS ua)"); if($no_action_users){ $wpdb->query(" INSERT INTO ".RCL_PREF."user_action( user, time_action ) SELECT us.ID, us.user_registered FROM ".$wpdb->prefix."users AS us WHERE us.ID NOT IN ( SELECT user FROM ".RCL_PREF."user_action ) "); }