php块中的mysql_query是否同时进行查询?

Ces*_*sar 0 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  ,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
Run Code Online (Sandbox Code Playgroud)

正如您所看到的49502,我认为查询ID 是等待查询49498完成的.

第一个查询是一个搜索查询,它持续执行第二个查询的时间是索引页面的查询

奇怪的是,如果我打开两个终端并使用与我的sugarcrm安装相同的用户连接到mysql,我可以同时执行两个查询但是如果我在浏览器中进行搜索并打开一个新选项卡并尝试访问索引页面,第二个选项卡挂起,直到第一个选项卡完成执行或从服务器获得超时.

我使用php作为模块和cgi进行了测试.

所以我想它应该是mysql_query函数本身的东西?

有任何想法吗?优化db(很多表,大量内容)非常困难,但至少该站点应该能够同时使用...

Mar*_*c B 6

可能是因为您正在使用基于文件的会话.PHP将在使用它们时锁定会话文件,这实际上使特定会话的所有请求变为串行.

解决这个问题的唯一方法session_write_close()是在完成任何会话更改代码之后,基于每个脚本释放会话锁,或者实现自己的会话处理程序,该处理程序可以拥有自己的锁定逻辑.