我正在设计一个大型数据库。在我的应用程序中,我将有很多行,例如,我目前有一个包含400万条记录的表。我的大多数查询都使用datetime子句来选择数据。索引mysql数据库中的datetime字段是一个好主意吗?
Select field1, field2,.....,field15 from table where field 20 between now() and now + 30 days
我正在努力保持数据库正常运行,并且查询运行平稳
此外,您认为创建高效数据库应该有什么主意?
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,在列上使用索引会更有效。
BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 30 DAY)
关于创建高效数据库的问题非常广泛。我要说的只是确保它被规范化并且所有适当的列都被索引了(即在联接和where子句中使用的列)。