我想从我的应用程序知道myisam表是否可以接受写入(即未锁定)。如果抛出异常,一切都很好,因为我可以捕获它并将失败的语句记录到文件中。但是,如果发出了“具有读锁定的刷新表”命令(可能用于备份),则我发送的查询将永远挂起。
如果一次锁定一个表,插入延迟效果很好。但是当应用此全局锁定时,我的查询只是等待。
我运行的查询是一个insert语句。如果此语句失败或挂起,则用户体验会降低。我需要一种方法将查询发送到服务器并忘记它(非常)。
有没有人对如何处理此事有任何建议?
- 设置查询超时?
-run asyncronous request并允许锁定在应用程序继续时到期?
- 请求我的php进程?
如果我能提供,澄清或详细信息,请告诉我。
答案 0 :(得分:1)
SHOW OPEN TABLES LIKE "table_name";
给你的结果如下:
database, table, in_use, name_locked
test, my_table, 1, 0
'in_use'列将告诉您其他人是否在该表上有读/写锁。