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

MySQL中select * for update锁表的问题


select * for update锁表的问题
由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行Table Lock (将整个资料表单给锁住)。
举个例子:
假设有个表单products ,里面有id跟name二个栏位,id是主键。
例1: (明确指定主键,并且有此笔资料,row lock)
SELECT * from products WHERE id='3' FOR UPDATE;
例2: (明确指定主键,若查无此笔资料,无lock)
SELECT * from products WHERE id='-1' FOR UPDATE;
例2: (无主键,table lock)
SELECT * from products WHERE name='Mouse' FOR UPDATE;
例3: (主键不明确,table lock)
SELECT * from products WHERE id<>'3' FOR UPDATE;
例4: (主键不明确,table lock)
SELECT * from products WHERE id LIKE '3' FOR UPDATE;
注1: FOR UPDATE仅适用于InnoDB,且必须在交易区块(BEGIN/COMMIT)中才能生效。
注2: 要测试
锁定的状况,可以利用MySQL的Command Mode ,开二个视窗来做测试。


相关文档:

mysql状态 status

http://blog.163.com/mysqldba@126/blog/static/1315356342009931103834396/
最近看了看mysql的状态变量,感觉好多跟以前自己想象的不一样。为了以后能及时发现自己的错误,就先记下来;
http://dev.mysql.com/doc/refman/5.1/en/server-status-variables.html
mysql> show status;
Com_xxx
语句计数变量表示每个xxx ......

优化MySQL插入方法的五个妙招


以下是涉及到插入表格的查询的5种改进方法:
1)使用LOAD DATA INFILE从文本下载数据这将比使用插入语句快20倍。
2)使用带有多个VALUES列表的INSERT语句一次插入几行这将比使用一个单行插入语句快几倍。调整bulk_insert_buffer_size变量也能提高(向包含行的表格中)插入的速度。
3)可以对myisam表并行插入Concurrent_i ......

mysql 基本操作函数

一 . 安装与配置MYSQL
二 . 常用mysql命令行命令
1 .mysql的启动与停止
启动MYSQL服务 net start mysql
停止MYSQL服务 net stop mysql
2 . netstat –na | findstr 3306 查看被监听的端口 , findstr用于查找后面的端口是否存在
3 . 在命令行中登陆MYSQL控制台 , 即使用 MYSQL COMMEND LINE TOOL
 & ......

MYSQL自带工具Query Profiler使用

Query Profiler是MYSQL自带的一种query诊断分析工具,通过它可以分析出一条SQL语句的性能瓶颈在什么地方。通常我们是使用的explain,以及slow query log都无法做到精确分析,但是Query Profiler却可以定位出一条SQL语句执行的各种资源消耗情况,比如CPU,IO等,以及该SQL执行所耗费的时间等。不过该工具只有在MYSQL 5.0.37以 ......

Mysql字符编码乱码解决方法

导出是,没有指定编码
方法一  phpmyadmin处理方式
  检查php-mbstring是否有可装,没有安装上 yum -y install php-mbstring
  打开phpmyadmin 中导出,再从phpmyadmin 导入是选取二制进(binary)
  如果还不行,在my.cnf mysqld中加入 default-character=你的编码, 重启mysql 再试 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号