mysql10 分钟采集一百万条?要如何实现?

2018-11-23 14:11:05 +08:00
 xbdsky
现在太慢了
4107 次点击
所在节点    程序员
25 条回复
largecat
2018-11-23 14:15:04 +08:00
你带宽多大
KingEngine
2018-11-23 14:18:26 +08:00
集群 各种优化 各种**
xbdsky
2018-11-23 14:19:05 +08:00
服务器配置 2 核 4G 3M 带宽 Windows 2008
brucedone
2018-11-23 14:27:02 +08:00
建议还是以 csv 或者其它的文件形式批量导入
cyhulk
2018-11-23 14:32:14 +08:00
1.不要索引
2.数据引擎使用 MyISAM,不要用 innodb
3.批量提交,节约带宽
danielmiao
2018-11-23 14:42:29 +08:00
分表,不要建不必要的索引,10 分钟 100W 条,一秒才 1667 条,4C8G 的 mysql 5.5 innoDB 之前测试差不多 1 秒 3000 条
auxox
2018-11-23 15:05:01 +08:00
曾经在一个配置很一般的容器上做过测试,开多线程,批量插入的话,mysql 的插入速度能达到 5000 条 /S
find456789
2018-11-23 15:29:39 +08:00
搭车问问,postgresql 10, 我有个表, 其中 5 个字段,设置了唯一 unique (听说设置了唯一,就会自动建立索引)

如果我把另外 4 个字段的 唯一 unique 取消,只能下一个字段设置 unique,是不是插入性能会更高?

谢谢
alex321
2018-11-23 15:58:06 +08:00
redis 或者 es 先扛一扛,然后再进 mysql ?
wispx
2018-11-23 16:02:48 +08:00
用队列
petelin
2018-11-23 16:24:19 +08:00
@alex321 明显应该用 kafka 抗啊.为什么要用 ES 和 Redis
opengps
2018-11-23 16:34:22 +08:00
每秒写入 1667。这个数据量,我问下楼主是不是在做某种终端采集数据?
我做 gps 平台时候,最大的数据库压力就是并发写入巨大,做过类似压测,1667 这个数,是不是那 ssd 的云服务器自建的数据库?
如果以上推测准确或者接近,那么我给楼主的建议是:
1,是时候考虑分多个数据库了,及时单机性能还能提高一倍,但也仅仅是一倍,瓶颈还是很低
2,合并写入。数据库这东西,1k 大小写入 1000 行,跟 1M 大小写入 1 行,相同时间写入总量上是有提升的。试试一次写入 100 条能提高多少 io 上限
3,数据库优化角度:精简规则,借助聚集索引保证写入数据是“物理顺序”,减少这个表的读出场景,尽量使用单一的查询条件取数拿到其他表再加工。
alex321
2018-11-23 16:42:24 +08:00
@petelin #11 看设计结构和使用目的吧,现在不清楚 po 主的目的。
前两天生产环境,渣渣性能机器上,70w 多数据推进 es,5min 多点。es 有各种现成的好工具哈哈,Redis 当缓存呀。

po 主这个机器性能和带宽都有影响。
NotNil1
2018-11-23 16:46:27 +08:00
换时序数据库?上 MQTT?
petelin
2018-11-23 17:25:11 +08:00
@alex321 对 ES 没 kafka 熟练, kafka 有一种连接器, 可以配置一下就把数据导入到 MySQL 中...ES 吃内存速度确实很快.
keakon
2018-11-23 17:44:06 +08:00
我 5 年前的笔记本电脑都能每秒插 1 万条到 innodb,不知道你们给这么多优化建议干啥…

楼主合并一下需要提交的记录,然后一起插入就行了。
gtlions
2018-11-23 18:07:02 +08:00
批量加载;现在虚拟机一般的配置 4Core/8GB 加载 3w 不到一秒钟,这个速度不是单次而是持续在跑的
ccnccy
2018-11-23 20:43:03 +08:00
合并一起不就行,优化一下
moult
2018-11-23 20:48:01 +08:00
关索引、关约束、关 binlog、多个 insert 合并成一个 insert 插入。
xbdsky
2018-11-24 09:49:52 +08:00
谢谢大家

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

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

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

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

© 2021 V2EX