gam0raесли пустой массив-то ~60-90мб
если же у вас там в каждом индексе по тому книги какой-нибудь лежит,то нужно оптимизировать-например часть индексов вывести на время в файл
Для поиска лучше всего разбивайте массив,и перед запросом к массив старайтесь облегчить задачу поиска,чтобы он не как дурной перебирал все 30к данных
А вообще никогда не нужно хранить столько данных в массиве-не больше 1000,и то,если там по словцу,длинной 7-8 букв.