mysql数据库存储引擎

1、存储引擎概念mysql

数据库就是存放数据的仓库。至于怎么存储,就涉及到存储引擎。算法

不一样的存储引擎使用不一样的存储机制、索引机制、锁定水平,根据实际需求选择不一样的存储引擎。sql

2、mysql支持的存储引擎数据库

MyISAM、InnoDB、Memory、CSV、Archive并发

经常使用的:MyISAM、InnoDB高并发

3、各类存储引擎比较性能

mysql引擎有不少,只介绍如下通用的引擎。日志

MyISAM引擎orm

不支持事务操做,支持表级锁,支持建立索引,不支持外键,并发性能会低不少(表级锁),存储空间会占用比较小。索引

InnoDB引擎

支持事务操做,支持行级锁,支持建立索引,支持外键,容许并发量更大(行级锁),存储空间会占用比较大。InnoDB是默认的MySQL引擎。

memery 引擎

全部表的数据存储在内存中,数据库重启和崩溃数据即将消失。很是适合储存临时数据的临时表以及数据仓库的经纬表。

Archive引擎

Archive存储引擎只支持Insert和select操做,Archive存储引擎十分适合储存归档的数据,好比日志。使用行锁实现高并发的而操做。并且Archive存储引擎使用了zlib算法,将数据行进行压缩后储存,压缩比达1:10。

存储引擎的选择

1.若是要提供事物能力,并要求实现并发控制,InnoDB是一个好的选择。

2.若是数据表主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率。

3.若是只是临时存放数据,数据量不大,以选择将数据保存在内存中的Memory引擎。

4.若是只有INSERT和SELECT操做,能够选择Archive,如记录日志信息可使用Archive。

4、设置表的存储引擎

一、查看表的引擎

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

SHOW CREATE TABLE TABLE_NAME;(也可从建立表的sql语句查看)。

SHOW TABLE STATUS where name ='TABLE_NAME'

二、修改表的引擎

ALTER TABLE TABLE_NAME ENGINE = InnoDB;

3.建立表时指定引擎

CREATE TABLE TABLE_NAME (ID INT) ENGINE=InnoDB;

相关文章
相关标签/搜索