我正在使用100亿条记录的Sqlite数据库。我有多列排序的要求。为此,我在数据库上创建了复合索引,这些索引改进了性能,但是当我们颠倒排序顺序时,性能依然不佳,而不是索引中指定的顺序。 例如我创建了索引 创建索引StudentIDNAMEIndex ( SID DESC, NAME DESC );在SQLite中提高没有索引的ORDER BY的性能
当我ORDER BY SID ASC,名称DESC或任何其他组合时,ORDER BY查询的性能急剧下降。由于不可能为每个组合添加索引,是否有另一种方法可以改进无索引或有效使用索引的排序?
如果你有这么多的记录,也许你应该看看更重量级的数据库,如Oracle,MySQL,SQL Server或PostgreSQL? SQLite被设计为简单而干净,使得引入更难。我命名的其他DBMS被设计用于低错误计数**和**以获得优异的性能。 – 2012-02-08 06:14:14
除了@AdamMihalcin的评论之外,值得指出的是,您不必为获得更重量级的数据库而付费,其中许多是免费的或者提供具有降低功能的免费版本(如SQL Server Express),这些免费版本这个任务的版本仍然比SQLite快得多 – Seph 2012-02-08 06:48:22