在sqlite中,对于大型数据库来说,当值将是以ms为单位的纪元时间戳时,是否具有INTEGER或TEXT或DATETIME或TIMESTAMP列类型的性能或多或少?即1384639972645 - 它们似乎都起作用,这意味着我可以将它们定义为其中任何一个,并且就我所知,值的存储方式相同。
如果列类型之间的列中有100,000或1,000,000条具有此类值的记录,那么查找性能是否存在差异?
答案 0 :(得分:1)
SQLite使用dynamic typing并且不关心声明的列类型;无论你使用INTEGER还是TIMESTAMP或FLUFFY BUNNIES都没关系。
列类型唯一用于确定type affinity。 如果使用TEXT类型,则所有值将作为字符串存储在数据库中,并且在使用时必须从/转换为数字。所有其他类型都具有NUMERIC亲和力。
如果要记录数据类型,请使用类似TIMESTAMP_MS或MILLISECONDS的类型。