易截截图软件、单文件、免安装、纯绿色、仅160KB

MySQL的表锁问题(一)

  在mysql手册里面有一段描述关于lock tables的语法的. LOCK TABLES
    tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE}
    [, tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE}] ...
UNLOCK TABLES
READ
当表不存在 WRITE 写锁时 READ 读锁被执行,这该状态下,当前线程不可以修改(insert,update,delete),其他线程的修改操作进入列队,当当前线程释放锁,其他线程修改被执行.
READ LOCAL
READ LOCAL和READ之间的区别是,READ LOCAL允许在锁定被保持时,执行非冲突性INSERT语句(同时插入)。但是,如果您正打算在MySQL外面操作数据库文件,同时您保持锁定,则不能使用READ LOCAL。对于InnoDB表,READ LOCAL与READ相同。
WRITE
除了当前用户被允许读取和修改被锁表外,其他用户的所有访问被完全阻止。注意的是在当前线程当WRITE被执行的时候,即使之前加了READ没被取消,也会被取消.
LOW_PRIORITY WRITE
降低优先级的WRITE,默认WRITE的优先级高于READ.假如当前线程的LOW_PRIORITY WRITE在列队里面,在未执行之前其他线程传送一条READ,那么LOW_PRIORITY WRITE继续等待.
当您使用LOCK TABLES时,您必须锁定您打算在查询中使用的所有的表。虽然使用LOCK TABLES语句获得的锁定仍然有效,但是您不能访问没有被此语句锁定的任何的表。同时,您不能在一次查询中多次使用一个已锁定的表——使用别名代替,在此情况下,您必须分别获得对每个别名的锁定。
手册给出了如下的例子:
mysql> LOCK TABLE t WRITE, t AS t1 WRITE;#此时锁定的应该算是t表和它的别名t1mysql> INSERT INTO t SELECT * from t;#此时使用了2次t表ERROR 1100: Table 't' was not locked with LOCK TABLESmysql> INSERT INTO t SELECT * from t AS t1;如果您的查询使用一个别名引用一个表,那么您必须使用同样的别名锁定该表。如果没有指定别名,则不会锁定该表。
mysql> LOCK TABLE t READ;mysql> SELECT * from t AS myalias;#因为不能访问没有被语句锁定的任何的表,应该算吧别名myalias算作表了ERROR 1100: Table 'myalias' was not locked with LOCK TABLES相反的,如果您使用一个别名锁定一个表,您必须使用该别名在您的查询中引用该表。
mysql> LOCK TABLE t AS myalias READ;mysql> SELECT * from t;#道理和上面类似ERROR 1100: Table 't' was not locked with LOCK TABLESmysql> SELECT * from t A


相关文档:

MySQL 字符串函数:字符串截取

 MySQL 字符串截取函数:left(), right(), substring(), substring_index()。还有 mid(), substr()。其中,mid(), substr() 等价于 substring() 函数,substring() 的功能非常强大和灵活。
1. 字符串截取:left(str, length)
mysql> select left('sqlstudy.com', 3);
+-------------------------+
| left('sq ......

MySQL常用命令总结

 原文链接:http://bbs.linuxtone.org/thread-991-1-1.html
IT运维专家网--"自由平等,互助分享!"
===MySQL基础====
mysql
下载
: http://www.mysql.com/
mysqld 常规MySQL服务器
mysqld-opt 优化
mysql服务
器,提供一些功能可以挖掘更好的功能
mys ......

MySQL常用命令一览


有很多朋友虽然安装好了mysql但却不知如何使用它。在这篇文章中我们就从连接MYSQL、修改密码、增加用户等方面来学习一些MYSQL的常用命令。
一、连接MYSQL。
格式: mysql -h主机地址 -u用户名 -p用户密码
1、例1:连接到本机上的MYSQL。
首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车 ......

mysql维护常用命令

Analyze Table
MySQL 的Optimizer(优化元件)在优化SQL语句时,首先需要收集一些相关信息,其中就包括表的cardinality(可以翻译为“散列程度”),它表示某个索引对应的列包含多少个不同的值——如果cardinality大大少于数据的实际散列程度,那么索引就基本失效了。
我们可以使用SHOW& ......

浅谈MySQL慢查询日志及microslow patch(msl patch)

mysql(包括所有5.*系列,5.1.21之前)的慢查询日志默认是以秒为单位的,可以通过set [session|global] long_query_time=1这个最低也就是可以设置到1秒,对于0.5,0.005之类就无能为力了,这时候可以有microslow patch(msl patch)补丁来完成这一工作,这个功能的好处自然不言而喻. 在mysql5.1.21及以后版本可以通过set [session|gl ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号