mysql库怎么查表空间,如何查询mysql库的剩余空间

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、查询整个mysql数据库,整个库的大小;单位转换为MB。

select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data  from information_schema.TABLES

2、查询mysql数据库,某个库的大小;

select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data

from information_schema.TABLES

where table_schema = 'testdb'

3、查看库中某个表的大小;

select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data

from information_schema.TABLES

where table_schema = 'testdb'

and table_name = 'test_a';

4、查看mysql库中,test开头的表,所有存储大小;

select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data

from information_schema.TABLES

where table_schema = 'testdb'

and table_name like 'test%';

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

1.

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

在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 数据目录下有一个名为 ibdata1 的文件,可以保存一张或者多张表。

923275 12M -rw-r----- 1 mysql mysql 12M 3月 18 10:42 ibdata1

这个文件就是 MySQL 的系统表空间文件,默认为 1 个,可以有多个,只需要在配置文件 my.cnf 里面这样定义即可。

innodb_data_file_path=ibdata1:200M;ibdata2:200M:autoextend:max:800M系统表空间不仅可以是文件系统组成的文件,也可以是非文件系统组成的磁盘块,比如裸设备,定义也很简单innodb_data_file_path=/dev/nvme0n1p1:3Gnewraw;/dev/nvme0n1p2:2Gnewraw

系统表空间里都有些啥内容?

具体内容包括:double writer buffer、 change buffer、数据字典(MySQL 8.0 之前)、表数据、表索引。

那 MySQL 为什么现在主流版本默认都不是系统表空间?

究其原因,系统表空间有三个最大的缺点:原因 1:无法做到自动收缩磁盘空间,造成很大的空间浪费。即使它包含的表都被删掉,这部分空间也不会自动释放。

二、单表空间

单表空间不同于系统表空间,每个表空间和表是一一对应的关系,每张表都有自己的表空间。具体在磁盘上表现为后缀为 .ibd 的文件。比如表 t1,对应的表空间文件为 t1.ibd917107 96K -rw-r----- 1 mysql mysql 96K 3月 18 16:13 t1.ibd

单表空间如何应用到具体的表呢?

有两种方式:方式 1:在配置文件中开启。在配置文件中开启单表空间设置参数 innodb_filer_per_table,这样默认对当前库下所有表开启单表空间。innodb_file_per_table=1另外也可以直接建表时指定单表空间mysql create table t1 (id int, r1 char(36)) tablespace innodb_file_per_table;

Query OK, 0 rows affected (0.04 sec)

单表空间除了解决之前说的系统表空间的几个缺点外,还有其他的优点,详细如下:

1. truncate table 操作比其他的任何表空间都快;

2. 可以把不同的表按照使用场景指定在不同的磁盘目录;

比如日志表放在慢点的磁盘,把需要经常随机读的表放在 SSD 上等。

mysql create table ytt_dedicated (id int) data directory = '/var/lib/mysql-files';

Query OK, 0 rows affected (0.04 sec)3. 可以用 optimize table 来收缩或者重建经常增删改查的表。一般过程是这样的:建立和原来表一样的表结构和数据文件,把真实数据复制到临时文件,再删掉原始表定义和数据文件,最后把临时文件的名字改为和原始表一样的。

三、通用表空间

通用表空间先是出现在 MySQL Cluster 里,也就是 NDB 引擎。从 MySQL 5.7 引入到 InnoDB 引擎。通用表空间和系统表空间一样,也是共享表空间。每个表空间可以包含一张或者多张表,也就是说通用表空间和表之间是一对多的关系。


文章名称:mysql库怎么查表空间,如何查询mysql库的剩余空间
当前URL:http://cdiso.cn/article/dsgpsjd.html

其他资讯