怎么看mysql的引擎
时间 : 2023-03-11 17:49:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

MySQL 是一种关系型数据库管理系统,它支持多种存储引擎,每个存储引擎有不同的特性和限制。MySQL 默认使用的存储引擎是 InnoDB,但是还有其他一些引擎如 MyISAM、MEMORY(HEAP)、CSV 等。在 MySQL 中,可以选择不同的存储引擎来适应不同的应用场景,因此了解和选择正确的引擎变得十分重要。

MySQL 中,查看当前库和表的存储引擎可以通过以下方式进行:

查看当前数据库的默认存储引擎:

SHOW VARIABLES LIKE '%storage_engine%';

查看当前库的所有表的存储引擎:

SELECT table_name, engine FROM information_schema.tables WHERE table_schema='yourdatabase';

查看单个表的存储引擎:

SHOW TABLE STATUS WHERE name='yourtablename';

当我们创建表格的时候,我们可以通过指定 ENGINE 参数来选择存储引擎,例如:

CREATE TABLE example_table (

id INT PRIMARY KEY,

name VARCHAR(50))

ENGINE=InnoDB;

常用的存储引擎:

1.MyISAM 引擎

MyISAM 引擎是 MySQL 5.5 以前的默认存储引擎。 MyISAM 提供了很好的性能和简单的数据模型,但是在一些复杂的应用场景下,MyISAM 由于表锁的问题会出现性能瓶颈。

2.InnoDB 引擎

InnoDB 引擎是 MySQL 5.5 之后的默认存储引擎。InnoDB 引擎提供了了解或实现关系型数据库所需的大多数必要的特性,如支持外键约束和事务等。

3.MEMORY 引擎

MEMORY(HEAP)引擎通常用于临时表,因为它可以在内存中快速运行以提供更好的性能。由于数据存储在 RAM 中而不是磁盘上,因此在系统崩溃时,数据通常会丢失。因此,MEMORY 引擎通常不用于永久存储数据。

4.CSV 引擎

CSV 引擎是将表格数据存储在 CSV(Comma-Separated Values)文件中的引擎。它主要用于导入和导出数据。但是,由于 CSV 引擎不支持索引,因此它在查询大型数据集时可能会出现性能瓶颈。

总之,在选择存储引擎时,应该考虑到您的应用场景和需求,在对比不同的存储引擎的优劣性后进行选择。

在MySQL中,我们可以使用以下命令来查看表的存储引擎:

```show create table 表名```

执行上述命令后,会返回包含表结构和创建命令的结果集。其中创建命令中会包含一个 “ENGINE=” 的选项,这个选项用于指定表的存储引擎。在以下示例中,我们将使用这个命令来查看一个名为 “users” 的表的引擎:

mysql> show create table users;

结果类似如下:

| Table | Create Table |

|--------|------------------------------------------------------------------------------------------------------------|

| users | CREATE TABLE `users` (

`id` int NOT NULL AUTO_INCREMENT,

`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,

`email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,

`password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci |

从上面的结果可以看出,这个表的引擎是 InnoDB。InnoDB 是 MySQL 5.5 以后的默认存储引擎,它支持事务和行级锁等关系型数据库的特性。

除了上述命令外,还可以通过以下两种方式来查询和修改表的存储引擎:

1.使用 ALTER TABLE 语句来修改存储引擎。例如,以下语句将表的存储引擎修改为 MyISAM:

ALTER TABLE users ENGINE=MyISAM;

2.通过查询 information_schema.TABLES 系统表。该表包含了 MySQL 中所有的表信息,包括存储引擎。以下是一个示例查询:

SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'mydb';

这条语句会查询 mydb 数据库中所有表的名称和存储引擎。

总结:以上就是查询 MySQL 数据库中表的存储引擎的方法,可以通过 show create table 命令或者查询 information_schema.TABLES 系统表来查看和修改表的存储引擎。