如何在sqlite数据库中存储字符串数组并保持顺序

时间:2014-06-13 07:34:20

标签: c# arrays string sorting sqlite

我想将大量字符串存储到我的sqlite数据库中。当我将它们添加到数据库中时,我希望它们始终处于相同的顺序。我知道我可以给他们一个自动增量主键并按此排序,但由于最多可以有100.000个字符串,这是一个性能问题。此外,订单不应改变或以任何不同的方式排序。

简短的例子:

sql insert" hghtzdz12g" sql insert" jut65bdt" sql insert" lkk7676nbgt"

sql select *应该总是给出这个命令{" hghtzdz12g"," jut65bdt"," lkk7676nbgt" }

任何想法如何实现这个?

由于

2 个答案:

答案 0 :(得分:2)

在像

这样的查询中
SELECT * FROM MyTable ORDER BY MyColumn

如果对列进行索引,则数据库不需要对结果进行排序,因为它只能按顺序扫描索引条目。

rowid(或您称之为autoincrementing列的任何内容)是一个索引,甚至比单独的索引更有效。

答案 1 :(得分:0)

如果你确定除了这个数组之外你永远不需要任何东西,你可以欺骗数据库并放入一个blob字段。

但是你应该问问自己为什么你首先选择了一个数据库。

正确的数据库解决方案确实是一个使用您可以排序的键的表。

如果此性能不够,您可以查看here以获得性能提示。

如果您需要超快的性能,那么数据库可能不是最好的工具。数据库用于ACID能力,速度不是其中之一,而是软件中所有内容的次要目标。