Answers:
MySQL建议出于各种原因使用索引,包括消除条件之间的行:http : //dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html
如果要在查询中频繁使用的条件下使用datetime列,则它是索引的理想选择。如果唯一条件是条件,BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 30 DAY)
并且条件中没有其他索引,则MySQL将必须对每个查询进行全表扫描。我不确定30天内会产生多少行,但是只要它少于总行的1/3,在列上使用索引会更有效。
关于创建高效数据库的问题非常广泛。我要说的只是确保它被规范化并且所有适当的列都被索引了(即在联接和where子句中使用的列)。
SELECT
即使我索引了date time
列,查询也不会更快。 ..使用equal
操作时,索引使查询快速。.是吗?
在这里,作者进行的测试表明,整数unix时间戳优于DateTime。注意,他使用了MySql。但是我感觉无论您使用哪种数据库引擎比较整数都比比较日期稍快,因此int索引比DateTime索引要好。以T1-比较2个日期的时间,T2-比较2个整数的时间。在索引字段上进行搜索大约需要O(log(rows))时间,因为基于某种平衡树的索引-对于不同的DB引擎,索引可能有所不同,但无论如何,log(rows)是常见的估计。(如果您不使用基于位掩码或基于r树的索引)。因此,差异是(T2-T1)* Log(rows)-如果您经常执行查询,则可能会起作用。
field 20
啊