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

2020 年 10 月 14 日
 uti6770werty

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

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

3916 次点击
所在节点    MySQL
18 条回复
xuanbg
2020 年 10 月 14 日
没有,但大家都用消息队列削峰去谷。
1018ji
2020 年 10 月 14 日
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] 这些参数试试
arthurblake
2020 年 10 月 14 日
可否在发出 INSERT 的程序端做一下缓存。
BBCCBB
2020 年 10 月 14 日
放消息队列然后批量消费批量 insert.
XDJI
2020 年 10 月 14 日
不过你们 tps 多少呀 之前我基准测试了下一台 4v16g 的随机读写 64 线程 tps 能到 2000+
yuudachiPoi
2020 年 10 月 14 日
消息队列。
lbp0200
2020 年 10 月 14 日
如果是 PHP 的话,就是 800 个进程,一个进程 10 兆,需要 8G 内存
fredcc
2020 年 10 月 14 日
插入锁表了么,上有序队列成本不低啊
dorothyREN
2020 年 10 月 14 日
要不借你个数据库做测试?
onepunch
2020 年 10 月 14 日
你的系统怕不是有慢查询吧
Jooooooooo
2020 年 10 月 14 日
写入的地方慢一点呗
jones2000
2020 年 10 月 14 日
写一个数据库写入的 api, 所有数库写入都调用这个 api 写入, 不要直接连接数据库写入了。
simple2025
2020 年 10 月 15 日
@lbp0200 php 内存这么低?我现在的 py 进程一个 50m,这还是我去掉 jinja2 cache 的结果
jorneyr
2020 年 10 月 15 日
加个 Nginx,设置相应 API 的 QPS 限制就好了。
lbp0200
2020 年 10 月 15 日
@chenqh 当然不可能这么低,而且这不是重点,重点是内存满了就会用虚拟内存,然后电脑的性能就十分感人了。
zhangysh1995
2020 年 10 月 15 日
二楼 +1 票 @1018ji
haosamax
2020 年 10 月 15 日
#4 批量插吧
gaius
2020 年 10 月 15 日
不怕丢数据就内存队列,批量插

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

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

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

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

© 2021 V2EX