Что применить для получения данных из базы каждую секунду?
В базу (MySql) каждую минуту загоняю данные о курсе валюты. Юзеры получают данные из браузеров ajax'ом
каждую минуту. По сути запрос "невесомый" Но понадобилось, делать это каждую секунду добавив к этому еще ~7 запросов к БД без сложной выборки. (По пару значений из 7 таблиц с записями не более ста тысяч) Юзеры должны получать каждую секунду теперь больше данных... Подскажите, что для продакшена выбрать. На данный момент весь dev на mvc laravel и виртуальном железе.
Главый запрос все таки получение курсов, не думаю что тут нужно использовать кэшь. Или вы имеете ввиду вводить новый курс в кэш для всех обрашений на секунду?
Как уже отметили, надо использовать Websocket. После получения данных о курсе эти данные записываются в базу, и одновременно отправляются всем подключенным Websocket клиентам.
Дело в том, что с этим запросом будут иметь дело пользователи, которые будут писать его в свои ячейки или создавать на основе этих данных поля в таблице базы. И тут же их выгребать будут все. Разве Websocket тут ?
Юзер получает курс, после чего делает личную заметку о его тренде (в этот момент он видит как делают другие "не более 100 юзр") В итоге как сейчас, один пользователь с помощью браузера использует 2 запроса (один автомат каждую секунду для получения всех данных, около 17 запросов) Второй при добавлении данных в любой момент в течении пяти секунд (около 5 запросов) и получает ответ в 3 запроса к базе. И все это это каждую секунду нужно. Так как дев и тестеров мало, то напряжений нет. Но до этого никогда с секундными запросами не сталкивался. Логично ли делать через Ajax?
chelkaz: есть ощущение что вы нагнёте мускуль запросами. Может имеет смысл очень свежие данные держать например в редисе и по мере их устаревания скидывать в мускуль. +Ajax запросы раз в секунду от юзера, опять же если на сайте будет 2 человека то норм, если планируется 100 1000 вы себя сами положите
chelkaz: если вы не видите смысла в редиске, то предлагаю Вам все же посчитать количество запросов в секунду к бд для 1 пользователя, помножить это на предполагаемое количество юзеров и прикинуть вытянет ли база это все на том железе которое будет в проде с учётом того что кеширования у Вас не будет. Для доставки данных пользователям наверное лучше все же что-то вроде sock.js оно вроде и вебсокеты умело и до лонгпулинга умело деградировать. Каждую секунду делать запрос на сервак - это путь вникуда.