iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中怎么判断InnoDB表是独立表空间还是共享表空间
  • 497
分享到

MySQL中怎么判断InnoDB表是独立表空间还是共享表空间

2024-04-02 19:04:59 497人浏览 八月长安
摘要

Mysql中怎么判断InnoDB表是独立表空间还是共享表空间,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、独立表空间优缺点1. 优点:(1

Mysql中怎么判断InnoDB表是独立表空间还是共享表空间,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

一、独立表空间优缺点

1. 优点:

(1) 每个表都有自已独立的表空间。

(2) 每个表的数据和索引都会存在自已的表空间中。

(3) 可以实现单表在不同的数据库中移动。

(4) 空间可以回收(除drop table操作处,表空不能自已回收)

  • Drop table操作自动回收表空间,如果对于统计分析或是日值表,删除大量数据后可以通过:alter table TableName  engine=innodb;回缩不用的空间。

  • 对于使innodb-plugin的Innodb使用turncate table也会使空间收缩。

  • 对于使用独立表空间的表,不管怎么删除,表空间的碎片不会太严重的影响性能,而且还有机会处理。

2. 缺点

单表增加过大,如超过100个G。

二、判别数据表是独立表空间还是共享表空间

1. 通过ibd文件判别

如果表的存储引擎是InnoDB,而且表空间(tablespace)是共享表空间的话,那么数据库对应目录下面是没有"表名.ibd"文件的。独立表空间的表的话,则有"表名.ibd"文件。只是这个方法很笨,对于生产环境,大量的表通过这种方式判别,确实不是一个好方法。

--innodb_file_per_table=1 show variables like 'innodb_file_per_table'; create table Independent_tablespace(name  varchar(64)); ls -lrt independent_tablespace.* --innodb_file_per_table=0 show variables like 'innodb_file_per_table'; create table common_tablespace(name varchar(64)); ls -lrt independent_tablespace.*

MySQL中怎么判断InnoDB表是独立表空间还是共享表空间

MySQL中怎么判断InnoDB表是独立表空间还是共享表空间

2. INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES判别

mysql 5.6的INFORMATioN_SCHEMA.INNODB_SYS_TABLESPACES  关于这个系统表提供了有关表格的格式和存储特性,包括行格式,压缩页面大小位级别的信息(如适用),INNODB的表空间信息。

--共享表空间 SELECT TABLE_SCHEMA     ,TABLE_NAME     ,TABLE_TYPE     ,N'共享表空间' AS TABLE_SPACE     ,ENGINE     ,VERSION     ,TABLE_ROWS     ,AVG_ROW_LENGTH     ,CREATE_TIME     ,UPDATE_TIME FROM INFORMATION_SCHEMA.TABLES  T LEFT JOIN INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES I ON  CONCAT(T.TABLE_SCHEMA, '/',T.TABLE_NAME)=I.NAME WHERE I.NAME IS NULL  AND T.TABLE_SCHEMA='HWB' AND T.ENGINE='InnoDB'; --独立表空间 SELECT TABLE_SCHEMA     ,TABLE_NAME     ,TABLE_TYPE     ,N'独立表空间' AS TABLE_SPACE     ,ENGINE     ,VERSION     ,TABLE_ROWS     ,AVG_ROW_LENGTH     ,CREATE_TIME     ,UPDATE_TIME FROM INFORMATION_SCHEMA.TABLES  T INNER JOIN INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES I ON  CONCAT(T.TABLE_SCHEMA, '/',T.TABLE_NAME)=I.NAME WHERE T.TABLE_SCHEMA='HWB'  AND T.ENGINE='InnoDB';

MySQL中怎么判断InnoDB表是独立表空间还是共享表空间

3. INFORMATION_SCHEMA.INNODB_SYS_TABLES判别(推荐)

Mysql 5.7  的INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES中多了SPACE_TYPE字段,不过其值全部为Single,而INFORMATION_SCHEMA.INNODB_SYS_TABLES中也多了字段SPACE_TYPE,  其值有Single与System 分别表示独立表空间和共享表空间。

--独立表空间 SELECT * FROM  INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE SPACE_TYPE='Single'; SELECT TABLE_SCHEMA     ,TABLE_NAME     ,TABLE_TYPE     ,N'独立表空间' AS TABLE_SPACE     ,ENGINE     ,VERSION     ,TABLE_ROWS     ,AVG_ROW_LENGTH     ,CREATE_TIME     ,UPDATE_TIME FROM INFORMATION_SCHEMA.TABLES  T INNER JOIN INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES I ON  CONCAT(T.TABLE_SCHEMA, '/',T.TABLE_NAME)=I.NAME WHERE T.TABLE_SCHEMA='HWB'  AND T.ENGINE='InnoDB';  --共享表空间 SELECT TABLE_SCHEMA     ,TABLE_NAME     ,TABLE_TYPE     ,N'共享表空间' AS TABLE_SPACE     ,ENGINE     ,VERSION     ,TABLE_ROWS     ,AVG_ROW_LENGTH     ,CREATE_TIME     ,UPDATE_TIME FROM INFORMATION_SCHEMA.TABLES  T LEFT JOIN INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES I ON  CONCAT(T.TABLE_SCHEMA, '/',T.TABLE_NAME)=I.NAME WHERE I.NAME IS NULL  AND T.TABLE_SCHEMA='HWB' AND T.ENGINE='InnoDB';

MySQL中怎么判断InnoDB表是独立表空间还是共享表空间

看完上述内容,你们掌握MySQL中怎么判断InnoDB表是独立表空间还是共享表空间的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网数据库频道,感谢各位的阅读!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中怎么判断InnoDB表是独立表空间还是共享表空间

本文链接: https://www.lsjlt.com/news/57988.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL中怎么判断InnoDB表是独立表空间还是共享表空间
    MySQL中怎么判断InnoDB表是独立表空间还是共享表空间,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、独立表空间优缺点1. 优点:(1...
    99+
    2022-10-18
  • MySQL判别InnoDB表是独立表空间还是共享表空间的方法详解
    前言 InnoDB采用按表空间(tablespace)的方式进行存储数据, 默认配置情况下会有一个初始大小为10MB, 名字为ibdata1的文件, 该文件就是默认的表空间文件(tablespce file...
    99+
    2022-10-18
  • Mysql InnoDB 共享表空间和独立表空间
    前言:学习mysql的时候总是习惯性的和oracle数据库进行比较。在学习mysql InnoDB的存储结构的时候也免不了跟oracle进行比较。Oracle的数据存储有表空间、段、区、块、数据文件;m...
    99+
    2022-10-18
  • MySQL innoDB独立表空间和共享表空间的优点和缺点是什么
    本篇文章给大家分享的是有关MySQL innoDB独立表空间和共享表空间的优点和缺点是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 ...
    99+
    2022-10-18
  • MySQL innodb共享表空间新增表空间数据文件方法是怎么样的
    本篇文章给大家分享的是有关MySQL innodb共享表空间新增表空间数据文件方法是怎么样的 ,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 ...
    99+
    2022-10-18
  • mysql从共享表空间修改为单个表的表空间存储方式是什么
    本篇文章为大家展示了mysql从共享表空间修改为单个表的表空间存储方式是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 使用过MySQL的同学,刚开始接触最多...
    99+
    2022-10-19
  • MySQL InnoDB独立表空间模式的优点和缺点分别是什么
    这期内容当中小编将会给大家带来有关MySQL InnoDB独立表空间模式的优点和缺点分别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 ...
    99+
    2022-10-19
  • mysql收缩共享表空间的方法是什么
    这篇文章主要讲解了“mysql收缩共享表空间的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql收缩共享表空间的方法是什么”吧! ...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作