ChinaUnix.net
相关文章推荐:

mysql 小数量数据表 update 慢 行锁

先前 介紹 過 SELECT ... FOR update 的用法,不過鎖定(Lock)的資料是判別就得要注意一下了。由於 InnoDB 預設是 Row-Level Lock,所以只有「明確」的指定主鍵,mysql 才會執 Row lock (只鎖住被選取的資料例) ,否則 mysql 將會執 Table Lock (將整個資料表單給鎖住)。 舉個例子: 假設有個表單 products ,裡面有 id 跟 name 二個欄位,id 是主鍵。 例1: (明確指定主鍵,並且有此筆資料,row lock) SELECT * FROM products W...

by qbq - MySQL文档中心 - 2008-08-19 10:54:11 阅读(1516) 回复(0)

相关讨论

情况是这样的: 有20张表在同一台机上的同一个mysql下,每个表是百万数量级的记录,写一个测试程序对这些表不停的做insert和update操作,insert和update的比例是9:1,过几十秒就会停在一条update语句上,很长时间无法继续(但不是每一条update都这样),正常的update语句大概零点几毫秒,但是那些停下来等很长时间的update往往要花好几分钟。 请问一下对这种情况有没有合理的解释?有什么解决办法?

by guowei_78 - MySQL - 2004-12-17 12:50:36 阅读(11265) 回复(37)

SELECT FOR update 相关的知识 一个邮件发送的应用会每过一定的时间片去数据库中取未发的邮件然后发送邮件,成功后将数据库中邮件标识未发改为已发。 这个应用部署在websphere上,websphere采用是垂直克隆,有4个server,当4个server都开启的时候,就出现同时发4封相同的邮件给同一个用户。 这时,for update就可以解决这个问题! 1:状态解释 statement: 一个SQL语句。 session: 一个由ORACLE用户产生的连接,一个用...

by qbq - MySQL文档中心 - 2008-08-19 20:11:24 阅读(1327) 回复(0)

准备的执方式是: begin; update aaa set bb=4 where ... .. .. update aaa set zz=4 where ... commit; 因为是在程序中实现,所以update语句可能有很多,最多可到10万数量级。请问可以一次执吗? 还是需要分段commit

by flytod - MySQL - 2007-03-15 13:59:02 阅读(2069) 回复(2)
by 海の伝説 - MySQL - 2005-04-21 11:42:08 阅读(824) 回复(0)

详细一点好吗?写写。

by hiller1 - MySQL - 2008-12-18 11:42:20 阅读(2698) 回复(1)
by optix - MySQL - 2004-09-07 09:11:50 阅读(3664) 回复(7)

mysql> select * from eyes_vote; +-----+-------------+------------+------------+------------+--------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | aid | votename | starttime | endtime | totalcount | ismore | voteno...

by hiller1 - MySQL - 2008-08-09 12:48:11 阅读(1688) 回复(5)

BBS系统 数据库名bbs,内有表若干。 BBS运正常, 但是打开mysql/data/bbs ,里面只有.opt 及 *.frm 文件,myi 和myd文件丢失~ mysql版本为5.0.9beta版。 请大家帮忙看下是何道理?

by opxwt - MySQL - 2005-09-01 12:59:29 阅读(3912) 回复(8)

来源: 中国教程网 如果数据表有问题,可以利用--recover --quick参数做修补的 工作 : linux#myisamchk --recover --quick tbl_name linux#isamchk --recover --quick tbl_name 如果上面的方法不能解决问题,可以将--quick参数去掉: linux#myisamchk --recover tbl_name linux#isamchk --recover tbl_name 如果还是不能解决问题,可以再试着改用--safe_recover参数: linux#myisamchk --safe_recover --quick tbl_name...

by sdccf - MySQL文档中心 - 2008-05-24 21:28:25 阅读(875) 回复(0)

1、先来看看多次删除插入操作后的表索引情况 mysql> SHOW INDEX FROM `tbl_name`; +----------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | +----------+------------+---------...

by ptg0808 - MySQL文档中心 - 2007-09-05 10:59:43 阅读(928) 回复(0)