2014-12-19 3 views
-2

Я хочу создать мобильное приложение, которому необходимо каждую минуту отправлять данные на сервер базы данных с базой данных mysql.База данных MySql для большого количества данных

Так что, если у меня есть 10 000 пользователей, которые работают 8 часов в день, что будет:

60 запрос * 8 часов * 30 дней * 12 месяцев = 172800 reuqest в год для одного пользователя.

10 000 пользователей * 172800 = 1 728 000 000

и это, я думаю, много данных для базы данных MySQL, так что вы предлагаете? Что мне нужно использовать? Какая база данных? NoSql или mysql могут справиться с этим?

+3

Я думаю, что много запросов на мобильное приложение! – dario

+0

Какие данные вы собираетесь хранить? –

+0

, но мне нужно отправить только данные lat, longitde и currenct time ... – LaraBeginer

ответ

3

Это слишком долго для комментария.

Если у вас есть 10 000 данных пользователей каждую минуту, то это 10 000/60 ~ = 200 вставок в секунду. Это большая нагрузка, но не необоснованная. Однако возникает много вопросов, таких как:

  • Как эти данные будут использоваться?
  • Какова ваша стратегия резервного копирования?
  • Сколько потребуется истории?
  • Как вы управляете пропускной способностью сети?
  • Какова максимальная скорость вставки?
  • Как быстро данные должны быть доступны?
  • Насколько важно соответствие ACID?

Ответы на эти вопросы помогут вам определить лучший источник данных. Оба MySQL и базовые базы данных No-SQL справляются с этой задачей. Базы данных MySQL могут обрабатывать миллиарды строк в год. Типичные базы данных без SQL (MongoDB, Dynamo DB и т. Д.) Также могут обрабатывать этот объем данных.

+0

1. Мне нужно только отправить местоположение пользователя (координаты) – LaraBeginer

+0

, так что каждое приложение делает это (fitBit, каждое приложение, отслеживающее активность пользователя и т. д. приложений для здоровья) – LaraBeginer

+0

@LaraBeginer Почему бы не использовать какую-либо услугу передачи данных для отправки координат? –

2

MySQL может справиться с этим, без проблем. Второй вопрос, который вам нужно задать себе, если ваш сервер может обрабатывать запрос 10K в минуту (возможно, вы делитесь им).

И вы должны попытаться подсчитать количество запросов в секунду или минуту, в год немного неоднозначно. Так что 1 запрос в минуту для каждого пользователя с 10K пользователей достаточно информации. И это много, но умело.

Если вам нужны данные, я бы подстроил производительность.

Например, если вы не против задержки 1 часа: регистрируйте данные каждую минуту в своей телефонной БД, только отправляйте данные каждый час и вставляйте их в свой MySQL в виде пакета. Это 1/60th запросов и вставка запросов. Это хорошо для вашей серверной нагрузки и для удобства пользователя, то есть для разрядки аккумулятора.

+0

Я полностью согласен с локальным хранилищем, однако как насчет обработки localstorage, если пользователь выходит из приложения? –

+0

Я вижу подобное приложение, которое делает это с большим количеством пользователей и т. Д. Fitbit и аналогичное приложение для отслеживания работоспособности приложения каждый раз, шаги и аналогичные ... – LaraBeginer

+0

Мобильные приложения могут работать в фоновом режиме, которые продолжают делать то, что вы хотите, например отправить собранные данные каждый час. Это зависит от того, когда вы хотите отправлять данные, пользователь должен знать, собираете ли вы данные и отправляете их, пока приложение даже не открыто. Например, вы можете собирать данные, когда пользователь вошел в систему и прекратил сбор, когда пользователь выходит из системы. И отправляющая часть выполняется полностью асинхронно вашей службой. – Timmetje

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