美文网首页T-Sqljs css htmlMySQL数据库
MySql存储引擎使用及管理

MySql存储引擎使用及管理

作者: 技术老男孩 | 来源:发表于2023-02-13 07:57 被阅读0次

一、查看支持的数据库引擎

  • Engine:引擎名称
  • Support:表示该数据库是否支持该引擎,DEFAULT为默认使用的引擎
  • Comment:引擎的功能描述
  • Transactions:是否支持事务
  • XA:是否支持事务回滚
  • Savepoints:是否支持外键
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)
  • 查看表使用的存储引擎
  • MySQL> show create table 库.表 \G
mysql> show create table  tarena.departments \G

二、创建存储引擎

  • 建表时指定表使用的存储引擎
# 创建innodb引擎的表
mysql> create table db10.b(
  name char(10)
)engine = innodb;
# 创建memory引擎的表
mysql> create  table db10.c(
  addr char(10)
)engine = memory;

三、修改存储引擎

  • 修改数据库服务默认使用的存储引擎
[root@host61 ~]#vim /etc/my.cnf
[mysqld]
default-storage-engine=myisam  # 添加此行
:wq
            
[root@host61 ~]# systemctl restart mysqld
[root@host61 ~]# mysql  -uroot -p密码 

mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB             | YES     | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| MyISAM             | DEFAULT | MyISAM storage engine                                          | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
  • alter修改表的存储引擎
# 将memory存储引擎修改为myisam,
mysql> alter table db10.c engine=myisam;

四、补充说明:

  • 每种引擎,存储的文件数量也是不同的
# myisam存储引擎的表 每个表对应3个表文件
mysql> system ls /var/lib/mysql/db10/a.*
/var/lib/mysql/db10/a.frm  
/var/lib/mysql/db10/a.MYD  
/var/lib/mysql/db10/a.MYI

# innodb存储引擎的表 每个表对应2个表文件
mysql> system ls /var/lib/mysql/db10/b.*
/var/lib/mysql/db10/b.frm  
/var/lib/mysql/db10/b.ibd

# memory存储引擎的表 每个表对应1个表文件
mysql> system ls /var/lib/mysql/db10/c.*
/var/lib/mysql/db10/c.frm
  • 在表存储存储数据之前修改储引擎,存储数据的位置也会改变,存储文件数量结构也会发生改变
# 将memory存储引擎修改为myisam,存储文件数量结构发生改变
mysql> alter table db10.c engine=myisam;
mysql> system ls /var/lib/mysql/db10/c.*
/var/lib/mysql/db10/c.frm  
/var/lib/mysql/db10/c.MYD  
/var/lib/mysql/db10/c.MYI

相关文章

  • 史上最全存储引擎、索引使用及SQL优化的实践

    史上最全存储引擎、索引使用及SQL优化的实践 1 MySQL的体系结构概述 2. 存储引擎 2.1 存储引擎概述 ...

  • MySQL系列(二)----MySQL存储引擎详解

    一、MySQL常用存储引擎及特点 1、InnoDB存储引擎 从MySQL5.5版本之后,MySQL的默认内置存储引...

  • 搞定万亿级MySQL海量存储的索引与分表设计实战

    互联网业务往往使用MySQL数据库作为后台存储,存储引擎使用InnoDB。 我们针对互联网自身业务特点及MySQL...

  • mysql 高级

    关键文件 日志文件 数据文件 配置文件 存储引擎 mysql使用插件式的存储引擎,MySQL存储引擎有InnoDB...

  • Mysql四种常见数据库引擎

    四种mysql存储引擎 前言 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、...

  • MySQL数据库常用存储引擎

    Mysql数据库常用存储引擎 数据库存储引擎:是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建...

  • MySQL介绍

    mysql介绍 其他数据库介绍 mysql特点 mysql存储引擎类型及特点 关于mysql单表存储 mysql介...

  • 数据库设计:物理设计

    1、选择合适的数据库管理系统 MySQL存储引擎特点:大部分使用Innodb 2、定义数据库、表及字段的命名规范 ...

  • 索引

    MyISAM存储引擎MyISAM是 MySQL 5.5 版本之前的默认存储引擎,MySQL中很多系统表也还是使用该...

  • 浅谈InnoDB存储引擎中的锁

    InnoDB存储引擎是MySQL数据库默认的事务型存储引擎,也是使用比较多的存储引擎。InnoDB存储引擎不紧支持...

网友评论

    本文标题:MySql存储引擎使用及管理

    本文链接:https://www.haomeiwen.com/subject/kwnwhdtx.html