Я получаю много данных на почти одновременных уровнях из одного подключения к веб-сокету.Данные поступают в формате json, с именем таблицы, в которую нужно войти, и данными, которые нужно поместить в 4 столбца (все 4 - целые или двойные, чтобы дать представление о типах данных и масштабе).
Например, скажем, я получаю 1000 строк данных в секунду, мне нужно перейти к примерно 100 различным таблицам (таким образом, 10 строк на таблицу в секунду).Я относительно новичок в этом масштабе данных в MySQL (особенно MariaDB).Прежде чем приступить к этому, нужно ли беспокоиться о такой быстрой записи в БД?Будет ли отставание / я могу потерять данные, которые не будут вставлены, если я получу другой запрос до того, как вставка будет завершена?Могу ли я сказать, пропускаю ли я какие-либо данные?
Я планировал написать на python, но могу приспособиться к C ++, если это будет проблемой (только если это будет проблемой, не обязательно просто для улучшения).Производительность).
Полный поток данных:
Обработчик веб-сокетов:
connect: wss: //..../streams? = stream1 & ..stream100
обратный вызов: @process_data (msg)
def process_data(msg):
#msg exp: {"table":"stream1", "v1":100, "v2":101, "v3":.000005, "v4":.0002}
connection.execute("""INSERT INTO {}
VALUES ({}, {}, {}, {})
""".format(
msg['table'],
msg['v1'],
msg['v2'],
msg['v3'],
msg['v4']
)
)
И я получаю около 1000 сообщений в секунду.
TL; DR: Я потеряю данные / испорчу эту настройку?Он работает на небольшой основе с двумя потоками (я думаю, но я не знаю, теряю ли я уже данные), но мне нужно значительно увеличить его.
Извините, если это глупый вопрос.
Редактировать: MyMaths! = "Good"