Tencent / Biny

Biny is a tiny, high-performance PHP framework for web applications

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

请问“addList”这个方法的运行效率怎样

3DMXM opened this issue · comments

准备写一个用户订阅作者的功能,在用户订阅作者后,在作者更新或发布内容的时候会收到消息提醒;
消息提醒我是单独放在一个表里面,在创建消息的时候就相当于创建一行数据;
实现这个功能并不困难,主要就是效率问题;
如果一个作者有1万个粉丝,那么在他更新内容的时候就要创建1万条消息;
看到wiki上有个方法
addList(或insertList)方法为批量添加数据,第二个参数为批量执行的个数,默认一次执行100行 返回成功(true)或者失败(false)
想请问一下,这个方法执行效率怎样,执行1千次、1万次、10万次、100万次的话,会影响服务器的运行吗

就效率来说一条语句全部执行效率肯定最高
分成几条执行主要针对 sql语句太长可能失败的问题
另外如果一次插入中有主键冲突时会导致整个一句sql全部失败,可以切分多次执行或者传第三个参数false来ignore错误

如果每次插入数量少,插入次数太多的话 接口耗时肯定会很长,可能会超过nginx配置的接口超时时间(默认30s貌似)
量特别大的话,可以改成shell模式执行,shell模式不受执行时间限制

主要就是怕数量太多的话,把数据库卡死。。。。

我之前把数据库玩崩过,哈哈哈

看量级可以适当分区分表哈