• mysql中常见的存储引擎和索引类型


    存储引擎

    1.      定义

    存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)。

    在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。而MySql数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。

    2.      存储引擎的类型及特点

    引擎名称

    优点

    缺陷

    应用场景

    MyISAM

    独立于操作系统,这说明可以轻松地将其从Windows服务器移植到Linux服务器

    不支持事务/行级锁/外键约束

    适合管理邮件或Web服务器日志数据

    InnoDB

    健壮的事务型存储引擎;支持事务/行级锁/外键约束自动灾难恢复/AUTO_INCREMENT

     

    需要事务支持,并且有较高的并发读取频率

    MEMORY

    为得到最快的响应时间,采用的逻辑存储介质是系统内存

    当mysqld守护进程崩溃时,所有的Memory数据都会丢失;不能使用BLOB和TEXT这样的长度可变的数据类型

    临时表

    MERGE

    是MyISAM类型的一种变种。合并表是将几个相同的MyISAM表合并为一个虚表

     

    常应用于日志和数据仓库

    ARCHIVE

    归档的意思,支持索引,拥有很好的压缩机制

    仅支持插入和查询功能

    经常被用来当做仓库使用

    详细请参考:

    http://blog.csdn.net/codepen/article/details/46678725

    http://www.cnblogs.com/lina1006/archive/2011/04/29/2032894.html#commentform

    索引

    Nomal

    没什么好说的

    Unique

    列值不能有重复,主键就是一种特殊的唯一索引

    Full Text

    用于全文检索,仅可用在MyISAM/InnoDB引擎表格的char、varchar和text的字段上

    创建:

    CREATE TABLE article ( 

              id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, 

              title VARCHAR(200), 

              body TEXT, 

               FULLTEXT(title, body) 

    ) TYPE=MYISAM; 

    使用:

    --单列,单词

    SELECT * FROM `student` WHERE MATCH(`name`) AGAINST('聪')

    --多列,多词

    SELECT * FROM `student` WHERE MATCH(`name`,`address`) AGAINST('聪 广东')

    --用IN BOOLEAN MODE即可以避开50%的门槛限制。

    SELECT * FROM `student` WHERE MATCH(`name`) AGAINST('聪' IN BOOLEAN MODE)

    ---------------------------------

    B-Tree索引:

    B-Tree 索引是 MySQL 数据库中使用最为频繁的索引类型,除了 Archive 存储引擎之外的其他所有的存储引擎都支持 B-Tree 索引。B-Tree 索引的物理文件大多都是以 Balance Tree 的结构来存储的,也就是所有实际需要的数据都存放于 Tree 的 Leaf Node ,而且到任何一个 Leaf Node 的最短路径的长度都是完全相同的。

    Hash索引:

    将索引字段转化为hashcode,在对hashcode进行排序。仅支持Memory引擎。

  • 相关阅读:
    linux基础指令(下)
    Linux基础命令(中)
    wtforms校验组件
    Linux基础命令(上)
    Scrapy
    SQLAlchemy
    自定义命令
    flask-session
    解决Failed to allocate memory: 8转
    如何做需求
  • 原文地址:https://www.cnblogs.com/panchangde/p/11582534.html
Copyright © 2020-2023  润新知