Ваш подход неверен, и вы делаете что-то, что MySQL делает изначально - он может хранить набор данных в ОЗУ и работать с ним оттуда, что вы и делаете со своим алгоритмом.
Другое дело, что для конкретных вещей, таких как поиск текста, существуют известные методы и различные механизмы хранения, которые специализируются для таких целей.
Например, Sphinx является одним из них.
Другая вещь на самом деле - это использование некоторой структуры данных, которая ускоряет поиск, например, trie - что невероятно полезно для таких вещей, как автозаполнение (это всего лишь пример, который не должен быть напрямую связанным с вашим вопросом - это просто подсказка, что существуют известные структуры данных, которые быстро работают со строками).
Кроме того, как вы думаете, почему решение NoSQL будет быстрее, если сравнивать большой объем строковых данных?
Как уже отмечали другие - похоже, что виноваты здесь не ваши технологии, а дизайн вашего алгоритма, а не основная технология. Вы должны быть более точными в своем вопросе и обрисовать в общих чертах, что вы делаете, как вы это делаете и что бы вы хотели, чтобы это было сделано. Когда вы отвечаете на эти вопросы, люди могут указать вам верное направление в решении вашей проблемы, потому что кажется, что вы выбрали неправильный подход.