Sql 如何在数据库上分发文本数据

Sql 如何在数据库上分发文本数据,sql,database,sqlite,save,Sql,Database,Sqlite,Save,我有一个关于数据分布的问题 例如,我有大量的文本,文本有十亿个段落,而且它们每天都在增长 我希望将每个段落分开,并将它们保存在不同的行中 段落按类型划分。每个段落都有一些类型,例如我有10000种类型 我有两个坏主意 将所有数据保存在表1中。-程序将运行缓慢 为每个表创建10000个表。-我只知道这是个坏主意 我的问题是如何分离数据,如何在数据库中分发数据?将所有数据放在一个表中没有错。 如果您的数据结构和用法意味着所有数据都应该放在一个表中(根据您告诉我们的,我认为它们应该放在一个表中),那么

我有一个关于数据分布的问题

例如,我有大量的文本,文本有十亿个段落,而且它们每天都在增长

我希望将每个段落分开,并将它们保存在不同的行中

段落按类型划分。每个段落都有一些类型,例如我有10000种类型

我有两个坏主意

  • 将所有数据保存在表1中。-程序将运行缓慢

  • 为每个表创建10000个表。-我只知道这是个坏主意


  • 我的问题是如何分离数据,如何在数据库中分发数据?

    将所有数据放在一个表中没有错。

    如果您的数据结构和用法意味着所有数据都应该放在一个表中(根据您告诉我们的,我认为它们应该放在一个表中),那么您应该将它们放在一个表中。在一个表中有数十亿行没有错。健壮的ODBMs可以处理这个问题。(但是,正如Gordon Linoff的评论,你应该考虑比SQLite更复杂的东西)。

    索引是有效提取数据子集的方法。

    您提到将使用以下查询检索数据:

    select * from table where type = 'type';
    
    如果在类型字段上放置索引,它将使您能够有效地提取这些行,而无需搜索所有记录。在列上创建索引的基本语法如下:

    create index index_name on table_name (column_name);
    

    尽管根据您的ODBMS,有各种选项可能与提高性能有关。

    将所有数据放在一个表中没有错。

    如果您的数据结构和用法意味着所有数据都应该放在一个表中(根据您告诉我们的,我认为它们应该放在一个表中),那么您应该将它们放在一个表中。在一个表中有数十亿行没有错。健壮的ODBMs可以处理这个问题。(但是,正如Gordon Linoff的评论,你应该考虑比SQLite更复杂的东西)。

    索引是有效提取数据子集的方法。

    您提到将使用以下查询检索数据:

    select * from table where type = 'type';
    
    如果在类型字段上放置索引,它将使您能够有效地提取这些行,而无需搜索所有记录。在列上创建索引的基本语法如下:

    create index index_name on table_name (column_name);
    

    尽管根据您的ODBMS有多种选择,但这可能与提高性能有关。

    通常情况下,一张表是最好的选择。但是,您的数据组织应该基于您希望如何使用数据。此外,“数十亿段”表示“数百GB”。我可能建议使用SQLite以外的数据库。谢谢Gordon,用户将使用类型选择数据。例如,从表中选择*,其中TYPE=“TYPE”。您认为使用一个表会减慢速度吗?文本文件中的数据格式是什么?是csv吗?它只会在数据库中显示nvarchar。一段一行,一张桌子通常是最好的选择。但是,您的数据组织应该基于您希望如何使用数据。此外,“数十亿段”表示“数百GB”。我可能建议使用SQLite以外的数据库。谢谢Gordon,用户将使用类型选择数据。例如,从表中选择*,其中TYPE=“TYPE”。您认为使用一个表会减慢速度吗?文本文件中的数据格式是什么?是csv吗?它只会在数据库中显示nvarchar。一段一行。