日期列上的查询执行缓慢 Select

Slow Select query execution on Date column

我从 SQL CE 数据库迁移到 SQLite 数据库 (3.18.0) 但是当 [=26] 中有日期时间列时我的查询速度很慢=].

我的 SQLite 存储日期时间的列是 INTEGER 类型。日期以 UNIX 纪元(秒)存储。

在具有 15 列和 1000 条记录的 table 上,我的查询大约需要 3 秒。 没有日期(只有名字)的相同查询是即时的。

SELECT Name,
CreatedDate    
FROM [Table] 

我必须在文本中存储日期吗?有什么特别的吗?

编辑:

来自 Entity framework,生成的查询是:

SELECT 
[Extent1].[VisualizationIndex] AS [VisualizationIndex], 
[Extent1].[Identifier] AS [Identifier], 
[Extent1].[IdentifierParent] AS [IdentifierParent], 
[Extent1].[IdentifierEnvironment] AS [IdentifierEnvironment], 
[Extent1].[IdentifierReference] AS [IdentifierReference], 
[Extent1].[Name] AS [Name], 
[Extent1].[Description] AS [Description], 
[Extent1].[Type] AS [Type], 
[Extent1].[Visibility] AS [Visibility], 
[Extent1].[Layer] AS [Layer], 
[Extent1].[Version] AS [Version], 
[Extent1].[Created] AS [Created], 
[Extent1].[LastModified] AS [LastModified]
FROM [CV_UsersComponents] AS [Extent1]
ORDER BY [Extent1].[Name] ASC

-- Executing at 10/31/2017 4:52:47 PM +01:00
-- Completed in 3433 ms with result: SQLiteDataReader

终于找到性能问题的根源了。 在 SQLite 中,列顺序非常重要!

我将 "created" 和 "lastModified" 列移到存储一些 XML 数据的 TEXT 类型列之前。

那么我的查询现在是即时的。 更多信息在这里: http://sqlite.1065341.n5.nabble.com/Does-column-order-matter-for-performance-td81880.html