数据库设计决策(NoSQL)

时间:2012-11-09 00:01:22

标签: nosql

我正在处理具有以下用例的应用程序:

  • 用户上传需要在应用程序重新启动时保留的csv文件
  • 需要查询/排序csv文件中的数据
  • 用户在上传文件时指定csv文件中的可查询列

目前提出的解决方案是:

  • 对于小文件(更常见),将数据转换为xml并将其存储为LOB或文件系统。对于查询,将整个数据粘贴到内存中并使用类似XQuery
  • 的内容
  • 对于较大的文件,请在数据库(MySQL)中创建动态表,并在可查询列上创建索引

虽然我们已经对此解决方案进行了原型设计并且运行良好,但它使我们无法支持更复杂的文件格式,例如XML和JSON。此解决方案还有一些问题,我不会讨论。

考虑到NoSQL数据库的无模式特性,我虽然可能会用它们来解决这个问题。我没有NoSQL的实际经验。我的问题是:

  1. NoSQL是否适合此用例?
  2. 如果是,哪个NoSQL数据库?
  3. 我们如何在数据库中存储csv文件(列标题组成键的键值对的集合以及每行的数据字段构成值?)
  4. 我们如何存储可能具有深层次结构的XML / JSON文件?
  5. 查询/索引和其他性能考虑因素如何?这与MySQL相比如何?
  6. 感谢您的回复,并提前致谢!

    示例csv文件:

    employee_id,name,address  
    1234,XXXX,abcabc  
    001001,YYY,xyzxyz  
    ...  
    

    DDL声明:

    CREATE TABLE `employees`(  
      `id` INT(6) NOT NULL AUTO_INCREMENT,  
      `employee_id` VARCHAR(12) NOT NULL,  
      `name` VARCHAR(255),  
      `address` TEXT,  
      PRIMARY KEY (`id`),  
      UNIQUE INDEX `EMPLOYEE_ID` (`employee_id`)  
    );  
    

    对于csv文件中的每一行

    INSERT INTO `employees`  
                    (`employee_id`,  
                     `name`,  
                     `address`)  
           VALUES (...);  
    

0 个答案:

没有答案
相关问题