数据存储的选用
最近二周时间,有一批文件结构的数据,需要转义和保存。由于有文件型的,还有关系数据。数据来自源各种数据库。
整理下思路:
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服务器提供其自身的哈希函数。必须有一列或多列包含>整数值。
浙公网安备 33010602011771号