为什么日期用LEFT去比较?BETWEEN AND 是SQL标准关键字为什么不用?
SELECT count(*) FroM log LogDateTime BETWEEN '2005-05-01' AND '2005-05-10'

解决方案 »

  1.   

    SELECT count(*) FROM log WHERE LogDateTime BETWEEN '2005-05-01' AND '2005-05-10'
      

  2.   

    我建立索引了,但速度还是很慢。因为我要统计一个月的浏览量,会在一个程序里把这个月的总浏览量和这个月每一天的浏览量都统计出来,会不会是在一个程序里做这些统计会很慢呢?我用MYSQL客户端工具,手工输入SQL语句分别查询每天的统计结果是很快就会出来的。
      

  3.   

    一、在下愚见,整数类型的字段进行比较快于日期时间型和字符型.所以把时间日期形字段转换为 UNIX 时间戳(距1970年1月1日 00:00:00 的秒数)更好,即10位无符号整数 ,很多国外论坛都用这种方式存储时间。1、入库,直接用php的time()函数返回的秒数.
    2、统计,先用php计算UNIX 时间戳的上限和下限,再把这两个限制数 入SQL进行统计即可。二、你要做的工作是(建议)
    1、建立一个新字段,整形 ,10位,无符号
    2、更改入库代码,以后的数据直接存入新的日期字段
    3、写段程序批量把旧的日期转化成时间时间戳存入这个新字段
    4、删除原来的日期字段
      

  4.   

    如果日志不重要,今后不需要再用的话,可另建一张STAT表 存统计结果,每到月末,把统计结果存入STAT表 ,删除前一个月的日志表中的纪录另外,为了区分是周统计结果还是月统计结果,搂主可以在STAT表里加个字段以示区别谁来删除旧日之的的问题:每月的第一个访问者,由程序判断,毋需管理员干预。
      

  5.   

    我强烈建议换数据库,MYSQL一张表超过10万条记录的时候,访问这个表的时候速度明显边的慢,我们认真测试过MYSQL的速度,特别是insert 和update  语句,没有什么好的办法,特别象你说的达到百万的记录的时候毕竟MYSQL是免费的,没有办法
      

  6.   

    MySQL Server was originally designed to work with medium size databases (10-100 million rows, or about 100MB per table) on small computer systems.
      

  7.   

    valley74(valley74),写的解决方法很详细,谢谢啦。另外, wy2000490(军) 建议我会数据库,我会考虑的,谢谢你!
      

  8.   

    我觉得可能不是mysql数据库的问题,
    LEFT(LogDatetime,13)这句话不能索引得到,他要遍历字段才能得到,所以会慢,尤其您有10个字段!
    用其他数据库也不会快到那里去!
      

  9.   

    我觉得可能不是mysql数据库的问题,
    LEFT(LogDatetime,13)这句话不能索引得到,他要遍历字段才能得到,所以会慢,尤其您有10万个字段!
    用其他数据库也不会快到那里去!