小型网站制作,做网站 超速云,长春火车站电话人工服务,南通网站建设有限公司作者: 弦乐之花 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明mysql innodb之select for update nowait习惯了oracle数据库的select for update nowait的同学#xff0c;如果转在mysql环境开发的话#xff0c;也许会不太适应——目前builtin版本的inn…作者: 弦乐之花 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明mysql innodb之select for update nowait习惯了oracle数据库的select for update nowait的同学如果转在mysql环境开发的话也许会不太适应——目前builtin版本的innodb不支持nowait句法的。早在08年已经被作为bug提了出来(http://bugs.mysql.com/bug.php?id36285)。还好innodb plugin1.0.2开始支持bug文章里提及的session级innodb_lock_wait_timeout控制(http://dev.mysql.com/doc/innodb-plugin/1.0/en/innodb-other-changes-innodb_lock_wait_timeout.html)Before InnoDB Plugin 1.0.2, the only way to set this parameter was in the MySQL option file (my.cnf or my.ini), and changing it required shutting down and restarting the server. Beginning with the InnoDB Plugin 1.0.2, the configuration parameter innodb_lock_wait_timeout can be set at runtime with the SET GLOBAL or SET SESSION commands.该问题的回复[5 May 17:08] Bugs SystemPushed into 5.1.47 (revid:jorosun.com-20100505145753-ivlt4hclbrjy8eye) (version sourcerevid:vasil.dimovoracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46)(pib:16)[6 May 16:58] Paul DuBoisPush resulted from incorporation of InnoDB tree. No changes pertinent to this bug.Re-closing.看到该问题也是最终被close掉。值得一提的是目前看到的一些问题都说是5147做fixmysql51系列啥时候是个头50系列目前主流的是508X系列吧最近facebook发布了5084的补丁包而percona则已经发布了5190-b21版本oracle则磨刀霍霍向55系列。。。btw作为对select for update nowait的实现其实如果数据库实现不了其实应用做个超时控制就可以了把sql执行放到超时控制代码里具体情况要看开发语言了。测试:-- builtin innodbusertest 10:14:37set innodb_lock_wait_timeout1;ERROR 1238 (HY000): Variable innodb_lock_wait_timeout is a read only variable-- plugin innodb 1.0.7usersbtest 10:15:35select innodb_version;------------------| innodb_version |------------------| 1.0.7 |------------------1 row in set (0.00 sec)usersbtest 10:15:43set session innodb_lock_wait_timeout1;Query OK, 0 rows affected (0.00 sec)usersbtest 10:15:54show variables like innodb_lock_wait_timeout;---------------------------------| Variable_name | Value |---------------------------------| innodb_lock_wait_timeout | 1 |---------------------------------1 row in set (0.01 sec)usersbtest 10:16:02show global variables like innodb_lock_wait_timeout;---------------------------------| Variable_name | Value |---------------------------------| innodb_lock_wait_timeout | 15 |---------------------------------1 row in set (0.00 sec)