• 辣椒
    2019-02-07
    老师,不同线程可以使用同名的临时表,这个没有问题。但是如果在程序中,用的是连接池中的连接来操作的,而这些连接不会释放,和数据库保持长连接。这样使用临时表会有问题吗?。

    作者回复: 会,“临时表会自动回收”这个功能,主要用于“应用程序异常断开、MySQL异常重启”后,不需要主动去删除表。

    而平时正常使用的时候,用完删除,还是应该有的好习惯。😆

    好问题,新年快乐~

    
     40
  • 老杨同志
    2019-02-04
    新年快乐,老师好勤奋!
    有个问题,insert into select语句好像会给select的表加锁,如果没有索引,就锁全表,是不是这样?什么时候可以大胆的用这类语句?

    作者回复: 新年好!

    “insert into select语句好像会给select的表加锁,如果没有索引,就锁全表”,是的。

    这类最好不要很大胆😆,如果不是业务急需的,从源表导出来再写到目标表也是好的。

     后面第40篇会说到哈。

    
     14
  • 天王
    2019-02-26
    临时表建表语法create temporary table ,和普通的表不一样,和内存表也不一样。内存表数据保存到内存里,重启会丢失,临时表会写入到磁盘。临时表只对自己的session中可见,session结束后自动删除表结构和表数据。适用场景是分库分表,查询到的数据在临时表中做聚合。临时表可以重名,实际的存储文件名有线程id,在内存中表的命名有table_ref_key,是由库名加表名加serverid+线程id组成。bin log设置为row模式,临时表不会同步到备库中,设置为statement模式,会同步到备库中。

    作者回复: 👍

    
     7
  • Ryoma
    2019-02-14
    贴一下官方文档中的说明:To rename TEMPORARY tables, RENAME TABLE does not work. Use ALTER TABLE instead.
    全文见:https://dev.mysql.com/doc/refman/8.0/en/rename-table.html

    
     6
  • poppy
    2019-02-04
    老师,新年快乐。
    关于思考题,alter table temp_t rename to temp_t2,我的理解是mysql直接修改的是table_def_key,而对于rename table temp_t2 to temp_t3,mysql直接去mysql的data目录下该数据库的目录(例如老师实验用的应该是test数据库,所以对应的是test目录)下寻找名为temp_t2.frm的文件去修改名称,所以就出现了"Can't find file './test/temp_t2.frm'(errno: 2 - No such file or directory)

    作者回复: 春节快乐

    👍

    
     5
  • 鸠翱
    2019-02-12
    放假结束该补课了😅

    评论区有个回答说到了连接池的问题问到会不会有问题……而老师您回答的是会有问题 可是临时表在session结束后不就删除了嘛 那么即使是用同一个线程又有什么问题呢?

    作者回复: 是这样的,要看连接池怎么实现。

    如果A客户端在执行过程中创建了临时表,用完了连接就放回池子里面,没有做别的清理工作,然后新的客户端B复用这个连接,就可能会看到A的临时表

    
     4
  • One day
    2019-02-11
    错过得还是得补上,新得一年,新的开始,加油

    作者回复: 新年快乐,加油💪

    
     4
  • undifined
    2019-02-11
    老师 有几个问题
    1. 在 session 结束的时候会执行 DROP TEMPORARY TABLE,如果数据库掉电,这个临时表什么时候会被清除
    2. 如果binlog 中记录了临时表的操作,因为 session 不同,在从库中访问不到,这样做的意义是什么

    辛苦老师解答一下,谢谢老师

    作者回复: 1. 好问题,重启以后MySQL会扫描临时目录,把表都删掉;
    2. 就是我们文中说的,如果binlog是statement的时候,也需要同步到备库去,否则备库上执行一个
    insert into t_normal (select * from t_temp) 就会报错了

    
     3
  • 亮
    2019-02-04
    老师您好,在25课里面的置顶留言“6.表上无主键的情况(主库利用索引更改数据,备库回放只能用全表扫描,这种情况可以调整slave_rows_search_algorithms参数适当优化下)”
    为啥会存在无主键的表呢,就算dba没创建主键,Innodb可以用rowid给自动建一个虚拟主键呀,这样不就是所有的表都有主键了吗?

    作者回复: 用户没有显示指定主键的话,InnoDB引擎会自己创建一个隐藏的主键,但是这个主键对Server层是透明的,优化器用不上。

    新年快乐~

    
     3
  • 亮
    2019-02-04
    老师过年好呀,祝您猪年大吉,财源广进;老师咱们这个课结束后,再开一期好不好啊,没学够啊,这是我的新年愿望哦

    作者回复: 新年快乐,共同进步😄

    
     3
  • 砖瓦工
    2019-04-11
    一点一点刷新着我对mysql的认识,真心谢谢老师!期待老师有更加多的课程!祝福老师!

    作者回复: 🤝 加油

    
     1
  • 唯她命
    2019-04-10
    老师 为什么过滤了条件之后,选择了t1或者t3,剩下的就固定了呢?选择了t2就需要重新评估t1和t3呢?不明白
     1
     1
  • 土门一哥
    2019-04-06
    又要去学习分库分表了,学老师的一节课程从来都不止学一节课……

    作者回复: 😆加油

    
     1
  • 夜空中最亮的星(华仔...
    2019-02-13
    过年的时候课程落下了,给老师拜个年。

    作者回复: 新年快乐

    
     1
  • 慕塔
    2019-02-04
    打卡 新年快乐😲😲😲

    作者回复: 新年快乐、共同进步🤝

    好勤奋呀😆

    
     1
  • cheriston
    2019-02-04
    老师辛苦了,大年三十还给我们分享技术,老师新年好🎉.

    作者回复: 同祝新年好,共同进步😄

    
     1
  • 长杰
    2019-02-04
    老师,新年快乐,万事如意!

    作者回复: 新春快乐~

    
     1
  • 杰
    2019-02-04
    丁大大新春快乐

    作者回复: 新年快乐 工作顺利~

    
     1
  • 某、人
    2019-02-04
    老师,新年快乐。由于自身原因,错过几期精彩的内容,年后上班以后在好好补补。

    作者回复: 春节快乐 新年身体健康哈

    
     1
  • 尘封
    2019-02-04
    新年快乐

    作者回复: 新年快乐🤝

    
     1
我们在线,来聊聊吧