mysql表空间怎么查,查看表空间sql

怎么通过SQL语句查看MySQL数据库的表空间状态

1.

睢县网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联公司自2013年创立以来到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司

查看数据库的索引空间大小

在MySQL

Workbench中运行以下SQL语句:

以GB为单位

SELECT

CONCAT(ROUND(SUM(index_length)/(1024*1024*1024),

6),

GB’)

AS

‘Total

Index

Size’

FROM

information_schema.TABLES

WHERE

table_schema

LIKE

‘database’;

以MB为单位

SELECT

CONCAT(ROUND(SUM(index_length)/(1024*1024),

6),

MB’)

AS

‘Total

Index

Size’

FROM

information_schema.TABLES

WHERE

table_schema

LIKE

‘database’;

其中,database是待查看数据库的名称,例如:lsqdb%。运行结果如下图所示:

2.

查看数据库的数据空间大小

在MySQL

Workbench中运行以下SQL语句:

以GB为单位

SELECT

CONCAT(ROUND(SUM(data_length)/(1024*1024*1024),

6),

GB’)

AS

‘Total

Data

Size’

FROM

information_schema.TABLES

WHERE

table_schema

LIKE

‘database’;

以MB为单位

SELECT

CONCAT(ROUND(SUM(data_length)/(1024*1024),

6),

MB’)

AS

‘Total

Data

Size’

FROM

information_schema.TABLES

WHERE

table_schema

LIKE

‘database’;

其中,database是待查看数据库的名称,例如:lsqdb%。运行结果如下图所示:

3.

查看数据库中所有表的信息

在MySQL

Workbench中运行以下SQL语句,查看数据库中所有表的表名、表行数、数据空间大小、索引空间大小和总大小:

SELECT

CONCAT(table_schema,’.’,table_name)

AS

‘Table

Name’,

table_rows

AS

‘Number

of

Rows’,

CONCAT(ROUND(data_length/(1024*1024),6),’

MB’)

AS

‘Data

Size’,

CONCAT(ROUND(index_length/(1024*1024),6),’

MB’)

AS

‘Index

Size’,

CONCAT(ROUND((data_length+index_length)/(1024*1024),6),’

MB’)

AS’Total

Size’

FROM

information_schema.TABLES

WHERE

table_schema

LIKE

‘database’;

其中,database是待查看数据库的名称,例如:lsqdb%。

MYSQL存储引擎InnoDB(三十五):临时表空间

InnoDB使用会话临时表空间和全局临时表空间。

在InnoDB配置为磁盘内部临时表的存储引擎时,会话临时表空间存储用户创建的临时表和优化器创建的内部临时表。从 MySQL 8.0.16 开始,用于磁盘内部临时表的存储引擎固定为InnoDB。(之前,存储引擎由internal_tmp_disk_storage_engine的值决定 )

在第一次请求创建磁盘临时表时会话临时表空间从临时表空间池中被分配给会话。一个会话最多分配两个表空间,一个用于用户创建的临时表,另一个用于优化器创建的内部临时表。分配给会话的临时表空间用于会话创建的所有磁盘临时表。当会话断开连接时,其临时表空间将被截断并释放回池中。服务器启动时会创建一个包含 10 个临时表空间的池。池的大小永远不会缩小,并且表空间会根据需要自动添加到池中。临时表空间池在正常关闭或中止初始化时被删除。会话临时表空间文件在创建时大小为 5 页,并且具有.ibt文件扩展名。

InnoDB为会话临时表空间保留了40 万个空间 ID。因为每次启动服务器时都会重新创建会话临时表空间池,所以会话临时表空间的空间 ID 在服务器关闭时不会保留,并且可以重复使用。

innodb_temp_tablespaces_dir 变量定义了创建会话临时表空间的位置。默认位置是 #innodb_temp数据目录中的目录。如果无法创建临时表空间池,则会拒绝启动。

在基于语句的复制 (SBR) 模式下,在副本上创建的临时表驻留在单个会话临时表空间中,该临时表空间仅在 MySQL 服务器关闭时被截断。

INNODB_SESSION_TEMP_TABLESPACES 表提供有关会话临时表空间的元数据。

该INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO表提供有关在InnoDB实例中处于活动状态的用户创建的临时表的元数据。

全局临时表空间 ( ibtmp1) 存储对用户创建的临时表所做的更改的回滚段。

innodb_temp_data_file_path 变量定义了全局临时表空间数据文件的相对路径、名称、大小和属性。如果没有为innodb_temp_data_file_path指定值 ,则默认行为是创建innodb_data_home_dir目录中命名为ibtmp1的单个自动扩展数据文件。初始文件大小略大于 12MB。

全局临时表空间在正常关闭或中止初始化时被删除,并在每次服务器启动时重新创建。全局临时表空间在创建时会收到一个动态生成的空间 ID。如果无法创建全局临时表空间,则拒绝启动。如果服务器意外停止,则不会删除全局临时表空间。在这种情况下,数据库管理员可以手动删除全局临时表空间或重新启动 MySQL 服务器。重新启动 MySQL 服务器会自动删除并重新创建全局临时表空间。

全局临时表空间不能驻留在原始设备上。

INFORMATION_SCHEMA.FILES提供有关全局临时表空间的元数据。发出与此类似的查询以查看全局临时表空间元数据:

默认情况下,全局临时表空间数据文件会自动扩展并根据需要增加大小。

要确定全局临时表空间数据文件是否正在自动扩展,请检查以下 innodb_temp_data_file_path 设置:

要检查全局临时表空间数据文件的大小,请使用与此类似的查询来查询INFORMATION_SCHEMA.FILES表:

TotalSizeBytes显示全局临时表空间数据文件的当前大小。

或者,检查操作系统上的全局临时表空间数据文件大小。全局临时表空间数据文件位于 innodb_temp_data_file_path 变量定义的目录中。

要回收全局临时表空间数据文件占用的磁盘空间,请重新启动 MySQL 服务器。重新启动服务器会根据innodb_temp_data_file_path定义的属性删除并重新创建全局临时表空间数据文件 。

要限制全局临时表空间数据文件的大小,请配置 innodb_temp_data_file_path以指定最大文件大小。例如:

配置 innodb_temp_data_file_path 需要重新启动服务器。

linux系统中mysql数据库怎么查看表空间

linux系统进入mysql数据库的方法:

连接MYSQL:

格式: mysql -h主机地址 -u用户名 -p用户密码

1、连接到本机上的MYSQL。

首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql

2、连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:

mysql -h110.110.110.110 -uroot -pabcd123(注:u与root可以不用加空格,其它也一样)

3、退出MYSQL命令: exit (回车)

一个建库和建表以及插入数据的实例:

create database school; //建立库SCHOOL

use school; //打开库SCHOOL

create table teacher //建立表TEACHER

(

id int(3) auto_increment not null primary key, //id设置为主关键字,并自动设值,也就是添加的时候,你不必向ID字段写内容

name char(10) not null,

address varchar(50) default '深圳', //设置默值为深圳

year date

); //建表结束

//以下为插入字段

insert into teacher values('','glchengang','建平一中','1976-10-10'); //ID不用写内容

insert into teacher values('','jack','建平一中','1975-12-23');

mysql 表空间及索引的查看方法

1.查看索引

(1)单位是GB

SELECT

CONCAT(ROUND(SUM(index_length)/(1024*1024*1024),

2),

'

GB')

AS

'Total

Index

Size'

FROM

information_schema.TABLES

WHERE

table_schema

LIKE

'database';

+------------------+

|

Total

Index

Size

|

+------------------+

|

1.70

GB

|

+------------------+

(2)单位是MB

SELECT

CONCAT(ROUND(SUM(index_length)/(1024*1024),

2),

'

MB')

AS

'Total

Index

Size'

FROM

information_schema.TABLES

WHERE

table_schema

LIKE

'database';

其中“database”为你所要查看的数据库

2.查看表空间

SELECT

CONCAT(ROUND(SUM(data_length)/(1024*1024*1024),

2),

'

GB')

AS

'Total

Data

Size'

FROM

information_schema.TABLES

WHERE

table_schema

LIKE

'database';

+-----------------+

|

Total

Data

Size

|

+-----------------+

|

3.01

GB

|

+-----------------+

3.查看数据库中所有表的信息

SELECT

CONCAT(table_schema,'.',table_name)

AS

'Table

Name',

CONCAT(ROUND(table_rows/1000000,2),'M')

AS

'Number

of

Rows',

CONCAT(ROUND(data_length/(1024*1024*1024),2),'G')

AS

'Data

Size',

CONCAT(ROUND(index_length/(1024*1024*1024),2),'G')

AS

'Index

Size'

,

CONCAT(ROUND((data_length+index_length)/(1024*1024*1024),2),'G')

AS'Total'FROM

information_schema.TABLES

WHERE

table_schema

LIKE

'database';


当前文章:mysql表空间怎么查,查看表空间sql
文章位置:http://abwzjs.com/article/dsshehg.html