是否有一个mysql语句提供任何其他开放连接或用户的完整详细信息?或者,对myisam表进行同样详细的状态报告。查看mysql的show table状态文档,它缺少一些非常重要的信息。
我要做的是:远程ODBC连接1正在插入几千条记录,由于连接速度慢,可能需要一个小时。在服务器的localhost上使用php的tcp connection two正在运行对该数据使用聚合函数的select查询。在允许连接2运行这些查询之前,我希望先检查连接2,以确保这些特定表上的任何其他连接上都没有挂起的插入,这样它就可以等到所有数据都可用为止。如果表当前正在写入,我想向连接2的用户吐出一个基于挂起插入数的等待时间的近似值。理想情况下,通过表,我想返回使用查询的时间戳,即连接1开始写入时的时间戳、要完成的插入总数以及已经完成的插入总数。与插入计数不同的是,即使知道写的和留下来写的字节数,在这里也可以很好地工作。
显然,由于连接2是通过PHP脚本进行的TCP连接,所以在该脚本中我真正能使用的只是某种查询。我想如果必须的话,因为它在本地主机上,我可以
exec()
如果唯一的方法是通过一个mysql命令行选项来输出这个信息,那么我宁愿不这样做。我想我可以简单地在这个巨大的插入任务之前和之后更新一个定制的事务日志,PHP脚本可以检查这个日志,但希望已经有了一个内置的MySQL特性,我可以利用它。
编辑:
“transaction”是一个错误的词——语言冲突。我实际上并没有使用MySQL事务。我指的是目前正在处理的任务、查询和请求。