被问到 MySql 的问题,人家问我不考虑索引等情况,MySql insert 每秒能达到多少,我回答说应该几百到几千吧写硬盘应该不会太快,对方说不对,能达到 10 万,我对此有点疑惑,看有的网友说高性能 MySql 中写测试读的 QPS 最大 8000 ,搜到的信息也确定不了什么情况下能有这个吞吐量,不知有没有大佬能给小弟解答一下,真能达到 10 万么?还是需要特殊条件?谢谢~
1
liprais 2023-08-08 22:51:59 +08:00
我有一个阿里云的 mysql rds 峰值写入过 2w qps,我看还有 50%的剩余内存,应该不是上限
你自己去阿里云上买个大内存的 mysql 试试呗,基本上 buffer 用完了就是上限了 偷偷告诉你国产数据库厂家测 qps 都用的 256g 大内存的节点,内存比数据集还大是现在的基本操作 |
2
w8123 2023-08-08 22:53:56 +08:00
batch insert 应该是可以支持 10w 这个量级的。另外如果表非常简单,没有多余索引,支持的 tps 肯定会高一些
|
3
hefish 2023-08-08 22:58:02 +08:00
1 亿亿次
|
4
zhangkunkyle OP @liprais 谢谢
|
5
zhangkunkyle OP @w8123 谢谢
|
6
zhangkunkyle OP @hefish 这是要起飞的速度啊。。。
|
7
lscho 2023-08-08 23:06:24 +08:00
不太懂,如果不加硬件限制,这个问题有意义吗
|
8
idealhs 2023-08-08 23:11:17 +08:00
不谈硬件就问 MySQL?
|
9
dode 2023-08-08 23:16:32 +08:00
批量插入很快,每秒 10w 小意思
|
10
hefish 2023-08-08 23:19:19 +08:00
|
11
hongfs 2023-08-08 23:24:30 +08:00
问完这个,不问问主键用完了怎么办吗。。。
|
12
zhangkunkyle OP @hongfs 没有问。。。
|
13
zhangkunkyle OP @dode 谢谢
|
15
dif 2023-08-09 09:12:48 +08:00
用 SSD 会更快,但一般都会以数据安全(没钱)为由不给你配 ssd 。
|
16
godwinma 2023-08-09 09:47:13 +08:00
各种影响因素很多,mysql 版本,机器配置。
|
17
qingbu 2023-08-09 09:54:24 +08:00
insert values 每次插入 500 行,在不考虑冲突的情况下,并发情况下的写入很快的。单线程大概能跑 2-3w ,多线程 10w+没问题。但是插入速度会被很多因素影响,比如数据类型和数据的复杂程度。还比如一般 MySQL 都是主从,主库扛得住写,但是从库大概率会有主从延迟
|
18
zhangkunkyle OP @qingbu 谢谢
|
19
git00ll 2023-08-09 10:54:07 +08:00
不能达到 10w 吧,我用 aws rds 测试,批量插入也就在 5000 左右,不过表中有 6 个索引
|
20
Superheroes 2023-08-09 14:20:44 +08:00
表除了主键,不带索引,将语句限制( max_allowed_packet )改大点,batch insert 轻松到 10W (硬件性能要好),不要小看 mysql
|
21
Superheroes 2023-08-09 14:21:47 +08:00
@Superheroes 还需要用 myisam 引擎
|
22
zhangkunkyle OP @Superheroes 请问用 innodb 就不行了么?
|
23
Superheroes 2023-08-11 13:49:09 +08:00
@zhangkunkyle innodb 不行,innodb 机制限制了写入速度
|
24
zhangkunkyle OP @Superheroes 那也就是说用 innodb 的话就一般来说达不到 10W 量级了?
|
25
zjp 2023-08-13 21:58:44 +08:00
可以挂载到 ramdisk 吗
|
26
Superheroes 2023-08-15 15:34:06 +08:00
@zhangkunkyle 堆硬件应该可以,没试过
|