V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
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
uti6770werty
V2EX  ›  MySQL

请问 MySQL 上有什么不折腾的办法,把瞬时并发过来的短链接 INSERT,缓一缓放类似”池“里,进行缓处理?主要是服务器受不了。。。

  •  
  •   uti6770werty · Oct 14, 2020 · 4082 views
    This topic created in 2028 days ago, the information mentioned may be changed or developed.

    并非是商业生产环境,只是小环境测试,没钱来换服务器升级,
    一下子很多短链接并发来,都是 INSERT,一下子 MySQL 响应就慢了,看到 Threads_connected 上到了 800,然后就缓不过来一阵子,最后是发出 INSERT 的程序蹦掉了。

    MySQL 是否有不折腾,让这些并发量大的 INSERT 做个 cache,缓着先,跟着适合的节奏慢慢写?

    18 replies    2020-10-15 21:40:13 +08:00
    xuanbg
        1
    xuanbg  
       Oct 14, 2020
    没有,但大家都用消息队列削峰去谷。
    1018ji
        2
    1018ji  
       Oct 14, 2020
    INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] 这些参数试试
    arthurblake
        3
    arthurblake  
       Oct 14, 2020
    可否在发出 INSERT 的程序端做一下缓存。
    BBCCBB
        4
    BBCCBB  
       Oct 14, 2020
    放消息队列然后批量消费批量 insert.
    XDJI
        5
    XDJI  
       Oct 14, 2020   ❤️ 1
    不过你们 tps 多少呀 之前我基准测试了下一台 4v16g 的随机读写 64 线程 tps 能到 2000+
    yuudachiPoi
        6
    yuudachiPoi  
       Oct 14, 2020
    消息队列。
    lbp0200
        7
    lbp0200  
       Oct 14, 2020 via iPhone
    如果是 PHP 的话,就是 800 个进程,一个进程 10 兆,需要 8G 内存
    fredcc
        8
    fredcc  
       Oct 14, 2020
    插入锁表了么,上有序队列成本不低啊
    dorothyREN
        9
    dorothyREN  
       Oct 14, 2020
    要不借你个数据库做测试?
    onepunch
        10
    onepunch  
       Oct 14, 2020
    你的系统怕不是有慢查询吧
    Jooooooooo
        11
    Jooooooooo  
       Oct 14, 2020
    写入的地方慢一点呗
    jones2000
        12
    jones2000  
       Oct 14, 2020
    写一个数据库写入的 api, 所有数库写入都调用这个 api 写入, 不要直接连接数据库写入了。
    simple2025
        13
    simple2025  
       Oct 15, 2020 via Android
    @lbp0200 php 内存这么低?我现在的 py 进程一个 50m,这还是我去掉 jinja2 cache 的结果
    jorneyr
        14
    jorneyr  
       Oct 15, 2020
    加个 Nginx,设置相应 API 的 QPS 限制就好了。
    lbp0200
        15
    lbp0200  
       Oct 15, 2020
    @chenqh 当然不可能这么低,而且这不是重点,重点是内存满了就会用虚拟内存,然后电脑的性能就十分感人了。
    zhangysh1995
        16
    zhangysh1995  
       Oct 15, 2020
    二楼 +1 票 @1018ji
    haosamax
        17
    haosamax  
       Oct 15, 2020
    #4 批量插吧
    gaius
        18
    gaius  
       Oct 15, 2020 via Android
    不怕丢数据就内存队列,批量插
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1150 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 17:19 · PVG 01:19 · LAX 10:19 · JFK 13:19
    ♥ Do have faith in what you're doing.