MySQL在事务中慢慢处理多语句查询

时间:2017-10-02 00:29:38

标签: php mysql mysqli

使用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
}

我还能看到其他想法吗?谢谢。

0 个答案:

没有答案