通过与 Jira 对比,让您更全面了解 PingCode

  • 首页
  • 需求与产品管理
  • 项目管理
  • 测试与缺陷管理
  • 知识管理
  • 效能度量
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案

25人以下免费

目录

分布式数据库,如hadoop、cassandra、mysql集群,主流是采用什么存储技术

分布式数据库,如hadoop、cassandra、mysql集群,主流采用了DAS存储技术。除了MySQL以外,其他的都是经典的分布式系统。这些分布式系统通常假定任何设备都是不可靠的,算法上会对数据做冗余存储,因此对介质本身的要求相对较低DAS即可。

一、分布式数据库,如hadoop、cassandra、mysql集群采用的技术

分布式数据库,如hadoop、cassandra、mysql集群,主流采用了DAS存储技术。除了MySQL以外,其他的都是经典的分布式系统。这些分布式系统通常假定任何设备都是不可靠的,算法上会对数据做冗余存储,因此对介质本身的要求相对较低DAS即可。

MySQL相对特殊。一般而言,如果用MySQL,题主要用的是关系数据库,且数据一般是比较重要的,例如存储跟钱有关的数据。此时,存储本身的可靠性就非常重要了。MySQL等数据库系统往往对底层的存储系统有这样一个假定:凡是写入存储系统的数据,都不能丢。换句话说,MySQL与其他几种分布式系统的不同之处在于MySQL假定底层存储是可靠的,而其他几种分布式系统是假定底层存储是不可靠的。因此,为了确保MySQL能够一如既往的正常工作,必须提供可靠的底层存储。那么,商用的NAS和SAN就是一种选择。

这里想再多说一句,其实NAS和SAN描述的只是接口。提供文件系统操作接口的,例如NFS/CIFS,属于NAS。提供块或卷操作接口的,例如iSCSI,属于SAN。如果进一步说下去,NAS和SAN都有可能也是分布式系统,例如HDFS可以说是一种非POSIX标准的NAS,CEPH可以说是一种SAN。

延伸阅读:

二、数据库中的概念

Table:数据库中的表,下文称“table”或者“表”。

Column:表中的各个字段,下文称“column”或者“列”或者“字段”。

Row:表中的各条记录,下文称“row”或者“行”

Index:表中的索引,用户可以建立索引以便加速搜索,但是用户无法直接使用索引,下文称“index”或者“索引”。

View:数据库中的视图,一种由实际的表导出的可视化的表,并不实际存储。

Virtual table:虚拟表是一种表现得像表的对象,从SQL语句的角度看,虚表可以和表或者view一样操作,但是对虚拟表的查询或者修改操作会调用注册在虚拟表上的回调函数,虚拟表机制使程序可以提供类似于SQL的表的接口供SQL语句操作。隐藏在虚拟表下的数据结构可能是内存中的数据,或者通过即时运算得出的结果,或者是磁盘上的文件(比如CSV)。下文称“virtual table”或者“虚拟表”。

Shadow table:FTS(全文搜索)中所使用的每个virtual table,都有3-5个真实的数据库的table(分别名为%_content、%_segdir、%_segment、 %_stat、%_docsize,%是FTS virtual table的名字)来在实现,这些table被称为shadow table。

Trigger:数据库中的触发器,由修改数据库的事件触发的存储过程,下文称“触发器”或者“trigger”。

Schema:SQLite数据库的结构(有哪些table/index/view/trigger,分别有哪些字段),下文称“schema”。

Rowid:rowid是SQLite中的表隐含的一个column,是其内部id,在该表中少数,是SQLite中的元数据。

Statement:SQL语句。

Prepared statement:经过“预备”的SQL语句,所谓“预备”类似编译,可以再多次执行同一语句的时候加速(跳过“预备”过程)。

sqlite_master:sqlite数据库中维护的系统表,该表的b-tree的根页号永远为1,有5个列,分别是类型(table, view, index,trigger,四者之一)、名称、所在表名、根页号、SQL语句。

Journal:日志

Transaction:事务是用户定义的一系列数据库操作,要么全部执行,要么全部不执行。

Magic string:类似“魔数/幻数”,SQLite数据库文件特征头。

Fraction

Auto-vacuum:自动清空

Incremental-vacuum

BLOB:Binary Large OBject

相关文章