美文网首页
MySQL(Mariadb)总结5 - MySQL(MariaD

MySQL(Mariadb)总结5 - MySQL(MariaD

作者: drfung | 来源:发表于2017-11-21 17:18 被阅读92次

    MySQL存储引擎

    表类型:

    CREATE TABLE ... ENGINE = []
    

    InnoDB:

    • 处理大量的短期事务;
    • 数据存储于"表空间(table space)"钟;
      • 所有InnoDB表的数据和索引放置于同意个表空间中;表空间文件;
        • datadir定义中
        • 数据文件:idbdata1,idbdata2, ...
      • 每个表单独使用一个表空间存储表的数据和索引;
        • innodb_file_per_table=ON
        • 数据文件(存储数据和索引): tb1_name.idb
    • 基于MVCC来支持高并发,支持所有的四个隔离级别,默认级别为REPEATABLE READ;间隙放置幻读;
    • 使用聚集索引;
    • 支持"自适应hash索引";
    • 行级锁
    • MariaDB中的InnoDB实际是是XtraDB,由percona公司维护;
    • 特性:
      • 数据存储: 表空间
      • 并发: MVCC,间隙锁
      • 索引: 聚集缩影, 辅助索引
      • 性能: 预计操作,自适应hash,插入缓存区
      • 备份: 支持度热备(xtrabackup)

    MyISAM:

    • 支持全文索引(FULLTEXT index),压缩,空间函数(GIS);但不支持事务,且为表级锁;
    • 崩溃后无法安全恢复 --> Aria: crash-safe
    • 适用场景: 只读(过着写较少), 表较小(可以接受长时间进行修复操作)
    • 文件:
      • tbl_name.frm: 表格式定义
      • tbl_name.MYD: 数据文件
      • tbl_name.MYI: 索引文件
    • 特性:
      • 加锁和并发: 表级锁
      • 修复: 手工或自动修复,但可能丢失数据
      • 索引: 非聚集索引
      • 延迟更新索引键
      • 压缩表

    行格式: dynamic, fixed, compressed, compact,redundant

    其他的存储引擎:

    • CSV:将普通的CSV文件爱你作为MySQL表使用;
    • MRG_MYISAM:将多个MyISAM表合并成为一个虚拟表;
    • BLAKHOLE: 类似于/dev/null,不真正存储任何数据
    • MEMORY: 所有数据都保存于内存中,内存表: 支持HASH索引,表级锁;
      • 临时表
    • PERFORMNCE_SCHEMA:伪存储引擎;
    • ARCHIVE: 仅支持SELECT和INSERT操作;支持行级锁和专用缓存区;
    • FEDERATED: 用于访问其他远程mysql服务器一个代理,它通过创建一个到远程mysql服务器的客户端而完成数据存储,在MariaDB的上实现是FederatedX

    MariaDB支持的其他存储引擎:

    • OQGraph
    • SphinxSE
    • TokuDB
    • Cassandra
    • CONNECT
    • SQUENCE

    并发控制:

    • 锁:
      • 读锁: 共享锁
      • 写锁: 独占锁
    • 锁粒度:
      • 表级锁
      • 行级锁
    • 锁策略: 在锁粒度及数据安全性寻求的平衡机制;
    • 每种存储引擎都可以自行实现其锁策略和锁粒度;
    • MySQL在服务器级也实现了锁,表级锁;用户可显示请求

    相关文章

      网友评论

          本文标题:MySQL(Mariadb)总结5 - MySQL(MariaD

          本文链接:https://www.haomeiwen.com/subject/euvwvxtx.html