Mysql数据目录(3)表数据结构myISAM(二十六)

2023年 8月 12日 22.6k 0

前面说了innoDB表在mysql5.6.6之前存储在系统空间,5.6.6之后存储在独立的空间,表结构存储在.frm文件,里面记录着字符集,行规则等,表数据存储在.ibd里面,里面存储着数据和索引

myISAM表存储数据

myISAM表不同的是,上面说的innoDB因为聚簇索引b+树节点是索引即数据,数据即索引,索引和数据是存在同一个文件的.ibd。但myISAM数据存放在 数据文件,索引存放在索引文件,当我们在指定数据库建立myISAM表时,会有三个文件:test.frm,test.MYD,test.MYI。其中test.MYD是数据文件,.MYI是索引存放索引的索引文件。

视图在文件中的表示

我们都指定,视图其实是虚拟的表,查询的是指定表的本身,索引视图并没有真实的数据,只需要存储视图的结构,如果创建视图 ,则会生成一个视图名.frm的文件。

其他文件

除了上述说的文件外,数据库还存着为了mysql能高效运行的额外文件,主要包括:

服务器进程文件:我们知道,每运行一个mysql服务器,都意味着启动一个进程,mysql会吧进程id写入一个特定的文件。

服务器日志文件:在服务器运行时候,会产生各种各样的日志,比如查询日志,错误日志,二进制日志,redo日志等,这些日志会有各种用途,以后的文章会详细说明。

默认生成SSL和RSA证书和秘钥文件:主要是为了客户端和服务端安全通信生成的一些文件。

文件系统对数据库的影响(注意事项)

因为mysql生成的数据库,表等取的名字,会在文件系统中自动生成同名的目录级或者文件,导致文件系统的一些限制就会出现:

1)、数据库和表名称不能超过文件系统允许的大长度:因为文件名称和目录名称在文件系统上都会有限制,那取同名的mysql名称时候,肯定会被限制长度。

2)、特殊字符问题:mysql会自动除数字和拉丁字母外的所有字符在文件名称转成编码值来取文件名,比如‘test?’取同名的文件名因为?不属于数字和拉丁字母,.frm文件就是 test@003f.frm。

3)、文件大小受限系统文件大小:与文件名称同理,表数据里存储的大小,不可能超过文件系统限制的文件大小,所以还是会被受限制。

MYSQL数据库系统的简介

前面我们说了mysql有好几个数据库,这些数据库包含了mysql服务器运行过程所需要的一些运行状态信息。

Mysql:非常核心的数据库,存储着mysql用户账号和权限信息,一些存储过程,事件定义的信息,一些运行过程中产生的日志信息,一些帮助信息时区信息。

Information_schema:这个数据库保留着mysql服务器维护所有其他数据库信息,比如哪些表,哪些视图,哪些触发器,哪些列,哪些索引等。这些并不是真实的用户信息,是一些描述信息,有时候也称为元数据。

Performance_schema:主要保存着mysql服务器运行过程中的状态信息,算是对mysql性能监测。比如近执行哪些sql,查询时间耗费多少,内存使用情况等。

Sys:主要通过视图的方式吧information_schema和performance_schema结合起来,让我们更容易了解性能信息。

相关文章

Golang测试中的数据生成技巧

2023-08-07
数据
生成
技巧

SQL数据库触发器语法详解 (sql数据库触发器语法)

2023-08-06
数据库
语法
触发器

快速简单的删除Oracle数据库字段方法 (删除oracl数据库字段)

2023-08-06
数据库
字段
删除

如何打开社工数据库bak文件 (社工数据库bak怎么打开)

2023-08-06
数据库
打开
社工

实现数据库按拼音排序的方法和技巧 (数据库按拼音排序)

2023-08-06
数据库
排序
按拼音

探究Sybase数据库的性能和功能特点 (sybase数据库怎么样)

2023-08-06
数据库
性能
探究

SQL Server 如何成功建立自己的数据库? (sql server 建立数据库)

2023-08-06
数据库
自己的
建立

如何在Oracle中查看数据库触发器? (oracle查看数据库触发器)

2023-08-06
数据库
查看
触发器

数据库表数据量千万级,对性能影响有多大? (数据库表千万级数据量多吗)

2023-08-06
数据库
级数
有多大

如何使用Oracle按时间导出表数据库? (oracle按时间导出表数据库)

2023-08-06
数据库
导出
如何使用

数据库存储:帖子长期保存,信息永不丢失 (帖子存数据库)

2023-08-06
数据库
丢失
帖子

小米六数据库:全方位数据保障和优化方案 (小米六数据库)

2023-08-05
数据库
优化
小米

简易教程:使用dbe数据库实现数据连接 (dbe数据库 数据连接)

2023-08-05
数据
数据库
连接

Oracle实现多个数据库链接的简便方法 (oracle链接多个数据库)

2023-08-05
数据库
多个
链接

数据库索引:用哪种方法建立? (数据库索引用什么建的)

2023-08-05
索引
数据库
哪种

实现高效缓存同步:Redis数据库技巧大全 (redis 数据库缓存同步)

2023-08-05
数据库
缓存
同步

如何利用数据库实现高效的模糊匹配查询? (数据库实现模糊查询)

2023-08-05
查询
数据库
模糊

数据库有哪些安装方式和位置? (数据库是装在什么上)

2023-08-05
数据库
位置
装在

Lactmed数据库:妈妈们必备的喂养指南 (lactmed 数据库)

2023-08-05
数据库
必备
喂养

数据库设计中的主属性定义及作用 (数据库主属性是什么)

2023-08-05
数据库
定义
属性

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论