mysql 数据写入速率成了瓶颈,我该怎么优化?
项目上遇到瓶颈了,特来寻求大家帮助。
我的程序负责向本地MySQL数据的一个表写数据,但是项目处理的数据比较琐碎,表的每
行数据主要以VChar字符为主,其段长度在50~3000范围波动。具体举例eg.
| id | taskseq | protocoltype | threadnumintask | idinthread | framesize |
DestMac | SourMac | TypeorLength | Data | Upperlayer |
+----+---------+--------------+-----------------+------------+-------
----+-------------------+-------------------+--------------+-------+---------
---+
| 1 | 1 | Ethernet | 2 | 1 |
544 | F8:0F:41:F3:61:00 | 00:E0:4C:40:01:32 | 08 00 | 45 00 00 22 00
00 40 00 3E 11 B1 C9 C0 A8 06 A6 C0 A8 03 0B DE 03 30 12 00 0E FF 47 34 31 33
39 00 08 00 00 00 00 00 00 00 00 00 00 00 00 | IP |
代码上,我是用Qt下query执行SQL语句来插入数据,但query支持的SQL语句长度是
有限的,我怕溢出就只在query里塞了3行的插入语句(一次for循环调用一次query,向mysql表
中插3行数据)。在不考虑建立索引的情况下,我开了10个线程,每个线程分别维护一个
数据库连接,同时向这个表里写数据。大概测试了下,共写入102400行,耗时18830ms,
约五千行每秒。
我的这个表是用的Innodb引擎,其他设置都是默认的,没变过。
目前就是这个情况,项目一开始需求是800M/s的处理速度,我当时就给否定了,但是我
现在的写速度跟这个差的太多了,真心不敢拿出去交差,特来请教大家如何解决。
PS。就一个服务器,所有数据都必须存在这个服务器中。