美文网首页mysql源码阅读
2.1 mysql存储-存储引擎

2.1 mysql存储-存储引擎

作者: 花盆有话说 | 来源:发表于2020-08-25 10:26 被阅读0次

    前言

    上一章我们只是过一下,如果你拿到一个mysql源码如何去编译。你会问题,学会这个有什么用呀?当然有用啦,万一那天让你去改mysql源码呢!_

    本章开始,我们就需要根据我日常使用的一些流程,来慢慢的去了解mysql的源码。本章去看看mysql是怎么存储的。

    存储引擎

    存储引擎是MySQL最核心的模块,并且非常复杂,希望能够通过自己一些有限的支持,能够给大家讲出去。

    存储引擎解决什么问题

    存储引擎将数据存储到文件或者内存中,不同的存储引擎数据的存储机制、索引技术、锁的能力都是有差别的。存储类型是在定义表结构的时候就已经确定的,因此也叫做表类型。

    查看存储引擎

    首先看看,MySQL都支持哪些存储引擎

    mysql>show engines;
    
    Engine Support Comment Transactions XA Savepoints
    ARCHIVE YES Archive storage engine NO NO NO
    BLACKHOLE YES /dev/null storage engine (anything you write to it disappears) NO NO NO
    MRG_MYISAM YES Collection of identical MyISAM tables NO NO NO
    FEDERATED NO Federated MySQL storage engine NULL NULL NULL
    MyISAM YES MyISAM storage engine NO NO NO
    PERFORMANCE_SCHEMA YES Performance Schema NO NO NO
    InnoDB DEFAULT Supports transactions, row-level locking, and foreign keys YES YES YES
    MEMORY YES Hash based, stored in memory, useful for temporary tables NO NO NO
    CSV YES CSV storage engine NO NO NO

    从上面的信息看,InnoDB做为mysql的默认存储引擎,并且支持事务、XA事务以及部分事务。因此,也是现在最广泛的使用的存储类型。在某度上面简单介绍了下整体的存储引擎,可以让我们在做类型选择的时候快速的做一个大致的选择。

    总结

    本章大致了解了下,MySQL的存储类型。可以思考下,我们日常开发中,在定义表类型的时候,现在回想下,有没有根据不同的业务去定义不同的表类型。如果我们使用了各种各样的表类型,这个数据库管理的复杂度会增加,这块需要怎么去处理。

    都说了是源码分析,可是到现在都没有出现一行源码。下一章肯定有_

    相关文章

      网友评论

        本文标题:2.1 mysql存储-存储引擎

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