联系姚远老师微信:137 2623 2892
技术支持 Support
当前位置:首页 > 技术支持
MySQL的临时表--永远没有结束的故事
添加时间:2023-10-20

MySQL的临时表--永远没有结束的故事


作者:Przemysław Malkowski

译者:姚远

     如果您曾经不得不处理与临时表相关的性能和/或磁盘空间问题,我打赌您最终会发现自己很困惑。根据临时表的类型、设置和所使用的MySQL版本,可能会有很多情况。由于几个原因,我们已经观察到在这个问题上有一个相当长的演变。其中之一是需要完全消除使用过时的MyISAM引擎的需要,同时引入更高性能和更可靠的替代方案。另一组改进是与InnoDB相关的,需要降低使用该引擎的临时表的开销。

出于这个原因,我决定将它们收集成一个摘要,这可能有助于解决它们的使用问题。由于MySQL主要版本之间的巨大变化,我按照MySQL的版本号来划分这篇文章。

MySQL 5.6



(如果您仍在使用该版本,建议您尽快升级。)

用户创建的临时表

当使用CREATE TEMPORARY TABLE子句创建表时,如果没有明确定义,它将使用default_tmp_storage_engine定义的引擎(默认为InnoDB ),并将存储在tmpdir变量定义的目录中。一个例子可能是这样的:

(阅读全文请点击下方原文链接)

https://mp.weixin.qq.com/s?__biz=Mzg5ODY3NDMxOA==&mid=2247484079&idx=1&sn=c11f2a954deb091af3781a8ef4ac6785&chksm=c05fb94ef72830587a2150c78ea8e6762caee026c08f0d0bc243f26476efe40a22070582b91e&token=1836130787&lang=zh_CN#rd