临时表

临时表

内存表和临时表的区别
  • 内存表:是用memory引擎的表,这表的数据都放在内存中,重启时会清空数据,但是表结构还在
  • 临时表:可以使用各种引擎,如果使用innodb或myisam的话,数据是存到磁盘的,
临时表的特性
  • 不同session的临时表是可以重名的,有多个session同时创建临时表,并不会因为名字一样而冲突,因为是session级别的(线程独有)
  • 不需要担心数据问题,当断开连接或异常重启的时候,临时表会自动被回收
临时表的应用
  • 分库分表的情况下,用proxy,然后如果使用到每个分区都需要涉及的数据,那就要在汇总的节点,创建临时表接受各个分库来的数据,进行汇总排序等操作,如果哪个分节点资源空闲太多,也可以把这操作放在那个分节点上
临时表的重名
  • 当创建临时表时,innodb会创建一个frm后缀文件在临时文件目录来存储表结构,前缀是“#sql{进程 id}{线程 id} 序列号”。你可以使用 select @@tmpdir 命令,来显示实例的临时文件目录
数据存储方式
  • 在5.7之前,会在临时文件目录下面创建一个前缀一样,后缀为.ibd的文件,来存储数据,
  • 5.7之后,mysql引入了一个临时文件表空间,专门存临时数据,不用再建文件
临时表的日志
  • 如果binlog设置的row,则不会记录临时表的操作
  • 如果使用binlog是statment/mixed的话,那么临时表的操作都会被记录到log文件里面,如果到备库里面,这个log会以库名+serverId+threadId来区别(所以同名也没事)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值