CREATE TABLE `user` (
`id` int(10) NOT NULL,
`name` varchar(10) DEFAULT NULL,
`time` tinyint(2) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `name_q` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
表 有主键索引,name 普通索引;
插入数据:
1行锁:
(1)按照主键索引更新数据
UPDATE `user` SET time = 1 WHERE id = 1
(2)按照非唯一索引更新数据(但是非唯一索引 值 不 重复)
UPDATE user SET time = 1 WHERE `name` = '2'
2:表锁
(1) 更新数据,没有检索条件,锁表
(2)更新数据,检索条件 不是索引行:锁表
UPDATE user SET time = 1 WHERE `time` =2
(3)按照非唯一索引更新数据(但是非唯一索引 值 重复) 锁表
UPDATE user_copy SET time = 1 WHERE `name` = '3'