如何查询某年某月的记录?如2007年8月的所有评论数?查询速度要快,因为表比较大,而且还有其他表要连,所以最好可以少用函数。

解决方案 »

  1.   

    要非常的块就得改变你的表结构。
    把年月日分别存放到一个字段里用INT类型。然后再建立一个聚集索引。
      

  2.   

    慢的可以用DATE_FORMAT(startDate,'%Y-%m')
      

  3.   

    改结构,在把日期存成int型,建立索引,直接查询。
      

  4.   

    表有多大,而且你连表的个数是多少。
    基本上时间类型也可以按照INT类型来对待。
    你的SQL 语句用EXPLAIN 分析一下,然后该加索引的加索引,做其他优化的做优化。
      

  5.   

    表现在数据不多,但以后用起来最起码是几十万的,大概连四个表吧。除了加索引,还能怎么优化?而且如何查询某年某月的记录?只能用DATE_FORMAT?
      

  6.   

    select DATE_FORMAT(now(),'%Y-%m');
    select concat(year(now()),'-',month(now()));
      

  7.   

    或者用 theDate >= @mnBgnDate and theDate < @mnEndDate