MySQL 中的myisam内部临时表

  • 时间:
  • 浏览:0

实际上可能设置参数big_tables为TURE可能涵盖了大字段必然会使用磁盘临时表如下:

可能对MySQL中的临时文件的种类和作用还是比较熟悉参考下文:

http://blog.itpub.net/7728585/viewspace-2146356/为什么么让 总要基于5.7写的,为什么么让 对其他 文件确实没见过,为什么么让 回想起在5.7官方文档中描述过,5.7如果默认的组织组织结构临时表磁盘文件使用了innodb引擎,为什么么让 5.6中默认还是myisam引擎的。5.7中使用那先 引擎由参数internal_tmp_disk_storage_engine控制,为什么么让 在内存中始终是memory引擎的组织组织结构表,完正参考5.7官方文档:

有两个朋友问我下面的tmp目录的文件是干那先 的,一会就删除了。他的版本是5.6



我发现我的好多文章总要朋友问的什么的什么的问题 。^_^

得以证明。

本文什么都有有我记录一下验证过程,源码比较多样化,时间有限没仔细读过。如有误导请见谅。

朋友发现这里的临时表名字为#sql_bec0_14.MYD等打开函数朋友能必须在如下代码中找到为那先 曾经命名措施:

其他 什么的什么的问题 在官方文档描述参考:

8.4.4 Internal Temporary Table Use in MySQL

让人不太满描述了,执行计划一般会经常出现use temporary字样,当然不经常出现也可能使用组织组织结构临时表,自行参考。

而对于是是否是磁盘文件则如下描述:

为什么么让 在测试的如果我将tmp_table_size设置得很小了,share->max_rows自然很小,为什么么让 还是必须磁盘组织组织结构临时表,很是纳闷,如下我本人加入的打印输出如下:

作者微信:

实际上其他 函数什么都有有我instantiate_tmp_table。在instantiate_tmp_table中也会看完如下逻辑:

当然我对其他 函数的认知还非常有限,如果再说吧。

而对于tmp_table_size和max_heap_table_size 的比较其他 逻辑依然在create_tmp_table函数中如下:

什么都有有朋友合适明白:

为了一定经常出现其他 文件我设置和测试如下:

终止在tmp目录下看完如下文件

当然create_tmp_table函数代码涵盖曾经一段逻辑如下来证明里面的描述,这段代码一齐标记了internal_tmp_disk_storage_engine参数的作用,如下:

确实最终的建立那先 样的组织组织结构临时表什么都有有我通过instantiate_tmp_table函数进行判断的,可能有兴趣能必须将断点插进去进行各种测试,我水平有限,必须抛砖引玉。为什么么让 从我合适的测试来看建立组织组织结构临时表的情况报告比官方文档列出来的多得多比如:show table status,这是栈帧插进这里供如果参考一下: