Каждый раз выполнять подсчет перед загрузкой - будет медленно,
Сделать sum всех файлов юзера в базе это долго? (Никто не считает файлы физические каждый раз, тем более в высоконагруженных системах они лежат не на одном сервере, а на куче)
инкрементировать значение в базе после каждого загруженного или удаленного файла - есть вероятность что что-то пойдет не так и значение собьется.
Картинки и пдф бразуер сам прекрасно показывает - зачем просмотрщик?
Для документов и таблиц надо искать решения, но готовых нет в любом случае, самому надо встраивать и т.д.
Если документы не приватные, можно использовать гугл просмотрщик(искать в гугле) через фрейм вставляется на сайт, по прямой ссылке на файл показывает его в фрейме.
Зачем вообще что-то куда-то передавать, тогда уже обрабатывайте на го/питоне/чем угодно.
PHP-то зачем сюда вмешивать в таком случае? Вместо выигрыша получите еще медленнее решение, только сложнее в два раза.
Ну, а если прям очень хочется делать кашу, то поднимите на GO небольшой вебсервер который по http принимает запросы на обработку и отправляйте туда запросы из PHP.
Как вариант поставить какой-нибудь поисковый движок перед базой и всё проиндексировать.
Вы не указали что за данные и что за поиск поэтому это единственный вариант который можно предложить.
А в целом уже есть партицирование и InnoDB, MyISAM и mrg_MyISAM устарели в принципе в этом плане.
...
`users_table_`.floor($user_id/1000000).
Это какая-то хрень, а не шардирование, это скорее ближе к партицированию.