У тебя два конфига. Причем один обращается к php-файлам проекта минуя контейнер.
Есть два варианта
1) Убрать конфиг nginx снаружи контейнера, сделать что бы конфиг внутри контейнера принимал запросы на 80/443 порт
2) Сделать с внешнего nginx проксирование всех запросов в nginx-контейнера.
1. Меняется/Зависит ли как-то скорость записи в таблицу БД от количества записей в таблице?
При добавление записи в таблицу обновляются индексы (если они там есть), так что чем больше таблица тем медленнее будет запись (если в таблицы есть индексы кроме primery key). Это можно заметить если начать добавлять большое кол-во строк (построчно) в таблицу с индексами. Сперва добавление будет идти быстро, потом все медленнее и медленнее. Один из способов борьбы с этим - пакетное добавление.
Какая у тебя нагрузка на сайт? Какой сервер? Какая у него загрузка? Если нагрузка небольшая и сервер не забит чем-то еще и тормозит, то можешь не париться и делать через update. На куче WP-сайтов так и работает :)
На большом проекте, как верно сказали выше, так делать не надо. Нужно отдельное специлизированное решение.
А как это должно работать? Тут телепатов нет. Я тебе сходу могу набросать несколько разных вариантов реализации и подсчета кол-ва товаров в категориях. :)
Подозреваю, что тебе нужна информацию по запросу "фасетный поиск" в Яндексе. Это если кол-во товаров в каждой категории меняется при измение кол-ва выбранных категорий.
Если нет, то это обычный select category_id, count(*) from products group by category_id (условно). Лучше тогда эти данные кешировать.
В практическом плане можешь использовать elasticsearch раз стоит тег php, там такая фича есть (фасетный поиск).