品易云推流 关闭
文章详情页
文章 > MySQL > mysql存储表的形式有哪两种?

mysql存储表的形式有哪两种?

MySQL存储

头像

小妮浅浅

2020-12-21 09:16:582319浏览 · 0收藏 · 0评论

在之前的文章中,我们已经对InnoDB有了比较好的掌握,下一步就是使用它对表进行存储。这里我们需要把定义和索引分开讨论,所以文件会根据情况存在.frm 或是 .ibd文件中。下面我们就具体的情况进行讨论,分别找寻存储在.frm 和 .ibd文件不同的方法。

1.frm 文件

无论在 MySQL 中选择了哪个存储引擎,所有的 MySQL 表都会在硬盘上创建一个 .frm 文件用来描述表的格式或者说定义;.frm 文件的格式在不同的平台上都是相同的。

`CREATE TABLE test_frm(`` ``column1 CHAR(5),`` ``column2 INTEGER``);`

当我们使用上面的代码创建表时,会在磁盘上的 datadir 文件夹中生成一个 test_frm.frm 的文件,这个文件中就包含了表结构相关的信息。

2 .ibd 文件

InnoDB 中用于存储数据的文件总共有两个部分,一是系统表空间文件,包括 ibdata1、ibdata2 等文件,其中存储了 InnoDB 系统信息和用户数据库表数据和索引,是所有表公用的。

当打开 innodb_file_per_table 选项时,.ibd 文件就是每一个表独有的表空间,文件存储了当前表的数据和相关的索引数据。


拓展mysql日期和时间函数

1.CURDATE()、CURRENT_DATE()

将当前日期按照"YYYY-MM-DD"或者"YYYYMMDD"格式的值返回,具体格式根据函数用在字符串或是数字语境中而定

2.CURRENT_TIMESTAMP()、LOCALTIME()、NOW()、SYSDATE()

这四个函数作用相同,返回当前日期和时间值,格式为"YYYY_MM-DD HH:MM:SS"或"YYYYMMDDHHMMSS",具体格式根据函数用在字符串或数字语境中而定

3.UNIX_TIMESTAMP()、UNIX_TIMESTAMP(date)

前者返回一个格林尼治标准时间1970-01-01 00:00:00到现在的秒数,后者返回一个格林尼治标准时间1970-01-01 00:00:00到指定时间的秒数

4.FROM_UNIXTIME(date)

UNIX_TIMESTAMP互为反函数,把UNIX时间戳转换为普通格式的时间

5.UTC_DATE()和UTC_TIME()

前者返回当前UTC(世界标准时间)日期值,其格式为"YYYY-MM-DD"或"YYYYMMDD",后者返回当前UTC时间值,其格式为"YYYY-MM-DD"或"YYYYMMDD"。具体使用哪种取决于函数用在字符串还是数字语境中。


以上就是在mysql对表进行存储的两种不同情况讨论,小伙伴可以看看表的定义或是索引,然后在不同的文件中进行存储。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

底部广告图