delete与truncate的原理,insert into ..select ...锁,字符集

https://dev.mysql.com/doc/refman/5.7/en/truncate-table.html

truncate 与 delete 的区别?

truncate  1、 不能rollback,  隐式提交,会释放空间。 2、数据或者索引损坏,只要test.frm没有坏,也能truncate成空表。3、自增值重新从0开始。4、不能删除触发器的调用

delete  1 、可以rollback  2、不释放空间

#############################################

insert into b select * from a ; a表和b表加什么锁?
insert into b select * from a order by idx_name; a表和b表加什么锁?
insert into b select * from a order by 非索引列; a表和b表加什么锁?

insert into b select * from a;锁的信息及原理?

http://www.cnblogs.com/zhoujinyi/archive/2013/04/28/3049382.html

http://blog.csdn.net/qq_21033663/article/details/70230798

http://www.cnblogs.com/code-007/p/7729132.html

http://www.ywnds.com/?p=4949

情景一:insert into table1 ...select * from table2:table1扫描过的都加X锁,           table2逐步锁(扫描一个锁一个),table2加IS锁

情景二:insert into table1 ...select * from table2 order by 主键:table1扫描过的都加X锁,          table2逐步锁(扫描一个锁一个)table2加IS锁

情景三:insert into table1 ...select * from table2 order by 非索引列 :table1扫描过的都加X锁,        table2表锁S。

#############################################

http://seanlook.com/2016/10/23/mysql-utf8mb4/

 

posted on 2017-12-18 18:05  星期六男爵  阅读(435)  评论(0编辑  收藏  举报

导航