mysql 中临时表
mysql 中临时表
临时表在日常开发中是十分的有大作用的,比如某些查询可能没办法命中索引,但是又要来一次全表查询,但是又不方便建立索引,这个时候可能临时表是一个很好的选择
临时表和内存表的区别
临时表相对于内存表,他的功能更为强大,有如下区别,分别从创建方式,数据存储地方,表数据结构存放位置:
临时表
- 创建方式
- create temporary table … engine=这里可以是任何的引擎
- 数据的存储
- 他和普通的创建的表并没有太大的区别,myisam,innodb 这两个常用的都是在磁盘中,而 memory 的引擎是在内存中
- 表结构存储
- 他是存在于磁盘
临时表特点
- 创建方式 create temporary table
- 可以和非临时表共存,如果在当前会话中存在同名的磁盘表和临时表,访问的时候优先访问的是临时表
- 访问域只有当前的会话,如果会话结束,临时表也会被删除
- show tables 查询不到临时表
他的命名 -> 库名.表名.服务id.会话id 只有就可以根据这三个参数来确定每个会话中的临时表的隔离效果,他们的在磁盘存放的位置可以通过 select @@tmpdir 查看。
临时表在主从复制中的问题
在主从复制的过程中,我们都知道 binlog 是最为关键的一个日志&