首页 > 数据库技术 > 详细

MySQL学习笔记之五:存储引擎

时间:2016-03-13 18:12:03      阅读:228      评论:0      收藏:0      [点我收藏+]

1、InnoDB

  ⑴InnoDB是基于聚簇索引建立的,基于主键索引查询时,性能较好;它的辅助索引中必须包含主键列;因此,若表上的索引较多,为节约空间,主键应尽可能小

  ⑵InnoDB支持自适应hash索引、事务、行级锁、热备份,采用MVCC支持高并发;

  ⑶表存储格式:

   ①将所有innodb表的数据放置同一个表空间中;

       表结构定义:tb_name.frm (数据库目录下)

       数据和索引:统一的表空间文件中    

     innodb_data_file_path:表空间文件的文件名称及特性

       可使用相对(相对于innodb_data_home_dir而言)或绝对路径,且可定义多个文件;

       例:innodb_data_file_path = ibdata1:20G;ibdata2:10G;ibdata3:1G:autoextend

     innodb_data_home_dir:表空间文件的存储位置,省略时表示使用数据目录(datadir变量定义的位置);

    ②每张表使用单独表空间;MariaDB中已默认启用此存储格式    

       表结构定义:tb_name.frm

       数据和索引:tb_name.ibd

     SET {GLOBAL|SESSION} innodb_file_per_table = ‘on‘;

     优点:迁移或备份数据更精细灵活

     缺点:DROP TABLE操作的性能较差

  ⑷InnoDB缓冲池:buffer pool,由InnoDB维护的内存空间,用于缓存索引及数据;缓冲池如果太大,预热会比较慢。

     innodb_buffer_pool_size

  ⑸查看InnoDB存储引擎的状态:SHOW ENGINE INNODB STATUS;


2、MyISAM

  ⑴支持全文索引、压缩、空间函数;

   不支持事务、行级锁、热备份;

   崩溃后无法安全恢复;

   支持延迟更新索引键(delayed_key_write):每次修改表后,修改的索引数据不会立即写入磁盘,而是写入内存的键缓冲区,只有当清理键缓冲区或关闭表时才会写入磁盘,这样提高了写性能,但数据库崩溃时,易造成索引损坏。

  ⑵表存储格式:每张表都有三个文件(位于数据库目录下)

     tb_name.frm:表格式

     tb_name.MYD:数据

     tb_name.MYI:索引


3、其它存储引擎

   Memory:早期叫HEAP表,将数据放在内存中,因此访问速度快,但无法持久存储数据,显式支持hash索引。

   CSV:将数据存储为文本文件,字段以逗号分隔;不支持索引,常用于数据交换的场景。

   Merge:MyISAM的变种,将多个MyISAM表合并表示为一个虚拟表;

   Federated:访问其它MySQL服务上数据的代理;MariaDB上用的是FederatedX

   Blackhole:没有任何存储机制,所以会丢弃所有的插入的数据;

   NDB:Cluster:mysql集群的存储引擎

   第三方存储引擎:

     OLTP类:

       XtraDB:InnoDB的改进版

       PBXT:支持ACID和MVCC

       TokuDB:支持使用分形树的索引结构,适用存储大数据

     面向列的存储的引擎:按列为单位进行存储,适合压缩等,适用于存储大数据

       Infobright, InfiniDB, LucidDB

     社区引擎:

       Aria:MyISAM的改进版,支持崩溃后安全恢复

       OQGraph:支持图操作

       SphinxSE:为sphinx全文搜索引擎提供了SQL接口;

       Spider:可以将数据切分成不同的分区,较透明实现分片功能;


4、存储引擎的选择

    选择标准:是否支持事务,热备份,崩溃后恢复等

    数据仓库建议使用MyISAM或Aria,在线事务处理建议使用InnoDB


MySQL学习笔记之五:存储引擎

原文:http://9124573.blog.51cto.com/9114573/1750542

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!