php中的mysql\u查询是否同时阻止查询?
我安装了SugarCRM 我的问题是,当我在sugarcrm中进行搜索时,搜索查询会阻止所有其他查询php中的mysql\u查询是否同时阻止查询?,php,mysql,sql,locking,Php,Mysql,Sql,Locking,我安装了SugarCRM 我的问题是,当我在sugarcrm中进行搜索时,搜索查询会阻止所有其他查询 Id User Host db Command Time State Info 49498 sugar xx.xx.xx.xx:59568 sugarcrm Query 5 Sorting result SELECT leads.id ,
Id User Host db Command Time State Info
49498 sugar xx.xx.xx.xx:59568 sugarcrm Query 5 Sorting result SELECT leads.id ,leads_cstm.cedula_c,leads_cstm.numplanilla_c,leads_cstm.profession_c,leads_cstm.b
49502 sugar xx.xx.xx.xx:59593 sugarcrm Sleep 5 NULL
正如您所看到的,我猜想查询Id49502
正在等待查询49498
完成
第一个查询是一个持续执行很长时间的搜索查询
第二个查询是对索引页的查询
奇怪的是,如果我打开两个终端并使用与sugarcrm安装相同的用户连接到mysql,我可以同时执行这两个查询,但如果我在浏览器中搜索并打开一个新选项卡并尝试访问索引页,则第二个选项卡将一直运行,直到第一个选项卡完成执行或服务器超时
我已经使用php作为模块和cgi对此进行了测试
所以我想它应该是mysql_查询函数本身的东西
有什么想法吗?很难优化数据库(很多表,很多内容),但至少站点应该能够同时使用…可能是因为您使用的是基于文件的会话。PHP将在使用会话文件时锁定它们,这实际上使特定会话的所有请求都变成串行的
解决此问题的唯一方法是,在任何会话更改代码完成后,使用
session\u write\u close()。PHP将在使用会话文件时锁定它们,这实际上使特定会话的所有请求都变成串行的
解决这个问题的唯一方法是在任何会话更改代码完成后,使用session\u write\u close()。至于性能,我不确定mysql_查询下到底发生了什么,但客户机确实可以在表工作时锁定它。是时候读一些源代码了。您确定CRM软件没有在表上设置任何锁吗?无论如何,您不应该使用mysql\u查询,请使用mysqli\u查询。至于性能,我不确定mysql_查询下到底发生了什么,但客户机确实可以在表工作时锁定它。是时候读一些源代码了。你确定CRM软件没有把任何锁放在桌子上吗?谢谢。我从未证实过这一点,但我注意到长时间运行的php请求将阻止其他选项卡访问同一站点,而其他设备(甚至浏览器)可以毫无问题地连接。我一直认为这就是问题所在,只是从来没有花时间去研究它。@marc-b你是对的,我使用两种不同的浏览器进行了测试,queris同时运行,谢谢!运行基于db的会话能否避免多个选项卡的问题?取决于您如何实现会话处理程序。自己滚动意味着锁定取决于您。如果你做得不好,两个并行请求可能会相互影响对方的数据。谢谢。我从未证实过这一点,但我注意到长时间运行的php请求将阻止其他选项卡访问同一站点,而其他设备(甚至浏览器)可以毫无问题地连接。我一直认为这就是问题所在,只是从来没有花时间去研究它。@marc-b你是对的,我使用两种不同的浏览器进行了测试,queris同时运行,谢谢!运行基于db的会话能否避免多个选项卡的问题?取决于您如何实现会话处理程序。自己滚动意味着锁定取决于您。如果您做得不好,两个并行请求可能会相互攻击对方的数据。