MySql--数据目录

数据库和文件系统的关系

  • 1.存储引擎需要依赖操作系统的文件系统进行数据的读取和落盘

MySQL数据目录

  • 1.MySQL服务器程序在启动时会到文件系统的某个目录下加载一些文件
  • 2.在运行过程中产生的数据也都会存储到这个目录下的某些文件中
  • 3.这些目录就是数据目录

数据目录和安装目录的区别

  • 1.安装目录主要是mysql启动时候需要加载的一些目录
  • 2.数据目录是mysql运行时候需要的目录

如何确定MySQL中的数据目录

  • 1.通过SHOW VARIABLES LIKE 'datadir'查询数据目录的位置

数据目录的结构

数据库在文件系统中的表示(即数据库相关信息在datadir)

  • 1.每个数据库都对应数据目录下的一个子目录,或者说对应一个文件夹
  • 2.子目录和数据库名同名
  • 3.同时在子目录下创建一个名为db.opt的文件--该文件包含了数据库的相关属性(字符集和比较规则等)

表在文件系统中的表示

  • 1.表可以分为表的结构定义和表中的数据
  • 2.表结构--表的名称,列数,列的类型,约束条件和索引等,采用了表名.frm保存该信息
  • 3.表数据针对不同的引擎采用不同的方式处理

InnoDB是如何存储表数据的

  • 1.InnoDB是采用页为基本单位来管理存储空间的
  • 2.一个索引就是一个B+树,树的每个节点就是一个数据页,页之间只需要逻辑连续即可
  • 3.通过表空间(文件空间)来管理整个数据存储空间
  • 4.一个表空间内部包含很多的页

表空间类型

  • 1.系统表空间(system tablespace)
  • 2.独立表空间(file-per-table tablespace)
  • 3.其他类型的表空间:通用表空间(general tablespace)、undo表空间(undo tablespace)、临时表空间(temporary tablespace)

系统表空间(system tablespace)

  • 1.对应文件系统上一个或者多个实际的文件
  • 2.默认情况下会在数据目录下创建一个ibdata1,该文件会随着数据的增加自动扩展
  • 3.通过innodb_data_file_path=data1:512M;data2:512M:autoextend可以配置多个文件并且指定初始大小
  • 4.也可以吧系统表空间对应的文件路径配置到其他路径(即不在数据目录下)
  • 5.在一个MySQL服务器中,系统表空间只有一份,虽然文件可以有多个,在mysql5.5.7-5.6.6 数据都会默认存储到系统表空间

独立表空间

  • 1.在MySQL5.6.6以及之后的版本中,InnoDB并不会默认的把各个表的数据存储到系统表空间中,而是为每一个表建立一个独立表空间
  • 2.独立表空间的名称---表名.ibd
  • 3.一般和表结构放在一个目录下。
  • 4.通过innodb_file_per_table=0来指定启动系统表空间还是独立表空间,0代表启用系统空间,1代表独立子空间。
  • 5.上述参数只对新建的表起作用。

视图在文件系统中的表示

  • 1.MySQL中的视图其实是虚拟的表,所以在存储视图的时候是不需要存储真实的数据的,只需要把它的结构存储起来就行了。
  • 2.描述视图结构的文件也会被存储到所属数据库对应的子目录下边,只会存储一个视图名.frm的文件。

数据目录下的其他文件

  • 1.服务器进程文件--MySQL服务器会把自己的进程ID写入到一个文件中。
  • 2.服务器日志文件--常规的查询日志、错误日志、二进制日志、redo日志
  • 3.默认/自动生成的SSL和RSA证书和密钥文件。

文件系统对数据库的影响

  • 1.数据库名称和表名称不得超过文件系统所允许的最大长度。
  • 2.特殊字符的问题--为了避免因为数据库名和表名出现某些特殊字符而造成文件系统不支持的情况,MySQL会把数据库名和表名中所有除数字和拉丁字母以外的所有字符在文件名里都映射成 @+编码值的形式作为文件名
  • 3.文件长度受文件系统最大长度限制

MySQL系统数据库简介

mysql

  • 它存储了MySQL的用户账户和权限信息,一些存储过程、事件的定义信息,一些运行过程中产生的日志信息,一些帮助信息以及时区信息等

information_schema

  • 保存着MySQL服务器维护的所有其他数据库的信息,比如有哪些表、哪些视图、哪些触发器、哪些列、哪些索引

performance_schema

  • 保存MySQL服务器运行过程中的一些状态信息,算是对MySQL服务器的一个性能监控。包括统计最近执行了哪些语句,在执行过程的每个阶段都花费了多长时间,内存的使用情况等等信息

sys

  • 主要是通过视图的形式把information_schema和performance_schema结合起来,让程序员可以更方便的了解MySQL服务器的一些性能信息。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,047评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,807评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,501评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,839评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,951评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,117评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,188评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,929评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,372评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,679评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,837评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,536评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,168评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,886评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,129评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,665评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,739评论 2 351

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,266评论 0 9
  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 7,790评论 5 116
  • 今天看到一位朋友写的mysql笔记总结,觉得写的很详细很用心,这里转载一下,供大家参考下,也希望大家能关注他原文地...
    信仰与初衷阅读 4,726评论 0 30
  • 转 # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    吕品㗊阅读 9,714评论 0 44
  • 为了充分发挥MySQL的性能并顺利地使用,就必须理解其设计。MySQL的灵活性体现在很多方面。例如,你可以通过配置...
    李文文丶阅读 1,163评论 0 4