Вы должны использовать определенный сервер HTTP Push для поддержания постоянных соединений с клиентами (браузерами), а затем отправлять события из вашего PHP-кода или бэкэнд-систем на этот сервер HTTP-Push для доставки этим клиентам.
Существует множество технологий и реализаций серверов для таких HTTP-серверов HTTP. Вы можете найти много информации при поиске в Google, или вы можете посмотреть, например, в socket.io .
Есть много решений для баз данных, которые легко справятся с этим требованием, 100K строк - это не очень много для базы данных. Исходя из того, что вы сказали в своем вопросе, нет "лучшего" решения.
Все зависит от того, к чему у вас есть доступ, и, возможно, от того, как вы видите развитие приложения. Если оно перерастет в нечто более сложное, то, возможно, вам лучше использовать полноценную реляционную базу данных, такую как MySQL или MSSQL, в противном случае подойдет и MongoDB.
Если это действительно всего 100 000 слов, у меня возникнет соблазн загрузить все это в память, как префиксное дерево . Это будет невероятно быстро.
Конечно, это немного усложняет обновление ... что добавляется к списку опций? Нужна ли вам опция, добавленная через одну машину, чтобы она была мгновенно доступна, или достаточно ли согласованности в конечном итоге?