zoukankan      html  css  js  c++  java
  • Engines

    表类型

    CREATE TABLE ... ENGINE=

    常见的存储引擎:

    InnoDB:

    处理大量的短期事务;
    数据存储于“表空间(table space)”中:
      (1)可以将所有InnoDB表的数据放置于同一个表空间中;
           表空间文件:datadir定义的目录下:
             数据文件(存储数据和索引):ibddata1, ibddata2, ...
      (2)也可以每个表单独使用一个表空间存储表的数据和索引;
           innodb_file_per_table=ON
    
           数据文件(存储数据和索引):tbl_name.ibd, 
           表格式定义:tbl.frm
    
    基于MVCC来支持高并发,支持所有的四个隔离级别,默认级别为REPEATABLE READ;间隙锁防止幻读
    InnoDB使用聚集索引
    支持“自适应hash索引”
    锁粒度:行级锁
    
    MariaDB(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, redundent

    其他存储引擎:

    CSV:将普通的CSV(字段通过逗号分隔)作为Mysql表使用;
    MRG_MYISAM:将多个MyISAM表合并成为一个虚拟表;
    BLACKHOLE: 类似于/dev/null,不真正存储任何数据;
    MEMORY:所有数据都保存于内存中,内存表;支持hash索引;表级锁;
      临时表
    PERFORMANCE_SCHEMA:伪存储引擎;
    ARCHIVE:专用于做归档的存储引擎,只支持SELECT和INSERT操作;支持行级锁和专用缓冲区,不支持事务;
    FEDERATED:将自己扮演成mysql客户端,从而连到其他mysql服务器上,所做的查询操作都自动发给另一个服务器,获取数据后再返回
      用于访问其他远程MYSQL服务器的一个代理,它通过创建一个到远程mysql服务器的客户端连接,并将查询传输到远程服务器执行,而后完成数据存取;
        在MariaDB上的实现是FederatedX    

    MariadDB支持的其他存储引擎:

    OQGraph
    SphinxSE
    TokuDB
    Cassandra
    CONNET
    SQUENCE
  • 相关阅读:
    PV、UV、VV,CV的含义
    JS动态修改页面EasyUI datebox不生效、EasyUI动态添加Class、EasyUI动态渲染解析解决方案
    JavaScript Object.defineProperty()方法详解
    jquery on()方法绑定多个选择器,多个事件
    jQuery自定义事件
    jquery插件开发快速入门
    JavaScript日期处理
    js原生函数bind
    使用jquery.pjax实现SPA单页面应用
    PushState+Ajax实现简单的单页面应用SPA
  • 原文地址:https://www.cnblogs.com/ckh2014/p/14468262.html
Copyright © 2011-2022 走看看