几千列数据高速插入数据库设计

2019-06-27 22:54:41 +08:00
 neroanelli

近期有一个项目,需要大量数据的高速存储。希望大家能提供一些思路。 要求: 1、数据的采集速度是 10ms 一次; 2、每次采集的数据大概有 4000 列,数据类型为双精度浮点。 我们现在使用的是 MySQL5.8,windows 平台。

6389 次点击
所在节点    MySQL
28 条回复
lhx2008
2019-06-27 23:06:11 +08:00
4000 列,大概也不会查,主 key 几个单列几列,其他插一列文本就行。
另外,没有试过列数对 mysql 影响大不大,如果从索引角度来讲,影响是不大的
sun522198558
2019-06-27 23:15:05 +08:00
5.8 支持 json 的吧,不常用的字段可以用 json
samwalt
2019-06-27 23:20:22 +08:00
一次采集到的数据有多少条?
est
2019-06-27 23:22:31 +08:00
myisam 可破。
opengps
2019-06-28 00:09:50 +08:00
列这么多合适吗?
misaka19000
2019-06-28 00:55:35 +08:00
elasticsearch 非常适合高速写入的场景
shiny
2019-06-28 01:12:53 +08:00
可以补充下读取的需求。
MoHen9
2019-06-28 06:01:16 +08:00
数值型,时序数据库?
polymerdg
2019-06-28 08:45:59 +08:00
myisam 很容易
feiyunruyue
2019-06-28 09:10:41 +08:00
听着适合时序数据库普罗米修斯( prometheus ),安装简单,我做的一个监控系统就是用这个,挺好用
qilishasha
2019-06-28 09:18:09 +08:00
4K 列,如果行数一多,想想都头疼,我要提前下班休息一下
wccc
2019-06-28 09:37:40 +08:00
时序数据库吧 不要为难 mysql 了
realpg
2019-06-28 09:41:12 +08:00
就算你用 mysql,也扔了 windows 先
各种莫名其妙无解问题
realpg
2019-06-28 09:45:36 +08:00
没打完就发出去了
就这数据量 单录入而论,只要你的磁盘写入性能够,只要不检索,单纯写入性能是没问题的。不要用各种 GUI client 做写入结果验证,select 返回结果会让你死掉的

更好的选择是扔了 mysql 换时序数据库
nooper
2019-06-28 10:04:27 +08:00
扔了 win。不扔不做。
lastpass
2019-06-28 10:07:49 +08:00
使用一种 mq 做个缓存吧。
比如加个 kafka 当中间件+缓存+备份。
防止你的数据库炸掉。
sarices
2019-06-28 10:09:33 +08:00
如果不是需要实时,可以放到缓存,异步写入 mysql
realpg
2019-06-28 10:38:14 +08:00
@neroanelli
血泪经验告诉你 如果锁定了 windows,那就开个虚拟机吧 要么就直接开个 sql server

当然这是你不用专门为你这个场景设计的时序数据库的前提下

这并不是运维天成鄙视 windows

windows 的 mysql 确实会有各种奇奇怪怪的性能问题,别说解决,连发现真正的问题在哪都做不到 而且各种偶然各种莫名其妙

而且这是我们有专业的 windows 高级工程师+MYSQL 工程师的运维团队排查的情况下 显然一般用户并没有这种分析实力更显得莫名其妙
neroanelli
2019-06-28 11:15:05 +08:00
@realpg
恩,谢谢。我也想用 Linux,但是服务器还有其他 windows 程序需要跑。我打算用时序数据库,influxdb 或 elasticsearch,现在正在测试。
MySQL 测试情况很不理想,列太多了。。。
CallMeReznov
2019-06-28 11:18:13 +08:00
这种情况肯定用时序库,influxdb 有 WINDOWS 单机版 绿色运行一键启动,支持 API 里打 SQL
必须要用 MYSQL 的话那就用 JSON 吧.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/578148

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX