Предположу, что Ваши картинки в png8, а pThumb конвертирует их в png24. Попробуйте ради эксперимента залить png24 картинку и посмотреть, что будет с размером после ресайза.
как вариант - через show tables и цикл.
То есть получаете список таблиц через show tables;
Потом прогоняете весь список в цикле и для каждой таблицы генерите новую страницу и выводите её данные на этой странице.
Как вариант, один из: https://habrahabr.ru/post/126233/
Ещё тянут через курсоры: https://habrahabr.ru/post/30046/. Думаю, в mysql тоже есть такая возможность.
Но(!) если количество записей у вас меняется редко, то, пожалуй, есть смысл просто кешировать запрос до наступления какого-либо события.
Всё зависит от ситуации. Возможно, что-то подойдёт из предложенного.
Сначала проверьте длину строки в условии c помощью mb_strlen(). Если длина строки больше 32, то берёте 2 подстроки через mb_substr() и вставляете символ между ними.
Либо simplesearch допиливать, либо через pdoResources, либо своё решение писать(сниппет). Совет: написать свой сниппет, который берёт из БД данные по нужным полям
В миграциях добавьте поле, например, user_agent в таблицу Users. А user-agent можно получить JS-кой через navigator.userAgent и передать в запрос, либо через PHP $_SERVER['HTTP_USER_AGENT'].
Зависит от сложности отчётов, которые вам нужны.
Если отчётов много и нужны графики, диаграммы и прочее - https://d3js.org/.
Если попроще - www.chartjs.org/.
Если только текстовый отчёт(таблица или что-то вроде), то присмотритесь, например, к https://datatables.net, либо просто js используйте.