当前位置:首页 » 服务存储 » 存储引擎查看与修改
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

存储引擎查看与修改

发布时间: 2023-01-03 08:01:32

❶ 更改默认的存储引擎

3. 临时更改默认的存储引擎

要临时更改默认的存储引擎,可使用命令:

set

default_storage_engine=MyISAM;

其中,“=”右边可选存储引擎值可为MyISAM、InnoDB、Memory。关于这几个存储引擎的详细介绍详见3.1.3:

 4.永久地更改默认的存储引擎:在My.ini中[mysqld]选项组中修改default_storage_engine的值。

在My.ini中找到[mysqld]选项组下“default_storage_engine=”设置行,将其后的值改为你希望的某种存储引擎。

❷ 03-Docker存储引擎

目前docker的默认存储引擎为overlay2,不同的存储引擎需要相应的文件系统支持,如需要磁盘分区的时候传递d-type稳健分层功能,即需要传递内核参数并开启格式化磁盘的时候指定的功能

Docker 存储引擎的核心思想是“层”的概念,理解了这个层,就基本可以理解它的设计思路。当我们拉取一个 Docker 镜像的时候,可以看到如下:

一个镜像被分成许多的“层”,每“层”包含了若干的文件,而一层层堆叠起来就组成了我们的一个完整的镜像。我们镜像中的文件就是所有“层”文件的并集。 我们构建 Docker 镜像一般采用 Dockerfile 的方式,而 Dockerfile 的每行命令,其实就会生成一个“层”,即使什么文件都没有添加。

文件的创建是在读写层增加文件,那修改和删除呢?

这就要提一下 Docker 设计的 -on-write (CoW) 策略。

当我们试图读取一个文件时,Docker 会从上到下一层层去找这个文件,找到的第一个就是我们的文件。所以下面层相同的文件就被“覆盖”了。而修改就是当我们找到这个文件时,将它“复制”到读写层并修改,这样读写层的文件就是我们修改后的文件,并且“覆盖”了镜像中的文件了。而删除就是创建了一个特殊的 whiteout 文件,这个 whiteout 文件覆盖的文件即表示删除了。

这样的设计有什么好处吗?

第一个好处是减少了存储空间,由于镜像被分成了多个层,而各个层是静态只读的,是可以共享的。当你从一个镜像构建另一个镜像时,只需要添加新的层,原有的层不会被复制。

我们可以用 docker history 命令查看我们创建的镜像,相同的层将共享且只保存一份。

我们可以在系统的 /var/lib/docker/<存储驱动>/ 下看到我们所有的层。
第二个好处是启动容器就变得非常轻量和快速。因为我们的容器只是添加了一个“空”的读写层,其他的都是复用的只读层,需要用时才会去搜索。

Docker 的存储引擎针对不同的文件系统,是由不同的存储驱动。

Docker 主要有一下几类存储驱动:

有条件的情况下,我们还是建议选择 overlay2 的存储驱动。

Linux 系统正常运行, 通常需要两个文件系统:

OverlayFS 是从 aufs 之上改进和简化而来的,比 aufs 和 devicemapper 有更好的性能,大部分情况下也比 btrfs 好。
OverlayFS 结构分为三个层: LowerDir 、 Upperdir 、 MergedDir

LowerDir、Upperdir、MergedDir 关系图:

特性:

获取镜像存储路径

Lower层
LowerDir 层的存储是不允许创建文件, 此时的LowerDir实际上是其他的镜像的UpperDir层,也就是说在构建镜像的时候, 如果发现构建的内容相同, 那么不会重复的构建目录,而是使用其他镜像的Upper 层来作为本镜像的Lower
Merged层
属于对外展示层,只能在运行中的容器查看,镜像是查看不了的

1)查看init层地址指向
容器在启动的过程中, Lower 会自动挂载init的一些文件

2) init层主要内容是什么?
init层是以一个uuid+-init结尾表示,放在只读层(Lowerdir)和读写层(Upperdir)之间,
作用只是存放/etc/hosts、/etc/resolv.conf 等文件。
3) 为什么需要init层?
(1) 容器在启动以后, 默认情况下lower层是不能够修改内容的, 但是用户有需求需要修改主机名与域名地址, 那么就需要添加init层中的文件(hostname, resolv.conf), 用于解决此类问题.
(2) 修改的内容只对当前的容器生效, 而在docker commit提交为镜像时候,并不会将init层提交。
(3) init 文件存放的目录为/var/lib/docker/overlay2/<init_id>/diff
4) 查看init层文件
hostname与resolv.conf 全部为空文件, 在系统启动以后由系统写入。

配置 Docker 存储驱动非常简单,只需要修改配置文件即可。

方法1

方法2

❸ 如何修改mysql表的存储引擎

1、修改表引擎方法
alter table table_name engine=innodb;
2、查看系统支持的存储引擎
show engines;
3、查看表使用的存储引擎
两种方法:
a、show table status from db_name where name='table_name';
b、show create table table_name;
如果显示的格式不好看,可以用\g代替行尾分号
有人说用第二种方法不准确
我试了下,关闭掉原先默认的Innodb引擎后根本无法执行show create table table_name指令,因为之前建的是Innodb表,关掉后默认用MyISAM引擎,导致Innodb表数据无法被正确读取。
4 关闭Innodb引擎方法
关闭mysql服务: net stop mysql
找到mysql安装目录下的my.ini文件:
找到default-storage-engine=INNODB 改为default-storage-engine=MYISAM
找到#skip-innodb 改为skip-innodb
启动mysql服务:net start mysql

❹ 如何修改mysql表的存储引擎

1、修改表引擎方法x0dx0a alter table table_name engine=innodb;x0dx0a2、查看系统支持的存储引擎x0dx0a show engines;x0dx0a3、查看表使用的存储引擎x0dx0a 两种方法:x0dx0a a、show table status from db_name where name='table_name'x0dx0a b、show create table table_name;x0dx0a 如果显示的格式不好看,可以用\g代替行尾分号 x0dx0a 有人说用第二种方法不准确x0dx0a 我试了下,关闭掉原先默认的Innodb引擎后根本无法执行show create table table_name指令,因为之前建的是Innodb表,关掉后默认用MyISAM引擎,导致Innodb表数据无法被正确读取。x0dx0a4 关闭Innodb引擎方法x0dx0a 关闭mysql服务: net stop mysqlx0dx0a 找到mysql安装目录下的my.ini文件:x0dx0a 找到default-storage-engine=INNODB 改为default-storage-engine=MYISAMx0dx0a 找到#skip-innodb 改为skip-innodbx0dx0a 启动mysql服务:net start mysql

❺ 查看MySQL 支持的存储引擎

 查看MySQL 支持的存储引擎有三种语句格式:

格式一:SHOW ENGINES;

格式二:SHOW ENGINES\g

格式三:SHOW ENGINES\G

这三种格式区别仅在于使用的“结束符”不同,这会导致“命令执行结果的显示”不同。其中“\G”的显示效果最好,对所支持的各种存储引擎会从“引擎名称”、“是否支持该引擎”、“关于该引擎的说明、评论”、“是不是支持事务”、“该引擎支持的分布式是否支持XA规范”、“是否支持事务处理中的保存点”等方面逐个地、详细地显示出来;使用“;”和“\g”作用相同,仅简单显示各个存储引擎的信息。

❻ 如何查看MySQL的当前存储引擎

查看MySQL当前存储引擎的方法步骤:

  1. 查看当前表的默认存储引擎,可以使用如下图所示的命令。查询之后,我们可以查看笔者这里这个表默认的存储引擎是:InnoDB.

  2. 如果我们想知道当前MySQL提供什么存储引擎,可以使用如下图所示的命令。通过查询我们知道,笔者所安装的MySQL提供了9种不同的存储引擎。

  3. 如果我们想要知道当前数据库默认的是什么存储引擎,可以使用如下图所示的命令。通过查询我们知道,笔者所安装的MySQL默认的存储引擎是InnoDB。

  4. 给一个新建的表指定特定的存储引擎。

  5. 修改一个已经存在表的存储引擎,假设这里我们想要修改“t1”表的存储引擎。我们就可以按命令来操作。执行之后,我们的t1表的存储引擎,就从默认的InnoDB变为了CSV.

❼ 查看当前MySQL 支持的存储引擎

2. 查看当前MySQL 支持的存储引擎

查看当前MySQL支持的存储引擎的命令可以使用:“SHOW VARIABLES”,在其后带上“LIKE '%storage_engine%'”参数:

SHOW VARIABLES LIKE '%storage_engine%';

其中,'%storage_engine%'是使用了通配字符的一个字符串,用来指代包含“storage_engine”的若干参数变量,如执行后找到符合要求的,则在执行结果中会有Variable_name参数表示存储引擎的名字;Value参数表示系统是否支持该存储引擎。

❽ MySQL修改数据表存储引擎的3种方法介绍

MySQL作为最常用的数据库,经常遇到各种各样的问题。今天要说的就是表存储引擎的修改。有三种方式,列表如下。
1.真接修改。在数据多的时候比较慢,而且在修改时会影响读取性能。my_table是操作的表,innoDB是新的存储引擎。
复制代码
代码如下:ALTER
TABLE
my_table
ENGINE=InnoDB
2.导出,导入。这个比较容易操作,直接把导出来的sql文件给改了,然后再导回去。用mysqlmp
,枫哥常用的是navicate那样更容易上手。友情提醒风险较大。
3.创建,插入。这个比第一种速度快,
安全性比第二种高,推荐。分2步操作
a.创建表,先创建一个和要操作表一样的表,然后更改存储引擎为目标引擎。
复制代码
代码如下:
CREATE
TABLE
my_tmp_table
LIKE
my_table;
ALTER
TABLE
my_tmp_table
ENGINE=InnoDB;
b.插入。为了安全和速度,最好加上事务,并限制id(主键)范围。
复制代码
代码如下:
INSERT
INTO
my_tmp_table
SELECT
*
FROM
my_table;
就到这里,希望对需要的同学有帮助。