存储引擎

存储引擎是表级别的概念,不同的存储引擎保存数据和索引的方式是不相同的.

MyISAM存储引擎

MyISAM最典型的性能问题就是表锁的问题.  MyISAM只将数据写到内存中,然后等待操作系统定期将数据刷到磁盘上.

不支持事务

表级锁定

读写相互阻塞,写入不能读,读时不能写

只缓存索引

不支持外键约束

不支持聚簇索引

读取数据较快,占用资源较少

不支持MVCC(多版本并发控制机制)高并发

崩溃恢复性较差

MySQL5.5.5前默认的数据库引擎

适用场景:只读(或者写较少),表较小(可以接受长时间进行修复操作)

MyISAM引擎文件:

tbl_name.frm: 表格式定义

tbl_name.MYD: 数据文件

tbl_name.MYI: 索引文件

InnoDB引擎特点

支持事务,适合处理大量短期事务

行级锁

读写阻塞与事务隔离级别相关

可缓存数据和索引

支持聚簇索引

崩溃恢复性更好

支持MVCC高并发

从MySQL5.5后支持全文索引

从MySQL5.5.5开始为默认的数据库引擎

InnoDB数据库文件

所有InnoDB表的数据和索引放置于同一个表空间中

表空间文件:   datadir定义的目录下

数据文件:      ibddata1, ibddata2, ...

每个表单独使用一个表空间存储表的数据和索引

启用:innodb_file_per_table=ON

两类文件放在数据库独立目录中

数据文件(存储数据和索引):tb_name.ibd

表格式定义:tb_name.frm

CSV引擎

CSV存储引擎使用逗号分隔值格式将数据存储在文本文件中.可以使用 CSV引擎以CSV格式导入和导出其他软件和应用程序之间的数据交换

管理存储引擎

查看mysql支持的存储引擎:

show engines;

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

show variables like '%storage_engine%';

设置默认的存储引擎:

vim /etc/my.conf

[mysqld]

default_storage_engine= InnoDB;

查看库中所有表使用的存储引擎

show table status from db_name;

查看库中指定表的存储引擎

show table status like ‘tb_name‘;

show create table tb_name;

设置表的存储引擎:

CREATE TABLE  tb_name(... )  ENGINE=InnoDB;

ALTER TABLE  tb_name  ENGINE=InnoDB;

选择合适的引擎

事务

备份

崩溃恢复

特有的特性

MySQL分层架构

上层是服务器层的服务和查询执行引擎

下层是存储引擎

存储引擎和服务层之间处理查询的时候通过API来回交互

Mysql常用的存储引擎的更多相关文章

  1. (转)MySQL 常用数据存储引擎区别

    MySQL 常用数据存储引擎区别 原文:https://laravel-china.org/articles/4198/mysql-common-data-storage-engine mysql有多 ...

  2. MySQL 常用数据存储引擎区别

    mysql有多种存储引擎,目前常用的是 MyISAM 和 InnoDB 这两个引擎,除了这两个引擎以为还有许多其他引擎,有官方的,也有一些公司自己研发的.这篇文章主要简单概述一下常用常见的 MySQL ...

  3. mysql常用的存储引擎,MyISAM和InnoDB的对比

    Mysql有多种存储引擎,最常用的有MyISAM和InnoDB这两种,每一种类型的存储引擎都有自已的特点,可以结合项目中数据的使用场景来进行了哪种存储引擎合适. 1:查看mysql数据库支持的存储引擎 ...

  4. mysql 常用的存储引擎MyISAM/InnoDB比较

  5. MySQL事务以及存储引擎

    MySQL事务以及存储引擎 目录 MySQL事务以及存储引擎 一.事务 1. 事务的概念 2. 事务的ACID特点 (1)原子性 (2)一致性 (3)隔离性 ①事务之间的相互影响 ②MySQL事务支持 ...

  6. java面试一日一题:mysql中常用的存储引擎有哪些?

    问题:请讲下mysql中常用的引擎有哪些? 分析:该问题主要考察对mysql存储引擎的理解,及区别是什么? 回答要点: 主要从以下几点去考虑, 1.mysql的存储引擎的基本概念? 2.mysql中常 ...

  7. mysql缓存、存储引擎

    一.         mysql查询缓存 查询缓存不是mysql的子系统,却是查询优化和执行子系统不可缺少的组成部分.它不仅可以缓存查询结果,还可以缓存查询结果本身.如果某个查询的结果就在缓存里, 系 ...

  8. 转!!MySQL中的存储引擎讲解(InnoDB,MyISAM,Memory等各存储引擎对比)

    MySQL中的存储引擎: 1.存储引擎的概念 2.查看MySQL所支持的存储引擎 3.MySQL中几种常用存储引擎的特点 4.存储引擎之间的相互转化 一.存储引擎: 1.存储引擎其实就是如何实现存储数 ...

  9. MySQL数据库InnoDB存储引擎中的锁机制

    MySQL数据库InnoDB存储引擎中的锁机制    http://www.uml.org.cn/sjjm/201205302.asp   00 – 基本概念 当并发事务同时访问一个资源的时候,有可能 ...

随机推荐

  1. 在Android源码树中添加userspace I2C读写工具(i2c-util)

    在Android源码树中添加userspace I2C读写工具(i2c-util) http://blog.csdn.net/21cnbao/article/details/7919055 分类: A ...

  2. Git使用基础篇

    Git使用基础篇 前言 Git是一个分布式的版本控制工具,本篇文章从介绍Git开始,重点在于介绍Git的基本命令和使用技巧,让你尝试使用Git的同时,体验到原来一个版 本控制工具可以对开发产生如此之多 ...

  3. a or an

    在英语句子中用a还是用an,一直是个容易出错的问题. 原则为:如果下一个词的发音为元音则用an,否则用a. 例: a man an elephant a house an hour 对于大写字母要注意 ...

  4. jQuery学习之二

    jQuery对象获取方法:var $cr=$("#cr"); //jQuery方法获取的是一个·对象数组. var cr=$cr[0] // var cr=$cr.get(0); ...

  5. python 中 try ...except

    捕捉异常 try: 下的代码段 即为 需要捕捉异常的代码段: except:  捕获某一模块的异常,须带异常模块名称,可带原因参数:except 下代码为该异常发生时,所执行的代码:一个try可对应多 ...

  6. easyui---form表单_validatebox验证框

    第一种方式:混合写法 $("#password").validatebox({ }) <td><input type="text" name= ...

  7. 洛谷P1182 数列分段【二分】【贪心】

    题目:https://www.luogu.org/problemnew/show/P1182 题意: 有n个数,要分成连续的m段.将每段中的数相加,问之和的最大值的最小值是多少. 思路: 和P1316 ...

  8. 非节点主机通过内网远程管理docker swarm集群

    这是今天使用 docker swarm 遇到的一个问题,终于在睡觉前解决了,在这篇随笔中记录一下. 在 docker swarm 集群的 manager 节点上用 docker cli 命令可以正常管 ...

  9. XmlHelpers

    最近处理数据的时候用到了Xml和其他数据之间的转换,所以整理了一些方法. class XMLHelper { /// <summary> /// 读取xml模板 /// </summ ...

  10. tensorflow 一维卷积 tf.layers.conv1()使用

    在自然语言处理中,主要使用一维的卷积. API tf.layers.conv1d( inputs, filters, kernel_size, strides=1, padding='valid', ...