В наших таблицах базы данных мы храним ряд подсчитывающих столбцов, чтобы уменьшить количество простых запросов поиска. Например, в нашей таблице пользователей есть столбцы для количества написанных отзывов, загруженных фотографий, друзей, подписчиков и т. Д. Чтобы обеспечить их синхронизацию, у нас есть скрипт, который периодически запускается для проверки и обновления этих столбцов подсчета. 1001 *
Проблема в том, что теперь, когда наша база данных значительно выросла, запросы, которые мы использовали, выполняются вечно, поскольку они абсолютно неэффективны. Я был бы признателен, если бы кто-то с большим знанием MySQL, чем я, рекомендовал, как мы можем улучшить его эффективность:
update users
set photos=(select count(*)
from photos
where photos.status="A"
AND photos.user_id=users.id)
where users.status="A";
Если бы это было оператором select, я бы просто использовал соединение, но я не уверен, возможно ли это с обновлением.
Заранее спасибо за помощь!