zoukankan      html  css  js  c++  java
  • MySQL存储引擎

    一、InnoDB:
    处理大量的短期事务;
    数据存储于"表空间(table space)"中;
    1、所有InnoDB表的数据和索引放置于同一个表空间中;
    表空间文件:datadir定义的目录下
    数据文件:ibddata1,ibddata2,...
    2、每个表单独使用一个表空间,存储表的数据和索引;
    innodb_file_per_table=ON
    数据文件(存储数据和索引):tbl_name.ibd
    表格式定义:tbl_name.frm
    基于MVCC(Multi-Version Concurrency Control )来支持高并发,支持所有的四个事务隔离级别,默认级别为REPEATABLE READ;通过间隙锁防止幻读的出现;
    使用聚集索引
    支持"自适应hash索引"
    行级锁
    数据存储:表空间
    并发:MVCC,间隙锁
    索引:聚集索引、辅助索引
    性能:预读操作、自适应hash、插入缓存区
    备份:支持热备(xtrabackup)
    MariaDB中虽然也叫InnoDB,但使用的是XtraDB(percona公司提供)
    二、MyISAM:
    支持全文索引(FULLTEXT index)、压缩、空间函数(GIS);但不支持事务,且为表级锁;
    崩溃后无法安全恢复
    使用场景:只读(或者写较少)、表较小(可以接受长时间进行修复操作)
    Aria:crash-safe
    文件:
    tbl_name.frm:表格式定义
    tbl_name.MYD:数据文件
    tbl_name.MYI:索引文件
    特性:
    加锁和并发:表级锁
    修复:手工或自动修复、但可能丢失数据
    索引:非聚集索引
    延迟更新索引键
    压缩表

    行格式:dynamic,fixed,compressed,compact,redundent
    三、其他的存储引擎:
    CSV:将普通CSV(字段通过逗号分隔)作为MySQL表使用
    MRG_MYISAM:将多个MyISAM表合并成为一个虚拟表
    BLACKHOLE:类似于/dev/null,不真正存储任何数据
    MEMORY:所有数据都保存于内存,内存表,唯一支持hash索引的表;表级锁
    临时表
    PERFORMANCE_SCHEMA:伪存储引擎
    ARCHIVE:仅支持SELECT和INSERT操作,支持行级锁和专用缓冲区,不支持事务
    FEDERATED:用于访问其他远程MySQL服务器一个代理,它通过创建一个到远程MySQL服务器的客户端连接,并将查询传输到远程服务器执行
    而后完成数据存储,在MariaDB上的实现叫做FederatedX
    MariaDB支持的其他存储引擎:
    OQGraph、SphinxSE、TokuDB、Cassandra、CONNECT、SEQUENCE

    四、编译安装MySQL:http://www.cnblogs.com/fansik/p/5270334.html

    五、并发控制:锁
    锁策略:
    在锁粒度及数据安全性寻求的平衡机制;
    每种存储引擎都可以自行实现其锁策略和锁粒度;
    MySQL在服务器级也实现了锁,表级锁;用户可显示请求;
    (1) LOCK TABLES
    tbl_name [[AS] alias] lock_type
    [, tbl_name [[AS] alias] lock_type] ...
    lock_type:
    READ [LOCAL]
    | [LOW_PRIORITY] WRITE
    UNLOCK TABLES
    (2) FLUSH TABLES tb_name[,...] [WITH READ LOCK]
    (3) SELECT clase [FOR UPDATE] [WITH READ LOCK]
  • 相关阅读:
    Link assemblies causes app crashes if you have an EditText
    Link causes xamarin Android binding library project to crash
    Linux系统目录结构详解
    Centos Linux系统优化二
    Centos Linux系统优化一
    rm命令详解
    mv命令详解
    cp命令详解
    echo命令详解
    touch命令详解
  • 原文地址:https://www.cnblogs.com/fansik/p/7762947.html
Copyright © 2011-2022 走看看