首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

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

  •  
  •   xbdsky · 84 天前 · 2374 次点击
    这是一个创建于 84 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在太慢了
    25 回复  |  直到 2018-11-29 20:30:08 +08:00
        1
    largecat   84 天前 via Android
    你带宽多大
        2
    KingEngine   84 天前
    集群 各种优化 各种**
        3
    xbdsky   84 天前
    服务器配置 2 核 4G 3M 带宽 Windows 2008
        4
    brucedone   84 天前
    建议还是以 csv 或者其它的文件形式批量导入
        5
    cyhulk   84 天前
    1.不要索引
    2.数据引擎使用 MyISAM,不要用 innodb
    3.批量提交,节约带宽
        6
    danielmiao   84 天前
    分表,不要建不必要的索引,10 分钟 100W 条,一秒才 1667 条,4C8G 的 mysql 5.5 innoDB 之前测试差不多 1 秒 3000 条
        7
    auxox   84 天前
    曾经在一个配置很一般的容器上做过测试,开多线程,批量插入的话,mysql 的插入速度能达到 5000 条 /S
        8
    find456789   84 天前
    搭车问问,postgresql 10, 我有个表, 其中 5 个字段,设置了唯一 unique (听说设置了唯一,就会自动建立索引)

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

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

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

    楼主合并一下需要提交的记录,然后一起插入就行了。
        17
    gtlions   84 天前 via iPhone
    批量加载;现在虚拟机一般的配置 4Core/8GB 加载 3w 不到一秒钟,这个速度不是单次而是持续在跑的
        18
    ccnccy   84 天前 via iPhone
    合并一起不就行,优化一下
        19
    moult   84 天前
    关索引、关约束、关 binlog、多个 insert 合并成一个 insert 插入。
        20
    xbdsky   84 天前
    谢谢大家
        21
    br00k   84 天前 via iPhone
    ELK ?
        22
    xipushi   84 天前 via iPhone
    用 insert values(),(),()可以搞定,不要 update。数据再多,考虑换列数据库。我们用的那个,秒秒钟存几千万。把数据整理归集下,减少存的数据。
        23
    realpg   84 天前
    删索引 ARCHIVE 引擎 批量插入 硬盘 IO 要够高
    另外 windows 什么鬼
        24
    wwww961h   83 天前 via iPhone
    一秒才 1000 多条,太简单了,没难度,楼上的建议完全够用
        25
    l0wkey   78 天前
    时序数据?这种情况
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2194 人在线   最高记录 4346   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 19ms · UTC 04:54 · PVG 12:54 · LAX 20:54 · JFK 23:54
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1