2013-03-01 104 views

回答

1

像你提到的那樣爲你的表建立索引已經很不錯了,但是根據索引順序在磁盤上物理排序表使它幾乎是理想的。

爲此,您可以創建clustered indexes in SQL Server(聚簇索引也支持其他一些數據庫,如PostgreSQL)。不幸的是,SQLite不支持聚簇索引。顯然,只有一個索引可以聚集 - 基本上,這是表格頁面將嘗試在磁盤上進行物理排序的索引。

此外,在所有數據庫(包括SQLite的),你可以簡單地複製你的表,而根據指標重新排序它,使用類似

CREATE TABLE mytable_ordered AS 
SELECT * FROM mytable 
ORDER BY key_column; 

DROP TABLE mytable; 

ALTER TABLE mytable_ordered RENAME TO mytable; 

CREATE INDEX mytable_key_column_idx ON mytable (key_column); 

你也應該這樣做對你提到的另一大表。 在此之後,通過訂購密鑰1:1加入這些表應該儘可能快(可以將這些表合併爲一個)。