Любое решение Performance для получения онлайн-статуса из базы данных MySQL - PullRequest
0 голосов
/ 02 сентября 2010

У меня большое приложение для чата в процессе сборки, и я не понимаю, как решить эту проблему. Мне нужно показать онлайн-статус 10 пользователей на странице в данный момент времени, для которого я используюзапрос к базе данных, и каждый раз, когда кто-то посещает страницу, запрос выполняется и возвращает пользователя, который находится в сети ... проблема в том, что онлайн-информация устанавливается в базе данных через другое приложение, поэтому мне нужно запросить ее, чтобы узнать, кто находится в сети независимо от того, что,Есть ли способ, которым я могу воспользоваться, чтобы ускорить процесс?

Я также использую ibatis для своих запросов и запросов DAO.

С уважением;Мухаммед Умайр

Ответы [ 2 ]

1 голос
/ 02 сентября 2010

Мой ключевой момент - не путать эффективность с производительностью.

  1. Сколько времени занимает выполнение этих 10 вызовов базы данных для вашего клиента?
  2. Как это масштабируется для многих пользователей?(Конечно, вы должны выполнить некоторое автоматическое нагрузочное тестирование своего приложения, чтобы выяснить это)
  3. Являются ли они вызовами, которые блокируют клиентский интерфейс?Если да, можете ли вы выделить их в свой собственный поток или сделать сам вызов асинхронным?

См. Также: Модели кэша iBATIS

0 голосов
/ 02 сентября 2010

Наличие хороших индексов может помочь, но также может помочь хранить информацию в памяти. Поскольку информация довольно изменчива, не важно сохранять ее, например, когда ваш сервер приложений выходит из строя. (когда это происходит, все отключаются в любом случае)

Вы можете попробовать использовать инфраструктуру кэширования Java, написать свой собственный простой кэш или попробовать использовать базу данных nosql или в памяти, если у вас есть такая опция.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...