SQLite:INSERT和ORDER同时进行

时间:2010-07-27 10:43:18

标签: sql sqlite

我有一个包含25.000行的表(带字符串的列)。

我想改进我的选择查询。 “SELECT name FROM table WHERE name LIKE'something'ORDER BY name LIMIT 15”

数据库将是静态的。

我想知道当我在表格中插入一行时是否可以订购列,如果表格已按名称排序,是否会减少选择查询的时间?

3 个答案:

答案 0 :(得分:2)

您所要求的内容没有意义 - ORDER子句仅适用于SELECT,而不适用于INSERT操作。 (例如,你会点什么?)

如果您正在讨论构建某种形式的index,只要您指定名称列为index(理想情况下,在构建table时)就不会你还可以做很多事情 - 由RDBMS系统的作者来处理其余部分。 (即:他们决定何时构建/更新索引等等 - 你无法控制它。)

答案 1 :(得分:2)

如果数据库是静态的,为什么要使用它?只需对程序中的15个名称进行硬编码即可。如果您的意思是表不会更改,那么为了改进您的查询,您可以在名称列名称上添加索引或使用更多的缓存。

答案 2 :(得分:0)

以下内容将起作用:

INSERT INTO TABLE1 (S1, S2, S3) SELECT S1, S2, S3 FROM TEMP ORDER BY S1, S2, S3

此处的排序是在插入之前作为SELECT语句的一部分完成的。