mysql是否在选择、更新或删除时锁定表?
关于MySQL表mysql是否在选择、更新或删除时锁定表?,mysql,locking,Mysql,Locking,关于MySQL表lock,我有几个问题。如果有人回答我,我将不胜感激:) MySQL是否在以下情况下自动锁定表: 从成员中选择id updatemembers SET name='john',其中id=7 这两者的区别是什么: 锁定读取的表项;选择“从”项 从“项目”中选择* 出于某种原因,我的印象是MySQL会在必要的时候自动锁定表!如何检查锁定发生的时间和方式 谢谢。1.a)不需要锁 1.b)锁定表(myisam引擎),或者如果使用innodb引擎,则具有行级锁定 2.a)为读取操作
lock
,我有几个问题。如果有人回答我,我将不胜感激:)
从成员中选择id代码>
updatemembers SET name='john',其中id=7代码>
锁定读取的表项;选择“从”项代码>
从“项目”中选择*代码>
1.b)锁定表(myisam引擎),或者如果使用innodb引擎,则具有行级锁定 2.a)为读取操作锁定表(在释放此锁定之前,不会发生写入操作)
2.b)不需要锁 正如Lithu T.V所建议的,请阅读以获得所有用例
$sql=“显示从“”打开的表。$db\u name.”
使用中的位置>0
及
“表”在(“;
$tables=计数($array\u tables\u name);
对于($i=0;$i<$tables;$i++)而言:
$sql.=“'””$array_tables_name[$i]。“'”;
如果($i<($tables-1))$sql.=“,”;
endfor;
$sql.=”;
有关锁的更多信息可在此处找到:
取决于。。。什么存储引擎?在交易中?如果是的话,隔离级别是什么?很想知道MyISAM和InnoDB。
$sql = "SHOW OPEN TABLES FROM '".$db_name."'
WHERE In_use > 0
AND
'Table' IN (";
$tables = count($array_tables_names);
for($i = 0; $i < $tables; $i++):
$sql .= "'".$array_tables_names[$i]."'";
if($i < ($tables-1)) $sql .= ",";
endfor;
$sql .= ")";