V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
zhangkunkyle
V2EX  ›  MySQL

MySql 执行 insert 插入 每秒最大能达到多少呢?

  •  
  •   zhangkunkyle ·
    584807419 · 2023-08-08 22:47:22 +08:00 · 2277 次点击
    这是一个创建于 500 天前的主题,其中的信息可能已经有所发展或是发生改变。

    被问到 MySql 的问题,人家问我不考虑索引等情况,MySql insert 每秒能达到多少,我回答说应该几百到几千吧写硬盘应该不会太快,对方说不对,能达到 10 万,我对此有点疑惑,看有的网友说高性能 MySql 中写测试读的 QPS 最大 8000 ,搜到的信息也确定不了什么情况下能有这个吞吐量,不知有没有大佬能给小弟解答一下,真能达到 10 万么?还是需要特殊条件?谢谢~

    26 条回复    2023-08-15 15:34:06 +08:00
    liprais
        1
    liprais  
       2023-08-08 22:51:59 +08:00
    我有一个阿里云的 mysql rds 峰值写入过 2w qps,我看还有 50%的剩余内存,应该不是上限
    你自己去阿里云上买个大内存的 mysql 试试呗,基本上 buffer 用完了就是上限了
    偷偷告诉你国产数据库厂家测 qps 都用的 256g 大内存的节点,内存比数据集还大是现在的基本操作
    w8123
        2
    w8123  
       2023-08-08 22:53:56 +08:00
    batch insert 应该是可以支持 10w 这个量级的。另外如果表非常简单,没有多余索引,支持的 tps 肯定会高一些
    hefish
        3
    hefish  
       2023-08-08 22:58:02 +08:00
    1 亿亿次
    zhangkunkyle
        4
    zhangkunkyle  
    OP
       2023-08-08 23:03:49 +08:00
    @liprais 谢谢
    zhangkunkyle
        5
    zhangkunkyle  
    OP
       2023-08-08 23:03:56 +08:00
    @w8123 谢谢
    zhangkunkyle
        6
    zhangkunkyle  
    OP
       2023-08-08 23:05:24 +08:00
    @hefish 这是要起飞的速度啊。。。
    lscho
        7
    lscho  
       2023-08-08 23:06:24 +08:00
    不太懂,如果不加硬件限制,这个问题有意义吗
    idealhs
        8
    idealhs  
       2023-08-08 23:11:17 +08:00
    不谈硬件就问 MySQL?
    dode
        9
    dode  
       2023-08-08 23:16:32 +08:00
    批量插入很快,每秒 10w 小意思
    hefish
        10
    hefish  
       2023-08-08 23:19:19 +08:00
    @zhangkunkyle e....随便讲讲的。
    我觉着这个问题好像也有点意义,好像又没多少意义。。。
    就像我年轻时候,特别注意一些没啥用的细节。。。
    比如学校 4 楼实验室旁的男厕所有几个蹲位?
    hongfs
        11
    hongfs  
       2023-08-08 23:24:30 +08:00
    问完这个,不问问主键用完了怎么办吗。。。
    zhangkunkyle
        12
    zhangkunkyle  
    OP
       2023-08-08 23:37:57 +08:00
    @hongfs 没有问。。。
    zhangkunkyle
        13
    zhangkunkyle  
    OP
       2023-08-08 23:38:17 +08:00
    @dode 谢谢
    dode
        14
    dode  
       2023-08-09 08:40:33 +08:00
    @hongfs uuid 呗
    dif
        15
    dif  
       2023-08-09 09:12:48 +08:00
    用 SSD 会更快,但一般都会以数据安全(没钱)为由不给你配 ssd 。
    godwinma
        16
    godwinma  
       2023-08-09 09:47:13 +08:00
    各种影响因素很多,mysql 版本,机器配置。
    qingbu
        17
    qingbu  
       2023-08-09 09:54:24 +08:00
    insert values 每次插入 500 行,在不考虑冲突的情况下,并发情况下的写入很快的。单线程大概能跑 2-3w ,多线程 10w+没问题。但是插入速度会被很多因素影响,比如数据类型和数据的复杂程度。还比如一般 MySQL 都是主从,主库扛得住写,但是从库大概率会有主从延迟
    zhangkunkyle
        18
    zhangkunkyle  
    OP
       2023-08-09 10:05:49 +08:00
    @qingbu 谢谢
    git00ll
        19
    git00ll  
       2023-08-09 10:54:07 +08:00
    不能达到 10w 吧,我用 aws rds 测试,批量插入也就在 5000 左右,不过表中有 6 个索引
    Superheroes
        20
    Superheroes  
       2023-08-09 14:20:44 +08:00
    表除了主键,不带索引,将语句限制( max_allowed_packet )改大点,batch insert 轻松到 10W (硬件性能要好),不要小看 mysql
    Superheroes
        21
    Superheroes  
       2023-08-09 14:21:47 +08:00
    @Superheroes 还需要用 myisam 引擎
    zhangkunkyle
        22
    zhangkunkyle  
    OP
       2023-08-09 16:53:59 +08:00
    @Superheroes 请问用 innodb 就不行了么?
    Superheroes
        23
    Superheroes  
       2023-08-11 13:49:09 +08:00
    @zhangkunkyle innodb 不行,innodb 机制限制了写入速度
    zhangkunkyle
        24
    zhangkunkyle  
    OP
       2023-08-11 13:56:48 +08:00
    @Superheroes 那也就是说用 innodb 的话就一般来说达不到 10W 量级了?
    zjp
        25
    zjp  
       2023-08-13 21:58:44 +08:00
    可以挂载到 ramdisk 吗
    Superheroes
        26
    Superheroes  
       2023-08-15 15:34:06 +08:00
    @zhangkunkyle 堆硬件应该可以,没试过
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2693 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:22 · PVG 13:22 · LAX 21:22 · JFK 00:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.