2013-03-01 107 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加入这些表应该尽可能快(可以将这些表合并为一个)。