MySQL存储引擎

一、存储引擎

       数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。

存储引擎主要有:  1. InnoDB,2. MyIsam , 3. Memory, 4. Archive, 5. Federated, 6.CSV。

1、InnoDB

       InnoDB是MySQL的默认事务型引擎,它被设计用来处理大量的短期(short-lived)事务。 从MySQL 5.5版本开始是默认的表存储引擎 。

    适用场景:处理大量的短期(short-lived)事务。

    特点:

           1.支持事务:用来处理大量的短期事务

           2.支持外键:保证数据的完整性

           3.支持行锁:操作时只锁某一行,不对其它行有影响,适合高并发的操作

           4.支持索引(聚簇索引)

2、 MyIsam

         MyISAM提供了大量的特性,包括全文索引、压缩、空间函数(GIS)等,但MyISAM不支持事务和行级锁,有一个毫无疑问的缺陷就是崩溃后无法安全恢复。

     适用场景:常应用于只读或者以读为主的数据场景

     特点:

             1.不支持事务

             2.不支持外键

             3.支持表锁:操作一条记录也会锁住整个表,不适合高并发的操作

             4.支持索引(非聚簇索引)

 3、Memory

         Memory(也叫 HEAP)堆内存:使用存在内存中的内容来创建表。每个 MEMORY 表只实际对应一个磁盘文件。 MEMORY 类型的表访问非常得快,因为它的数据是放在内存中的,并且默认使用HASH 索引。但是一旦服务关闭,表中的数据就会丢失掉。 Memory 同时支持散列索引和 B 树索引, B树索引可以使用部分查询和通配查询,也可以使用<,>和>=等操作符方便数据挖掘,散列索引相等的比较快但是对于范围的比较慢很多

        适用场景:需要快速地访问数据,并且这些数据不会被修改,重启后丢失也没有关系。 Memory表至少比MyISAM表要快一个数量级。

 4、 Archive

        Archive档案存储引擎只支持INSERT和SELECT操作,在MySQL5.1之前不支持索引。
        Archive引擎适合日志和数据采集类应用。

 5、Federated

       Federated引擎是访问其他MySQL服务器的一个代理,尽管该引擎看起来提供了一种很好的跨服务器的灵活性,但也经常带来问题,因此默认是禁用的。提供了从多个物理机上联接不同的 MySql 服务器来创建一个逻辑数据库的能力。

        Federated引擎适用于分布式或者数据市场的场景。

 6、CSV

        CSV引擎可以将普通的CSV文件作为MySQL的表来处理,但不支持索引。

        CSV引擎可以作为一种数据交换的机制,非常有用。

        CSV存储的数据直接可以在操作系统里,用文本编辑器,或者excel读取。

二、存储引擎相关命令

1、查看命令

1. 查看当前MySQL版本,默认的存储引擎:

show variables like "%stroage_engine";

2. 查看当前MySQL版本,提供的存储引擎:

show engines;

2、建表时指定存储引擎

create table test(

id int;

name varchar(20);

)engine=InnoDB;          --指定存储引擎

3、修改存储引擎

1. 使用alter table 语句修改一个已经存在的表的存储引擎:

alter table 表名 engine = 指定的存储引擎;

例如:alter table test engine = MyISAM;

2. 修改mysql配置文件,一般名称叫my.ini文件,修改完之后重启mysql服务。

在[mysqld]下面加上:

default-storage-engine=INNODB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Teeny-TinyIT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值