摘要: 行锁 innodb支持行锁,myisam只支持表锁,同一时刻每张表只能有一条数据被更新 在InnoDB事务中,行锁是在需要的时候才加上的,但并不是不需要了就立刻释放, 而是要等到事务结束时才释放。这个就是两阶段锁协议。 如果你的事务中需要锁多个行,要把最可能造成锁冲突、最可能影响并 发度的锁的申请时 阅读全文
posted @ 2022-03-28 10:47 瑾琛 阅读(624) 评论(0) 推荐(0)
摘要: count(*)实现原理 不同引擎的实现: MyISAM引擎把表的总行数存在了磁盘上,执行COUNT(*)就会直接返回,效率很高; InnoDB在count(*)时,需要把数据一行一行的从引擎里面取出来然后累计记数。 注意如果有where过滤条件MYISAM速度就不是很快了。 为什么Innodb不和 阅读全文
posted @ 2022-03-28 10:47 瑾琛 阅读(109) 评论(0) 推荐(0)
摘要: 几个影响sql语句性能的例子 案例一:假设你现在维护了一个交易系统,其中交易记录表tradelog包含交易流水号(tradeid)、交易员id(operator)、交易时间(t_modified)等字段。为了便于描述,我们先忽略其他字段。这个表的建表语句如下: mysql> CREATE TABLE 阅读全文
posted @ 2022-03-28 10:41 瑾琛 阅读(168) 评论(0) 推荐(0)
摘要: 幻读 场景例子(innodb的默认事物隔离级别是可重复读) CREATE TABLE `t` ( `id` int(11) NOT NULL, `c` int(11) DEFAULT NULL, `d` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `c 阅读全文
posted @ 2022-03-28 10:37 瑾琛 阅读(429) 评论(0) 推荐(0)