MyISAM允许在一个读表的同时,另一个进程从表尾插入记录(MySQL的默认设置)
2 无论MyISAM表中有无空洞,都强制在表尾并发插入记录
若无读线程,新行插入空洞中
可以利用MyISAM的并发插入特性...,来解决应用中对同表查询和插入的锁争用
例如,将concurrent_insert系统变量设为2,总是允许并发插入;
同时,通过定期在系统空闲时段执行OPTIONMIZE TABLE语句来整理空间碎片...,收到因删除记录而产生的中间空洞
删除操作不会重整整个表,只是把 行 标记为删除,在表中留下空洞
MyISAM倾向于在可能时填满这些空洞,插入时就会重用这些空间,无空洞则把新行插到表尾
3.2 MyISAM...、或某些记录已经被删除
幻读(Phantom Reads)
一个事务按相同的查询条件重新读取以前检索过的数据,却发现其他事务插入了满足其查询条件的新数据
4.3 事务隔离级别
在并发事务的问题中,“更新丢失...,并发副作用越小,但付出的代价也越大
因为事务隔离实质上就是使事务在一定程度上“串行化”进行,这显然与“并发”矛盾
为了解决“隔离”与“并发”的矛盾,ANSI SQL定义了4种隔离级别
隔离级别/读数据一致性及允许的并发副作用