请问gateway如何快速向数据库中插入大量的数据

unsco

我用gateway,在onMessage中用db类插入接收到的数据,模拟器在10s中发送了5万条数据。使用的gateway中的db类,用

$db1->insert('Persons')->cols(array('Firstname'=>'abc', 'Lastname'=>'efg', 'Sex'=>'M', 'Age'=>13))->query();

一条一条的插入。gateway接收数据后,花了大约20分钟才把数据完全存储到mysql中。

我想用

$db1->query("INSERT INTO Persons ( Firstname,Lastname,Sex,Age) VALUES ( 'abc', 'efg', 'M', 13)");

这样的方法直接调用sql批量插入,似乎系统不支持。

不知道版主有没有什么好的解决方法。多谢解答

4677 1 0
1个回答

xuhe788

这个跟workerman没有关系。是mysql自身的瓶颈。可以考虑加入到队列里,或者MC里。然后异步存储到数据库中。

  • unsco 2015-08-18

    我想先使用原生的sql语句批量插入到数据库中,这样性能应该有比较大的提高,但是不知道在workerman中如何使用,请问有什么方法吗

  • zhouciming 2018-11-01

    @291:自己组装好语句,再执行吧!

年代过于久远,无法发表回答
×
🔝