超详细MySQL常用数据库引擎

存储引擎简介

MySQL中的数据用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎。存储引擎就是MySQL将数据存储在文件西永中的存储方式或者存储格式。MySQL存储引擎就是MySQL数据库服务器中的组件,负责为数据库执行时机的数据I/O操作。使用特殊存储引擎的主要有点之一在于,仅需提供特殊应用所需的特性,数据库中的系统开销较小,具有更有效和更高的数据库性能。MySQL系统中,存储引擎处于文件系统之上,在数据保存到数据文件之前会传输到存储引擎,之后按照各个存储引擎的存储格式进行存储

常见存储引擎

  • MyISAM
  • InnoDB

MyISAM特点

1.不支持事务
2.表级锁定形式,数据在更新时锁定整个表
3.数据库在读写过程中相互阻塞
在数据写入的过程阻塞用户数据的读取
在数据读取的过程中阻塞用户的数据写入
4.过key_buffer_size来设置缓存索引,提高访问性能,减少磁盘IO的压力
5.MyISAM存储引擎数据单独写入或读取,速度过程较快且占用资源相对少
6.ISAM存储引擎不支持外键约束,只支持全文索引
7.MyISAM在磁盘上存储成三个文件,每一个文件的名字以表的名字开始,扩展名指出文件类型:
.frm文件存储表定义 #表头、属性等等
数据文件的扩展名.MYD(MYData)
索引文件的扩展名为.MYI(MYIndex)

MyISAM适用的生产场景举例

1.公司业务不需要事务的支持
2.一般单方面读取数据比较多的业务,或单方面写入数据比较多的业务,因为MyISAM具有读写互相阻塞的特点,数据读写比较频繁的场景不适合使用
3.MyISAM存储引擎数据读写都比较频繁场景不合适
4.使用读写并发访问相对较低的业务
5数据修改相对较少的业务
6.对数据业务一致性要求不是非常高的业务
7.服务器硬件资源相对比较差

InnoDB特点

1.事务,支持四个事务隔离级别
2.锁定,但是全表扫描仍然会是表级锁定
3.阻塞与事务隔离级别相关
4.非常高效的缓存特性,能缓存索引,也能缓存数据
5.主键以簇的方式存储
6.分区、表空间、类似Oracle数据库
7.外键约束,5.5.之前不支持全文索引,5.5版本以后支持全文索引
8.件资源要求还是比较高的场合

InnoDB适用生产场景分析

1.业务需要事务的支持
2.行级锁定对并发有很好的适应能力,但需确保查询是通过索引来完成
3.业务数据更新较为频繁的场景,如:论坛,微博等
4.业务数据一致性要求较高,例如:银行业务
5.硬件设备内存较大,利用Innodb较好的缓存能力来提高内存利用率,减少磁盘IO的压力

配置合适的存储引擎

1、查看数据库可配置的存储引擎类型

2、查看表正在使用的存储引擎

1).使用show table status命令查看表正在使用的存储引擎

mysql> show table status from school where name=‘student‘\G;
school:指定当前的库
student:指定当前的表

2).使用show create命令查看表正在使用的存储引擎

mysql> use school; #进入数据库
mysql> show create table student;

3、修改存储引擎

1).方法1:使用alter table命令修改

mysql> use school
mysql> alter table student engine=MyISAM;
mysql> show create table student\G;

2).方法2:修改my.cnf主配置文件,指定默认存储引擎

[[email protected]_5 ~]# vim /etc/my.cnf

[mysqld]标签中添加以下参数
[mysqld]
default-storage-engine=MyISAM

[[email protected]_5 ~]# systemctl restart mysqld.service #重启服务

mysql> use school
mysql> create table teacher(id int not null primary key auto_increment,tname varchar(10));
mysql> show create table teacher\G;

3).方法3:create table创建表时指定存储引擎

mysql> use school
mysql> create table class(id int ,cname varchar(20)) engine=InnoDB; #创建库,指定引擎InnoDB
mysql> show create table class\G;

4).5.5版本使用mysql_convert_table_format转化存储引擎

[[email protected]_4 ~]# yum -y install perl-DBI perl-DBD-MySQL #需要安装相关perl语言包
mysql> show create table test.info\G;

[[email protected]_4 ~]# vim /usr/local/mysql/bin/mysql_convert_table_format
"e|engine|type=s" => \engine, #32行进行修改

[[email protected]_4 ~]# mysql_convert_table_format --user=root --password=123 --host=localhost --socket=/tmp/mysql.sock --type=MyISAM test info

解析:
mysql_convert_table_format #批量转换存储引擎
--force                    #碰到错误强制进行转换
--host                     #指定转换的主机
--user                     #指定连接的用户
--password                 #指定连接的用户密码
--socket                   #指定socket文件存在的位置
--port                     #指定端口,如果不是"localhost"可以不指定

[[email protected]_4 ~]# mysql -uroot -p -e "show create table test.info\G;"

5).5.7版本

[[email protected]_5 ~]# yum -y install perl-DBI perl-DBD-MySQL #需要安装相关perl语言包

[[email protected]_5 ~]# ls /usr/local/mysql/bin/mysql_c

原文地址:http://blog.51cto.com/11905606/2172771

时间: 2024-10-18 00:52:59

超详细MySQL常用数据库引擎的相关文章

[转帖]mysql常用存储引擎(InnoDB、MyISAM、MEMORY、MERGE、ARCHIVE)介绍与如何选择

mysql常用存储引擎(InnoDB.MyISAM.MEMORY.MERGE.ARCHIVE)介绍与如何选择原创web洋仔 发布于2018-06-28 15:58:34 阅读数 1063 收藏展开 https://blog.csdn.net/CSDN___LYY/article/details/80844606 一:前言 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建.查询.更新和删除数据.不同的存储引擎提供不同的存储机制.索引技巧.锁定水平等功能,使用不同的

MySQL的数据库引擎

Mysql的数据库引擎有很多,最重要的就是MyISAM.InnoDB.heap(memory),此外还有BDB.archive数据表.csv.ndb.federated InnoDB 优点: 1.对数据库事务支持,支持四种事务级别(read uncommitted.read committed.repeatable read.serializable) 2.提供行级锁(内建的)和外键,目的是处理大量数据库系统,行级锁锁定的只是一次事务中的记录,不会锁定数据表,所以其他的用户都可以去访问操作数据库

深入浅出分析MySQL常用存储引擎

MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良.虽然性能极佳,但却有一个缺点:不支持事务处理(transaction). InnoDB是MySQL的数据库引擎之一,为MySQL AB发布binary的标准之一.与传统的ISAM与MyISAM相比,InnoDB的最大特色就是:支持事务(Transaction). MyISAM与InnoDB的区别是什么?总结如下: 1. 存储结

MySQL常见数据库引擎及对比

一:MySQL存储引擎简介 MySQL有多种存储引擎,每种存储引擎有各自的优缺点,大家可以择优选择使用:MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(BerkeleyDB).EXAMPLE.FEDERATED.ARCHIVE.CSV.BLACKHOLE. MySQL支持数个存储引擎作为对不同表的类型的处理器.MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎:  MyISAM管理非事务表.它提供高速存储和检索,以及全文搜索能力.MyISAM在所有MyS

MySQL的数据库引擎的类型(转)

腾讯后台开发电话面试问到数据库引擎选用的问题,这里补习一下. 本文属于转载,原文链接为:http://www.cnblogs.com/xulb597/archive/2012/05/25/2518118.html 你能用的数据库引擎取决于mysql在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况 下,MYSQL支持三个引擎:ISAM.MYISAM和HEAP.另外两种类型INNODB和BERKLEY(BDB),也常常可以使用. ISAM ISAM是一个定义明确且

MySQL的数据库引擎的类型

你能用的数据库引擎取决于mysql在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引擎:ISAM.MYISAM和HEAP.另外两种类型INNODB和BERKLEY(BDB),也常常可以使用. ISAM ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被查询的次数要远大于更新的次数.因此,ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源.ISAM的两个主要不足之处在于,它不支持事务处理,也不能

MySQL常用存储引擎

MySQL存储引擎主要有两大类: 1. 事务安全表:InnoDB.BDB. 2. 非事务安全表:MyISAM.MEMORY.MERGE.EXAMPLE.NDB Cluster.ARCHIVE.CSV.BLACKHOLE.FEDERATED等. MySQL默认的存储引擎是MyISAM(5.7版本中默认为InnoDB). 配置文件中设置默认存储引擎的参数: default-table-type. 查询当前数据库支持的存储引擎: show engines; show variables like 'h

Mysql 常用数据库操作

一.数据库操作: 1.查看数据库: >SHOW DATABASES; 2.创建数据库: >CREATE DATABASE db_name; //db_name为数据库名 3.使用数据库: >USE db_name; 4.删除数据库: >DROP DATABASE db_name; 二.创建表: 1.创建表: >CREATE TABLE table_name( >id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT, //id值,无符号.

(5)mysql常用存储引擎

概述 ??mysql5.5之前默认存储引擎是MyISAM,5.5之后改为InnoDB.若要修改默认引擎,可以修改配置文件中的default-storage-engine.可以通过show engines来查看当前数据库支持的引擎.使用select engine from information_schema.engines where transactions = 'yes';来查看哪些引擎支持事务.在创建表到时候通过engine=...或type=...来指定所要使用到引擎. MyISAM 它