• 技术文章 >数据库 >MySQL

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

    小妮浅浅小妮浅浅2020-12-21 09:16:58原创1980

    在之前的文章中,我们已经对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对表进行存储的两种不同情况讨论,小伙伴可以看看表的定义或是索引,然后在不同的文件中进行存储。

    专题推荐:mysql存储
    上一篇:mysql中Memory适用范围是什么 下一篇:mysql中如何InnoDB作用和格式是什么?

    相关文章推荐

    • if在数据库mysql存储中判断• 数据库mysql存储中case如何转化条件?• mysql中存储过程体是什么语句• mysql存储在语句块贴标签• mysql存储中输出参数是什么• inout在mysql存储中怎么用• mysql存储引擎MyISAM怎么用• mysql中Memory适用范围是什么

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网