我有一個表25.000行(字符串列)。SQLite:INSERT和ORDER在同一時間
我想改進我的選擇查詢。 「SELECT name FROM FROM WHERE name LIKE'something'ORDER BY name LIMIT 15」
數據庫將是靜態的。
我想知道當我在表格中插入一行時是否可以對列進行排序,以及如果表格已經按名稱排序,會減少選擇查詢的時間?
我有一個表25.000行(字符串列)。SQLite:INSERT和ORDER在同一時間
我想改進我的選擇查詢。 「SELECT name FROM FROM WHERE name LIKE'something'ORDER BY name LIMIT 15」
數據庫將是靜態的。
我想知道當我在表格中插入一行時是否可以對列進行排序,以及如果表格已經按名稱排序,會減少選擇查詢的時間?
如果數據庫將是靜態的,爲什麼要使用它?只需在程序中對這15個名字進行硬編碼即可。如果您的意思是表格不會改變,那麼爲了改善您的查詢,您可以在名稱列名上放置索引或使用更多數量的緩存。
+1非常好的一點。 :-) – 2010-07-27 11:00:21
喜歡的東西下面的工作:
INSERT INTO TABLE1 (S1, S2, S3) SELECT S1, S2, S3 FROM TEMP ORDER BY S1, S2, S3
此處的排序爲插入前SELECT
語句的一部分來完成。
請注意,聚簇索引通常控制磁盤上數據的順序,因此可能是他想要的 - 在名稱列上聲明聚簇索引。儘管與任何優化一樣,RDBMS可能只是將其作爲提示而不是採取行動。 – Rup 2010-07-27 10:55:27