mysql 查看表v空间自增涨_mysql文件结构及InnoDB引擎表空间整理

一、Mysql 的目录结构

f4fda04cc4352d2969f8394f36ca42c7.png

1、bin目录

用于放置一些可执行文件,如mysql.exe、mysqld.exe、mysqlshow.exe等。

2、data目录

用于放置一些日志文件及数据库

3、include目录

用于存放一些头文件,如:mysql.h、mysql_ername.h等。

4、lib目录

用于放置一些库文件

4、docs目录

存放一些目录

5、share目录

用于存放字符集、语言等信息

6、my.ini

是MySQL数据库中使用的配置文件,linux下是my.cnf

7、my-huge.ini

适合超大型数据库使用的配置文件

8、my-large.ini

适合大型数据库的配置文件

9、my-medium.ini

适合中型数据库的配置我呢见

10、my-small.ini

适合小型数据库的配置文件

11、my-template.ini

配置文件模板、Mysql配置向导将该配置文件中的选项写入my.ini文件

12、my-innodb-heavy-4G.ini

示该配置文件只对于InnoDB存储引擎有效,而且服务器的内存不能小于4GB

二、日志文件

默认都存储在datadir指定的目录,如windows下的data目录,linux下的/var/lib/mysql目录

1、错误日志

记录mysql启动、停止、运行过程中发生的各种严重错误信息。

可以使用--log-error[=file_name]参数指定日志位置

log-error=/var/log/mysqld.log

2、通用日志

记录建立客户端连接和执行的语句,而binglog不记录select语句。

--general_log[={0关闭|1启动}]

--log-output[=value] value的值可以是table,file,none的一个或多个的组合,中间用逗号进行分割

--general_log_file=file_name

--log[=file_name]或-l [file_name]

datadir目录下的,默认文件名为host_name.log

如果想在session级别控制日志是否被记录,则通过在session中设置参数sql_log_off为on或off来进行控制。

3、二进制日志

类似于Oracle的归档日志,记录所有的DDL和dml语句,但不包含select语句,语句以事件形式保存,用于主从复制

默认不启用,启用使用参数--log-bin[=file_name]

log-bin=/var/log/mysql-bin/bin.log

server-id=2

4、慢查询日志

记录执行时间超过long_query_time秒的所有查询

slow_query_log=1|0 设置启动1和关闭0

slow_query_log_file=/var/log/mysql-slow/slow.log 指定慢查询日志路径

long_query_time=3

使用 ../bin/mysqldumpslow faspdev-slow.log 进行慢查询日志汇总处理

5、刷新日志方法

1)flush logs

2)mysqladmin flush-logs

3)mysqladmin refresh

二、数据文件结构

1、表对象数据文件

数据文件类型取决于存储引擎

frm文件 表对象结构定义文件,与引擎无关

db.opt 此文件在每一个自建的库里都会有,记录这个库的默认使用的字符集和校验规。

trg 触发器文件

InnoDB引擎数据文件:

由于该存储引擎在事务上具有优势,即支持具有提交、回滚及崩溃恢复能力等事务特性,所以比MyISAM存储引擎占用更多的磁盘空间。因此当需要频繁的更新、删除操作,同时还对事务的完整性要求较高,需要实现并发控制,建议选择。

分为共享表空间ibdataX和独立表空间ibd文件,存放表数据、索引

共享表空间只有.frm和.ibdata1文件,存放InnoDB系统信息、用户表、索引

独立表空间包含.frm和.ibd文件

ib_logfileX 日志文件

MyISAM引擎数据文件:

由于该存储引擎不支持事务、也不支持外键,所以访问速度较快。因此当对事务完整性没有要求并以访问为主的应用适合使用该存储引擎。

MYD文件 MyISAM数据文件,全称.mydata

MYI文件 MyISAM索引文件,全称.myindex

LOG文件 日志文件

其他引擎数据文件:

CSV文件 CSV引擎数据文件

ARZ文件 ARCHIVE引擎数据文件

MEMORY存储引擎存储数据的位置是内存,因此访问速度最快,但是安全上没有保障。适合于需要快速的访问或临时表。

2、pid文件/sock文件

pid文件是mysqld应用程序在Unix/Linux环境下的一个进程文件,和许多其他Unix/Linux服务端程序一样,它存放着自己的进程id

socket文件也是在Unix/Linux环境下才有的,用户在Unix/Linux环境下客户端连接可以不通过TCP/IP网络而直接使用Unix Socket来连接mysql.

三、默认数据库

mysql mysql系统数据库,存放用户信息

test 测试数据库,空的数据库

performance_schema 存放设置表、线程记录、历史事件记录、事件统计

四、innodb表空间

1.innodb表空间存储结构

cdf7e6683d5c8b9203fd9da88ebf0155.png

段,区均为逻辑概念,并且段管理由innodb存储引擎内部完成!

区,区是由连续的页(Page)组成的空间,在任何情况下每个区大小都为1MB,为了保证页的连续性,InnoDB存储引擎每次从磁盘一次申请4-5个区

页,页是innodb存储引擎磁盘管理的最小单位,页的大小默认是16KB,可以由innodb_page_size参数设置,设置完成后,不可以对其再次进行修改。

2.innodb中表空间可以分为以下几种:

系统表空间

独立表空间

undo表空间

临时表空间(temporary tablespace)

通用表空间(general tablespace)

3.系统表空间(即共享表空间)

show variables like "innodb_data_file_path";

查询结果:innodb_data_file_path | ibdata1:12M:autoextend

#ibdata1:指定默认文件名#12M:指定默认文件大小#autoextend: 表示文件是自增的,当超过12M时,会自动增加大小,没有指定表空间的位置,默认是在数据库目

#注意添加文件时的格式写法

innodb_data_file_path=ibdata1:100M:autoestend;/data/ibdata2:200M

2.独立表空间

在配置文件(my.cnf)中设置: innodb_file_per_table=[1|0]

优点:

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

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

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

4.空间可以回收

缺点:

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

2.相比较之下,使用独占表空间的效率以及性能会更高一点。

3.通用表空间

通用表空间是在MySQL5.7中添加的一个新功能。可以数据库中指定的某几张表的数据写到同一个表空间,类似于系统的共享存储空间。

#创建通用表空间

mysql> create tablespace ts add datafile "ts1.ibd" engine=innodb;

Query OK, 0 rows affected (0.04 sec)

#datafile若是使用绝对路径,则可以指定datadir之外的目录,默认是在datadir指定的目录

#创建的表空间已经存在

mysql> system ls -lh /data/mysql/ts1.ibd

-rw-r----- 1 mysql mysql 64K Oct 23 06:42 /data/mysql/ts1.ibd

#把多张表指向一个表空间

mysql> create table test1(id int, name varchar(20)) tablespace=ts;

Query OK, 0 rows affected (0.02 sec)

mysql> create table test2(id int, name varchar(20)) tablespace=ts;

Query OK, 0 rows affected (0.02 sec)

mysql> create table test3(id int, name varchar(20)) tablespace=ts;

Query OK, 0 rows affected (0.01 sec)

#使用show create table 语句可以发现上面三张表的表空间均为ts。

#删除表空间

mysql> create tablespace ts2 add datafile "ts2.ibd" engine=innodb;

Query OK, 0 rows affected (0.01 sec)

mysql> drop tablespace ts2;

Query OK, 0 rows affected (0.02 sec)

4.undo表空间

MySQL5.6可以使用独立undo表空间,并放到单独的文件目录下。采用独立undo表空间,再也不用担心undo会把 ibdata1 文件搞大。可以把undo文件部署到单独的高速存储设备上。

在数据库初始化的时候就使用如下三个参数

innodb_undo_tablespaces=3 #设置为3个

innodb_undo_logs=128 #默认128个回滚段

innodb_undo_directory =mysql_home/undo

5.临时表空间

临时表空间就是存放临时表的表空间

MySQL 5.7对于InnoDB存储引擎的临时表空间做了优化。在MySQL 5.7之前,INNODB引擎的临时表都保存在ibdata里面,而ibdata的贪婪式磁盘占用导致临时表的创建与删除对其他正常表产生非常大的性能影响。

优化:

MySQL 5.7 把临时表的数据以及回滚信息(仅限于未压缩表)从共享表空间里面剥离出来,形成自己单独的表空间,参数为innodb_temp_data_file_path。

在MySQL 5.7 中把临时表的相关检索信息保存在系统信息表中:information_schema.innodb_temp_table_info. 而MySQL 5.7之前的版本想要查看临时表的系统信息是没有太好的办法。可以使用select * frominformation_schema.innodb_temp_table_info 查询临时表。

临时表

临时表顾名思义,就是临时的,用完销毁掉的表。 数据既可以保存在临时的文件系统上,也可以保存在固定的磁盘文件系统上。

临时表有下面几种:

1、全局临时表

这种临时表从数据库实例启动后开始生效,在数据库实例销毁后失效。在MySQL里面这种临时表对应的是内存表,即memory引擎。

2、会话级别临时表

这种临时表在用户登录系统成功后生效,在用户退出时失效。在MySQL里的临时表指的就是以create temporary table 这样的关键词创建的表。

3、事务级别临时表

这种临时表在事务开始时生效,事务提交或者回滚后失效。 在MySQL里面没有这种临时表,必须利用会话级别的临时表间接实现。

4、检索级别临时表

这种临时表在SQL语句执行之间产生,执行完毕后失效。 在MySQL里面这种临时表不是很固定,跟随MySQL默认存储引擎来变化。比如默认存储引擎是MyISAM,临时表的引擎就是MyISAM,并且文件生成形式以及数据运作形式和MyISAM一样,只是数据保存在内存里;如果默认引擎是INNODB,那么临时表的引擎就是INNODB,此时它的所有信息都保存在共享表空间ibdata里面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352636.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python随笔-切片

Python为取list部分元素提供了切片操作,list[begin:end]获取list的[begin,end)区间元素。 可以用负数索引。tuple、str都是list的一种,所以也适用。可以用::n抽取间隔为n的元素。可以用于复制list。arr [0, 1, 2, 3, 4, 5] print(arr[1:3]) print(arr[1…

隐马尔可夫模型 HMM 原理及实现

简介 隐马尔可夫模型(Hidden Markov Model,HMM)创立于20世纪70年代。主要用于行为识别,语音识别,文字识别等。 原理简述 隐马尔可夫模型由五个部分组成:状态空间S,观测空间O,初始状…

python的print

转载:http://www.pythonclub.org/python-basic/print使用print输出各型的 字符串整数浮点数出度及精度控制 strHello Hello Python print strHello #输出结果:Hello Python #直接出字符串1.格式化输出整数python print也支持参数格式化,与C言的printf似…

python适合开发游戏吗_用python能制作游戏吗

展开全部 能,但不适合2113。 用锤子能造5261汽车吗? 谁也没法说不能吧?历史上也确实曾4102经有些汽车,是用锤子造出1653来的。但一般来说,还是用工业机器人更合适对吗? 比较大型的,使用Python的…

method-dispatch/

https://shipilev.net/blog/2015/black-magic-method-dispatch/转载于:https://www.cnblogs.com/WCFGROUP/p/9744045.html

业务的可变性和不可变性分析_不可变性真的意味着线程安全吗?

业务的可变性和不可变性分析我经常阅读有关“如果对象是不可变的,则它是线程安全的”的文章。 实际上,我从未找到过一篇使我相信不可变意味着线程安全的文章。 即使是Brian Goetz的Java Concurrency in Practice一书中关于不变性的一本书,也没…

linux的system () 函数详解

system&#xff08;执行shell 命令&#xff09; 相关函数 fork&#xff0c;execve&#xff0c;waitpid&#xff0c;popen 表头文件 &#xff03;i nclude<stdlib.h> 定义函数 int system(const char * string); 函数说明 system()会调用…

隐马尔科夫模型C#语言算法实现

开发工具&#xff1a; Visual Studio v2010 .NET Framework 4 Client Profile 版本历史&#xff1a; V1.1 2011年06月09日 修正UMDHMM在Baum-Welch算法中存在的模型参数调整错误。 V1.0 2011年06月08日 将C语言实现的隐马尔科夫模型算法&#xff08;UMDHMM&#xff09;改为C#语…

绘制条形图python_小白学Python(13)——pyecharts 绘制 柱状图/条形图 Bar

Bar-基本示例 1 from example.commons importFaker2 from pyecharts importoptions as opts3 from pyecharts.charts importBar4 5 bar(6 Bar()7 .add_xaxis(Faker.choose())8 .add_yaxis("商家A", Faker.values())9 .add_yaxis("商家B", Faker.values())1…

初进JAVA职场面试小技巧:一个老学长的吐血之作!

看着一批批小白的遭遇&#xff0c;有些无奈&#xff0c;又跟我年轻时有些类似。今天正好有点时间&#xff0c;给你几个建议。 1、在结业之前一定要把自己参与过的项目仔细审视一下&#xff0c;一点要特别熟悉项目的流程功能&#xff0c;另外也要重视自己做过的模块&#xff0c;…

阿里云飞天系统的技术架构(转)

阿里云有以下五大优势&#xff1a;中国万网&#xff0c;提供虚拟主机托管的服务&#xff0c;而且还提供域名等服务&#xff0c;其客户群非常庞大。淘宝、阿里巴巴&#xff08;内部称&#xff1a;B2B&#xff09;、支付宝等其他子公司&#xff1a;有大量的数据分析业务&#xff…

Jenkins 流水线 获取git 分支列表_基于Jenkins的DevOps流水线实践

讲师介绍课程寄语我认为Jenkins是对我这些年运维经验的总结&#xff0c;起初我们运维同学都是编写脚本完成一些自动化的操作。而有了Jenkins我们可以将我们的运维经验与Jenkins设计理念融合完成自动化运维平台。全程最佳实践&#xff0c;Pipeline as Code&#xff0c;打通DevOp…

Java微服务:蛋糕是骗人的,但您不能忽略它

构建微服务实际上意味着什么&#xff1f; 通过微服务框架的眼光回答 忽略微服务的趋势已变得不可能。 有些人会说这只是另一个难以忍受的流行语&#xff0c;而另一些人会背诵打破巨石的优势或采取逆势方法并关注负面因素。 在本文中&#xff0c;我们将深入了解我们拥有的框架…

隐马尔科夫模型C#类库调用示例

[c-sharp] view plaincopyprint?using System; using Splash; namespace SplashCheck { class TestHMMCS { enum Weather { Sunny, Cloudy, Rainy }; // 隐藏状态&#xff08;天气&#xff09; enum Seaweed { Dry, Dryish, Damp, Soggy }…

芯片,开源,数学,计算机

近代数学好像没什么数学定理是中国人命名的&#xff0c;有也是凤毛麟角是广泛意义上的华人命名的。开源Linux内核好像也没有几行代码是中国人贡献的&#xff0c;通用CPU芯片美帝的&#xff0c;计算机美帝发明的&#xff0c;内存/硬盘/显示器&#xff0c;三星台湾造。20年前我大…

C#之继承

本文意在巩固基础知识&#xff0c;并不是对其进行深入剖析&#xff0c;如若对各位高手没有什么作用&#xff0c;请绕过。本文为原创文&#xff0c;所有示例均是博主测试过的&#xff0c;欢迎大家批评指正&#xff0c;如有转载请标明出处&#xff0c;谢谢。继承、封装和多态是面…

python的requests模块功能_python中requests模块的使用方法

本文实例讲述了python中requests模块的使用方法。分享给大家供大家参考。具体分析如下&#xff1a; 在HTTP相关处理中使用python是不必要的麻烦&#xff0c;这包括urllib2模块以巨大的复杂性代价获取综合性的功能。相比于urllib2,Kenneth Reitz的Requests模块更能简约的支持完整…

ODPS技术架构及应用实践

《程序员》杂志2014年10月刊《凌云》云计算大数据阿里云ODPShadoop摘要&#xff1a;ODPS是分布式的海量数据处理平台&#xff0c;提供了丰富的数据处理功能和灵活的编程框架。本文从ODPS面临的挑战、技术架构、Hadoop迁移到ODPS、应用实践注意点等方面带领我们初步了解了ODPS的…

ssh,scp带密码操作

1、远程执行&#xff0c;带密码参数 sshpass 安装命令&#xff1a; yum install sshpass 执行命令&#xff1a; sshpass -p "mima" ssh rootlocalhost --------参数小写p&#xff0c;密码mima 2、非22端口 ssh -p 9062 111.111.111…

junit 测试 dao_JUnit测试Spring Service和DAO(带有内存数据库)

junit 测试 dao这篇文章描述了如何为Spring Web Application的Services和DAO实现JUnit测试。 它建立在Spring MVC-Service-DAO-Persistence Architecture Example的基础上 。 从Github的Spring-Web-JPA-Testing目录中可以找到该示例。 提醒 测试装置 –固定状态&#xff0c;用…