数据存储的选用

     最近二周时间,有一批文件结构的数据,需要转义和保存。由于有文件型的,还有关系数据。数据来自源各种数据库。

整理下思路:

   1 用开源的文件型数据库。---所谓的文件数据库:

 查了下定义如下:文件数据库又叫嵌入式数据库,将整个数据库的内容保存在单个索引文件中,以便于数据库的发布。例如Sqlite,Firebird,Access等。

研究了下对应的数据特性。可能需要存储一张亿级的表。直接放弃。

  2 oracle,sqlserver等传统的关系型数据库。数据量到达一定级别后,本身会变的非常昂贵。用oracle和sqlserver的好处是平常工作都是使用这几个数据库。

 3 BigTable :分布式数据存储系统,用来处理海量的数据的一种非关系型的数据库。

 4 暂时选定用mysql。

分区应该注意的事项:

1、 做分区时,要么不定义主键,要么把分区字段加入到主键中。

2、 分区字段不能为NULL,要不然怎么确定分区范围呢,所以尽量NOT NULL

 

二、分区的类型

    • RANGE 分区:基于属于一个给定连续区间的列值,把多行分配给分区。
    • LIST 分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。
    • HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包>含MySQL中有效的、产生非负整数值的任何表达式。
    • KEY分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL服务器提供其自身的哈希函数。必须有一列或多列包含>整数值。

posted on 2015-01-21 15:23  luweishun  阅读(124)  评论(0)    收藏  举报

导航