• 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]
  • 相关阅读:
    token是什么?和session什么区别,怎么用
    HashTable详解
    Cookie和Session的区别
    测试基础面试题
    什么是回归测试?回归测试的主要目的是什么?
    每天一个linux常用命令--ls 和 -ll 有什么区别?
    python中6个序列的内置类型分别是什么,列表和元组的异同有哪些
    今天去面试自动化测试,被几个问题问住了,记录下
    python排序算法-冒泡和快速排序,解答阿里面试题
    Myeclipse使用积累
  • 原文地址:https://www.cnblogs.com/fansik/p/7762947.html
Copyright © 2020-2023  润新知