2010-09-02 2 views
0

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

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

С уважением; Mohammad Umair

ответ

1

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

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

Смотрите также: iBATIS Cache Models

0

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

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

Смежные вопросы