Я хочу создать мобильное приложение, которое должно отправлять данные каждую минуту на сервер с базой данных MySQL.
Так что, если у меня будет 10 000 пользователей, которые работают 8 часов в день, это будет:
60 запросов * 8 часов * 30 дней * 12 месяцев = 172800 запросов в год для одного пользователя.
10 000 пользователей * 172800 = 1 728 000 000
и это я думаю много данных для базы данных mysql, так что вы предлагаете? Что мне нужно использовать? Какой тип базы данных? NoSql или MySQL могут справиться с этим?
Это слишком долго для комментария.
Если у вас есть 10 000 пользовательских данных каждую минуту, то это 10000/60 ~ = 200 вставок в секунду. Это большая нагрузка, но не лишенная смысла. Тем не менее, это поднимает много вопросов, таких как:
Ответы на эти вопросы должны помочь вам выбрать лучший источник данных. И MySQL, и базы данных No-SQL с ключом-значением соответствуют этой задаче. Базы данных MySQL могут обрабатывать миллиарды строк в год. Типичные базы данных без SQL (MongoDB, Dynamo DB и т. Д.) Также могут обрабатывать этот объем данных.
MySQL может справиться с этим, нет проблем. Второй вопрос, который вы должны задать себе, может ли ваш сервер обрабатывать 10K-запрос в минуту (возможно, вы делитесь им).
И вы должны попытаться посчитать количество запросов в секунду или минуту, в год это немного неоднозначно. Поэтому достаточно сказать, что 1 запрос в минуту на пользователя с 10 000 пользователей является достаточной информацией.
И это много, но выполнимо.
Если вам нужны данные, я бы настроил производительность.
Например, если вы не возражаете против задержки в 1 час: регистрируйте данные каждую минуту в телефонной БД, отправляйте только данные каждый час и вставляйте их в MySQL в виде пакета.
Это 1/60 от количества запросов и запросов на вставку.
Это хорошо для вашей нагрузки на сервер и для пользовательского опыта, то есть истощает время автономной работы.