36、为什么临时表可以重名

今天是大年三十,在开始我们今天的学习之前,我要先和你道一声春节快乐! 在上一篇文章中,我们在优化join查询的时候使用到了临时表。当时,我们是这么用的: 12345create temporary table temp_t like t1;alter...

MySQL实战45讲

37、什么时候会使用内部临时表

今天是大年初二,在开始我们今天的学习之前,我要先和你道一声春节快乐! 在[第16]和[第34]篇文章中,我分别和你介绍了sort buffer、内存临时表和join buffer。这三个数据结构都是用来存放语句执行过程中的中间数据,以辅助SQL语句的...

MySQL实战45讲

38、还要继续使用Memory引擎吗

我在上一篇文章末尾留给你的问题是:两个group by 语句都用了order by null,为什么使用内存临时表得到的语句结果里,0这个值在最后一行;而使用磁盘临时表得到的结果里,0这个值在第一行? 今天我们就来看看,出现这个问题的原因吧。 内存表...

MySQL实战45讲

39、自增主键为什么不是连续的

在[第4篇文章]中,我们提到过自增主键,由于自增主键可以让主键索引尽量地保持递增顺序插入,避免了页分裂,因此索引更紧凑。 之前我见过有的业务设计依赖于自增主键的连续性,也就是说,这个设计假设自增主键是连续的。但实际上,这样的假设是错的,因为自增主键不...

MySQL实战45讲

40、insert语句的锁为什么这么多

在上一篇文章中,我提到MySQL对自增主键锁做了优化,尽量在申请到自增id以后,就释放自增锁。 因此,insert语句是一个很轻量的操作。不过,这个结论对于“普通的insert语句”才有效。也就是说,还有些insert语句是属于“特殊情况”的,在执行...

MySQL实战45讲

41、怎么最快地复制一张表

我在上一篇文章最后,给你留下的问题是怎么在两张表中拷贝数据。如果可以控制对源表的扫描行数和加锁范围很小的话,我们简单地使用insert … select 语句即可实现。 当然,为了避免对源表加读锁,更稳妥的方案是先将数据写到外部文本文件,然后再写回目...

MySQL实战45讲
15678