MySQL8 存储引擎以及文件解析

MySQL 存储引擎以及文件解析

服务器中的目录及文件

  • 查看mysql的文件存储路径, 除了information_schema这个数据库之外,其他数据库都在当前目录存在文件夹

    [root@MiWiFi-R3P-srv mysql]# pwd
    /var/lib/mysql
    [root@MiWiFi-R3P-srv mysql]# ll
    总用量 188880
    -rw-r-----. 1 mysql mysql       56 214 21:09  auto.cnf
    -rw-r-----. 1 mysql mysql     1954 318 03:49  binlog.000003
    -rw-r-----. 1 mysql mysql      179 318 04:40  binlog.000004
    -rw-r-----. 1 mysql mysql      156 318 04:41  binlog.000005
    -rw-r-----. 1 mysql mysql       48 318 04:41  binlog.index
    -rw-------. 1 mysql mysql     1680 214 21:09  ca-key.pem
    -rw-r--r--. 1 mysql mysql     1112 214 21:09  ca.pem
    -rw-r--r--. 1 mysql mysql     1112 214 21:09  client-cert.pem
    -rw-------. 1 mysql mysql     1676 214 21:09  client-key.pem
    -rw-r-----. 1 mysql mysql   196608 318 05:28 '#ib_16384_0.dblwr'
    -rw-r-----. 1 mysql mysql  8585216 214 21:09 '#ib_16384_1.dblwr'
    -rw-r-----. 1 mysql mysql     3515 318 04:40  ib_buffer_pool
    -rw-r-----. 1 mysql mysql 12582912 318 05:26  ibdata1
    -rw-r-----. 1 mysql mysql 50331648 318 05:28  ib_logfile0
    -rw-r-----. 1 mysql mysql 50331648 214 21:09  ib_logfile1
    -rw-r-----. 1 mysql mysql 12582912 318 04:41  ibtmp1
    drwxr-x---. 2 mysql mysql      187 318 04:41 '#innodb_temp'
    drwxr-x---. 2 mysql mysql      143 214 21:09  mysql
    -rw-r-----. 1 mysql mysql 25165824 318 05:26  mysql.ibd
    srwxrwxrwx. 1 mysql mysql        0 318 04:41  mysql.sock
    -rw-------. 1 mysql mysql        5 318 04:41  mysql.sock.lock
    -rw-r--r--. 1 mysql mysql        7 214 21:09  mysql_upgrade_info
    srwxrwxrwx. 1 mysql mysql        0 318 04:41  mysqlx.sock
    -rw-------. 1 mysql mysql        6 318 04:41  mysqlx.sock.lock
    drwxr-x---. 2 mysql mysql     8192 214 21:09  performance_schema
    -rw-------. 1 mysql mysql     1680 214 21:09  private_key.pem
    -rw-r--r--. 1 mysql mysql      452 214 21:09  public_key.pem
    -rw-r--r--. 1 mysql mysql     1112 214 21:09  server-cert.pem
    -rw-------. 1 mysql mysql     1680 214 21:09  server-key.pem
    drwxr-x---. 2 mysql mysql       48 221 21:15  sharding_order
    drwxr-x---. 2 mysql mysql       28 214 21:09  sys
    -rw-r-----. 1 mysql mysql 16777216 318 05:28  undo_001
    -rw-r-----. 1 mysql mysql 16777216 318 05:28  undo_002
    drwxr-x---. 2 mysql mysql       22 214 22:53  user_149
    
  • 进入user_149数据库中查看每一个表对应有一个表示独立表空间 .ibd 结尾的文件进行存储

    [root@MiWiFi-R3P-srv mysql]# cd user_149/
    [root@MiWiFi-R3P-srv user_149]# ll
    -rw-r-----. 1 mysql mysql 114688 318 05:39 role.ibd
    -rw-r-----. 1 mysql mysql 114688 221 00:42 user.ibd
    

存储引擎

  • InnoDB存储引擎模式

    • 表结构

      为了保存表结构,InnoDB在数据目录下对应的数据库子目录下

      创建了一个专门用于描述表结构的文件 表名.frm

      ps: MySQL8.0中不存在表名.frm(表结构文件),并到了表名.ibd

    • 表中数据和索引

      含MySQL 5.6.6之后版本中,InnoDB新建表不会默认存到系统表空间,默认使用独立表空间

      • 系统表空间(system tablespace)

        默认情况下,存放在ibdata1文件

      • 独立表空间(file-per-table tablespace)

        会在数据库子目录下创建表名.ibd的文件

    配置

    [server]
    # 配置系统表空间对应文件路径以及大小,这个文件是自扩展文件。
    innodb_data_file_path=data1:512M;data2:512M:autoextend
    # 配置默认表空间 0:代表使用系统表空间; 1:代表使用独立表空间
    innodb_file_per_table=0
    
  • MyISAM存储引擎模式

    默认是使用InnoDB,需要创表时通过指定引擎

    CREATE TABLE `user` (
    	`id` INT NOT NULL AUTO_INCREMENT,
    	`username` VARCHAR (255) COLLATE utf8mb4_german2_ci DEFAULT NULL,
    	PRIMARY KEY (`id`)
    ) ENGINE = MYISAM DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_german2_ci;
    
    • 表结构

      MySQL5.7中和InnoDB一样,存储在表名.frm

      MySQL8.0中存储在表名.xxx.sdi

    • 表中数据和索引

      MyISAM中索引都是二级索引数据和索引分开存放

      • 表名.MYD(MYData)

        ​ 数据信息文件,存储数据信息

      • 表名.MYI(MYIndex)

        ​ 存放索引信息文件

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值