使用mysqli执行多查询语句时,我在实际站点上遇到两个问题。
术语:当我说query
时,我的意思是在事务中包含多个INSERT和UPDATE语句。大约5k。
问题#1:查询执行得相当快(仅几秒钟),但数据库以10到20的增量反映了变化。几乎就像我达到插入限制一样涉及延迟。
问题#2:由于多语句查询,我必须调用->next_result();
来释放每个5k结果。这个过程需要很长时间,以至于页面最终会超时。
本地设置: Vagrant with PHP 5.6 + MySQL 5.6上述问题不存在,一切运行不到5秒(涉及CSV导入)。
产品网站:PHP 5.5 + MySQL 5.5.55-cll。
我尝试比较全局变量,除innodb_thread_concurrency
之外没有任何内容真正突出,与本地值4
相比,0
设置为mysql> describe product_filters_link;
+---------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------+------+-----+---------+-------+
| product | int(11) | NO | PRI | NULL | |
| filter | int(11) | NO | PRI | NULL | |
+---------+---------+------+-----+---------+-------+
2 rows in set (0.01 sec)
。更新生产站点上的值并未显示任何性能改进。
vector<Person> pV; //vector of people
for(int i = 0; i < num; i++){
Person x; //create new person object x
pV.push_back(x) //add to vector of people
cout << pV[i].getName(); //print for text
}
我还能看到其他想法吗?谢谢。