以MySQL 8.0 来说,通过查看 8.0 的官方文档得知,8.0 的临时表空间分为会话临时表空间和全局临时表空间,会话临时表空间存储用户创建的临时表和当 InnoDB 配置为磁盘内部临时表的存储引擎时由优化器创建的内部临时表,当会话断开连接时,其临时表空间将被截断并释放回池中;也就是说,在 8.0 中有一个专门的会话临时表空间,当会话被杀掉后,可以回收磁盘空间;而原来的 ibtmp1 是现在的全局临时表空间,存放的是对用户创建的临时表进行更改的回滚段,在 5.7 中 ibtmp1 存放的是用户创建的临时表和磁盘内部临时表;
也就是在 8.0 和 5.7 中 ibtmp1 的用途发生了变化,5.7 版本临时表的数据存放在 ibtmp1 中,在 8.0 版本中临时表的数据存放在会话临时表空间,如果临时表发生更改,更改的 undo 数据存放在 ibtmp1 中;
实验验证:将之前的查询结果保存成临时表,对应会话是 45 号,通过查看对应字典表,可知 45 号会话使用了 temp_8.ibt 这个表空间,通过把查询保存成临时表,可以用到会话临时表空间,如下图:
下一步杀掉 45 号会话,发现 temp_8.ibt 空间释放了,变为了初始大小,状态为非活动的,证明在 mysql8.0 中可以通过杀掉会话来释放临时表空间。
总结:在 mysql5.7 时,杀掉会话,临时表会释放,但是仅仅是在 ibtmp 文件里标记一下,空间是不会释放回 *** 作系统的。如果要释放空间,需要重启数据库;在 mysql8.0 中可以通过杀掉会话来释放临时表空间。
可腾讯手机管家小火箭清理加速内存,平日里,小火箭会默默无闻的待在手机的一个角落,它会直观且随时随地的告诉你当前内存已用情况。当需要时,只要将图标向下拖动到发射加速台并松手发射,它就会立刻燃烧掉手机内存中的进行,并尽可能多的释放手机内存空间,从而在很大程度上提升手机的速度。SQLserver 和Mysql的区别为:开发公司不同、开发工具包搭配不同、开放性不同。
一、开发公司不同
1、SQLserver:SQLserverr是由Microsoft开发和推广。
2、Mysql:Mysql由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。
二、开发工具包搭配不同
1、SQLserver:SQLserver能与 Microsoft Visual Studio、Microsoft Office System以及开发工具包搭配。
2、Mysql:Mysql不能与 Microsoft Visual Studio、Microsoft Office System以及开发工具包搭配。
三、开放性不同
1、SQLserver:SQLserver不是开放源码软件
2、Mysql:Mysql是开放源码软件。
SQL Server的特点是可信任。使得公司可以以很高的安全性、可靠性和可扩展性来运行他们最关键任务的应用程序;高效。使得公司可以降低开发和管理他们的数据基础设施的时间和成本;智能。提供了一个全面的平台,可以在用户需要的时候给他发送观察和信息。
Mysql的特点是其体积小、速度快、总体拥有成本低,尤其是开放源码。一般中小型网站的开发都选择 MySQL 作为网站数据库。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)