Динамический глоссарий на основе идей производительности PHP и MySQL

В настоящее время я пытаюсь реализовать функциональность глоссария для одного из моих веб-проектов, это все о:

  • 50 – 200 слов, которые можно просмотреть в глоссарии
  • До 15 синонимов для каждого слова
  • В основном динамическое содержимое для поиска этих слов и замены гиперссылками на содержание глоссария

Основная проблема, о которой я думаю, – это производительность поиска в основном динамическом содержимом. Мой первый подход загрузил все слова из глоссария в массив и search'n'replaced их со ссылками на PHP, используя регулярное выражение.

Проблема 1: Запрос

Загрузка до 3.000 кортежей базы данных каждый раз, когда кто-то обновляет страницу, не кажется хорошей идеей.

Проблема 2: Поиск

Похоже, что такие длинные циклы с регулярными выражениями с PHP тоже не являются хорошей идеей.

Решение 1. Кэшированный JavaScript

Моя первая и единственная идея состоит в том, чтобы генерировать список слов и синонимов на основе javascript и использовать JavaScript для замены с использованием регулярных выражений.

Последний вопрос

Является ли мое решение хорошей идеей и единственным решением, которое может работать?

Некоторые идеи: Храните слова в json-файле и клиентский кеш-файл. Замените слова при сохранении в ваших cms. Создавать ссылки в генерации между вашим cms и кешем сервера?