Mysql引擎

Mysql引擎

其实最初版本的Mysql引擎并没有现在功能这么完善,包括事务等功能都是不完善的,但是有许多不同的引擎出来支持了这些需求

一般的情况下 mysql 会默认提供多种存储引擎

首先可以查看以下自己的数据库支持哪些引擎:  

mysql> show engines;
查看数据库支持引擎 查看数据库支持引擎


在这里我们可以看到哪个引擎是我们的默认引擎,我的是 MyISAM


但是根据个人使用发现 MyISAM 是个不怎么好的引擎,因为它不支持事务,比如回滚等事务都是无法在这个数据库引擎上进行的

要注意,数据库存储引擎是相对数据表而言的,每个数据表都有一个指定的存储引擎

使用 sql 语句查看某张表的引擎 :  

mysql> show create table 表名;
查看数据表引擎 查看数据表引擎



这里可以看到我的这张表使用的引擎是 InnoDB

InnoDB 是我个人比较喜欢使用也比较推荐使用的引擎

它支持事务,相对不支持事务的数据库引擎来说性能当然会相对差一点点


那么如何设置数据表引擎呢?

1.创建数据表时可以指定引擎

CREATE TABLE t_test(
...
...
)ENGINE=INNODB DEFAULT CHARSET=utf8;
#指定引擎和存储字符类型

2.对已创建的数据表修改引擎

ALTER TABLE table_name engine=innodb;

但是如果我们不去指定或者修改引擎的话,每次创建表它都会默认使用数据库默认的引擎,一般是 MyISAM

那我们每次都要指定 InnoDB 或者每次创建完表之后再去修改的话都会非常麻烦

那么我们如何修改数据库的默认引擎?

需要修改数据库的配置文件   my.ini 文件

数据库配置文件 数据库配置文件


这个文件就在数据库安装目录下



用 nodepad 或者 记事本打开这个配置文件,查找 default-storage-engine 项,这一项配置了默认的数据库引擎

查找对应配置项 查找对应配置项


将这一选项修改为你想要修改的默认引擎

比如我将它修改成 InnoDB

default-storage-engine=INNODB


注意:如果配置文件了有  skip-innodb 这一选项的话,要把它注释掉,因为它的意思是跳过 Innodb,如果这一配置存在的话是无法使用 innodb的

保存关闭文件

修改完毕之后,要重新启动 mysql 服务才能重新加载配置文件

net stop mysql
net start mysql

重启完毕之后,我们查看以下 引擎表

查看所有引擎查看所有引擎


这里就已经可以看到默认的引擎是 InnoDB 了

之后建立表不需要刻意指定,默认的引擎就是 InnoDB了

### 回答1: MySQL 数据库管理系统支持多种数据库引擎。每种数据库引擎都有不同的特点,适用于不同的用例。 常见的 MySQL 数据库引擎包括: - MyISAM:MyISAM 是 MySQL 的默认引擎,在性能和数据完整性方面表现良好。它支持全文索引,但不支持事务和行级锁定。 - InnoDB:InnoDB 是一种支持事务处理和行级锁定的引擎。它通常被用于需要高可用性和数据完整性的应用程序。 - Memory:Memory 引擎将数据存储在内存中,速度非常快,但数据不能持久化。它通常用于临时存储数据或缓存数据。 - CSV:CSV 引擎允许将数据存储在 CSV 格式的文件中,并提供对 CSV 文件的简单查询支持。 - Archive:Archive 引擎提供了一种高压缩比的方式来存储大量只读数据。它不支持索引,因此只能用于存储历史数据或进行批量加载。 在选择 MySQL 数据库引擎时,应考虑应用程序的性能、可用性、数据完整性以及其他特定需求,并根据这些因素来决定最后使用哪 ### 回答2: MySQL引擎是用于存储和管理数据库数据的关键组件。MySQL提供了多种不同的引擎,每个引擎都具有其独特的特点和优势。下面是一些常见的MySQL引擎及其区别: 1. MyISAM引擎:这是MySQL最早的引擎,它使用表级锁定机制,适用于读取频率高于写入频率的场景。但是,它不支持事务处理和数据完整性的约束,因此在需要ACID事务支持的应用中不适用。 2. InnoDB引擎:这是MySQL默认的事务性存储引擎,它支持ACID事务、行级锁定和外键约束等重要特性。它适用于需要高可靠性和数据完整性的应用。InnoDB引擎通过自动将数据缓存到内存中来提高性能,并具有崩溃恢复功能,可以在数据库崩溃后恢复数据。 3. Memory引擎:也称为Heap引擎,它将表中的数据存储在内存中,因此读取速度非常快。然而,由于数据存储在内存中,所以在数据库崩溃时数据会丢失。Memory引擎适用于临时数据、缓存和临时表等应用场景。 4. NDB Cluster引擎:也称为MySQL Cluster引擎,它通过将数据分布在多个节点上来提供高可用性和性能。NDB Cluster引擎适合于需要高并发访问和高可用性的大规模应用,如电信、金融和电子商务等领域。 5. Archive引擎:这是一种非事务性存储引擎,适用于归档和大量读取少量写入的应用。它以高度压缩的方式存储数据,节省了存储空间。Archive引擎不支持索引,只能进行全表扫描操作。 根据应用的需求和特点,选择合适的MySQL引擎可以提供更好的性能、可用性和数据完整性。 ### 回答3: MySQL是一种关系型数据库管理系统,它有多个可用的引擎来处理和存储数据。在MySQL中,常用的引擎包括InnoDB、MyISAM、MEMORY、CSV等。 首先,InnoDB是MySQL的默认引擎,并且在性能和功能上提供了许多优势。它支持事务处理、行级锁和外键约束等特性,适合于需要高并发读写的应用。InnoDB还提供了自动崩溃恢复机制,可以在数据库发生崩溃时保证数据的一致性。 其次,MyISAM是另一个常用的引擎,适用于一些读取频率高但写入频率较低的应用。它的优点是速度快,支持全文索引和空间索引,但不支持事务和行级锁定,也不具备自动崩溃恢复的功能。 另外,MEMORY引擎适用于数据量较小的表,将数据存储在内存中,读写速度非常快。然而,一旦MySQL服务器关闭,数据将丢失,不具备持久性。 此外,CSV引擎用于处理以逗号分隔的值(CSV)文件,它允许将CSV文件视为表,并进行查询和修改。但是,与其他引擎相比,CSV引擎的功能相对有限。 总之,不同的引擎适用于不同的应用场景。选择适合的引擎可以提高数据库的性能和效率,并满足应用的需求。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值