美文网首页
MySQL插件式存储引擎(下)

MySQL插件式存储引擎(下)

作者: 麒麟楚庄王 | 来源:发表于2018-12-01 12:14 被阅读0次

    https://blog.csdn.net/u013457382/article/details/51190468

    在MySQL 5.1中,MySQL AB引入了新的插件式存储引擎体系结构,允许将存储引擎加载到正在运行的MySQL服务器中。

    使用MySQL插件式存储引擎体系结构,允许数据库用户为特定的应用需求选择专门的存储引擎,完全不需要管理任何特殊的应用编码要求。采用MySQL服务器体系结构,由于在存储级别上提供了一致和简单的应用模型和API,应用程序编程人员和DBA可不再考虑所有的底层实施细节。因此,尽管不同的存储引擎具有不同的能力,应用程序是与之分离的。

    MySQL插件式存储引擎的体系结构

    插件式存储引擎体系结构提供了标准的管理和支持服务集合,它们对所有的基本存储引擎来说是共同的。存储引擎本身是数据库服务器的组件,负责对在物理服务器层面上维护的基本数据进行实际操作。

    应用程序编程人员和DBA通过位于存储引擎之上的连接器API和服务层来处理MySQL数据库。如果应用程序的变化需要改变底层存储引擎,或需要增加1个或多个额外的存储引擎以支持新的需求,不需要进行大的编码或进程更改就能实现这类要求。MySQL服务器体系结构提供了一致和易于使用的API,这类API适用于多种存储引擎,通过该方式,该结构将应用程序与存储引擎的底层复杂性隔离开来。

    常用存储引擎简述

    MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意,通过更改STORAGE_ENGINE配置变量,能够方便地更改MySQL服务器的默认存储引擎。

    InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持。

    BDB:可替代InnoDB的事务引擎,支持COMMIT、ROLLBACK和其他事务特性。

    Memory:将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。

    Merge:允许MySQL DBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起,并作为1个对象引用它们。对于诸如数据仓储等VLDB环境十分适合。

    Archive:为大量很少引用的历史、归档、或安全审计信息的存储和检索提供了完美的解决方案

    Federated:能够将多个分离的MySQL服务器链接起来,从多个物理服务器创建一个逻辑数据库。十分适合于分布式环境或数据集市环境。

    Cluster/NDB:MySQL的簇式数据库引擎,尤其适合于具有高性能查找要求的应用程序,这类查找需求还要求具有最高的正常工作时间和可用性。

    CSV : 引用由逗号隔开的用作数据库表的文件。

    Blackhole:用于临时禁止对数据库的应用程序输入。  

    Example:可为快速创建定制的插件式存储引擎提供帮助。

    对于整个服务器或方案,并不一定要使用相同的存储引擎,你可以为方案中的每个表使用不同的存储引擎。


    将存储引擎指定给表


    可以在创建新表时指定存储引擎,或通过使用ALTER TABLE语句指定存储引擎。 

    要想在创建表时指定存储引擎,可使用ENGINE参数:

    CREATE TABLE tablename(

     id INT, 

    ... 

    ) ENGINE = MyISAM; 

    要想更改已有表的存储引擎,可使用ALTER TABLE语句:

    ALTER TABLE tablename ENGINE = ARCHIVE;

    插入存储引擎


    能够使用存储引擎之前,必须使用INSTALL PLUGIN语句将存储引擎plugin(插件)装载到mysql。例如,要想加载example引擎,首先应加载ha_example.so模块:

    INSTALL PLUGIN ha_example SONAME 'ha_example.so';

    为了安装插件式存储引擎,文件.so必须位于MySQL服务器库目录下的plugin文件下,plugin文件必须位于恰当的MySQL库目录下,而且发出INSTALL PLUGIN语句的用户必须具有SUPER权限。

    可用

    show engines;

    显示出所有存储引擎,support列代表存储引擎的使用状态

    default 表示该存储引擎为默认的存储引擎

    yes 表示当前数据库已安装该存储引擎

    no 表示当前数据库未安装该存储引擎

    disable 表示该存储引擎被禁用


    拔出存储引擎

    要想拔出存储引擎,可使用UNINSTALL PLUGIN语句:

    UNINSTALL PLUGIN ha_example;

    如果拔出了正被已有表使用的存储引擎,这些表将成为不可访问的。

    相关文章

      网友评论

          本文标题:MySQL插件式存储引擎(下)

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