MySQL日期型字段直接用VARCHAR(10)表示好不好?我这个日期比较固定,一般只表示一周的头一天,用来日期判断,效率会不会高一点?

解决方案 »

  1.   

    也有很多应用的确是用varchar来存贮日期时间。特别是这个字段只用来排序,查找而不用于计算。
    如果你要基于这个字段做加减法,或者取出月份,或算星期几,则建议直接使用datetime型。
      

  2.   

    字符型,如果要存储日期大概需要8位字符?也就是8个字节
    而日期型估计只需要用四个字节。显然,应该用日期型Date数据类型。
    节省存储空间的同时,也会提高效率,也方便计算...
      

  3.   

    discuz是用int来存储日期的,查询的时候效率应该更搞
      

  4.   

    假设我现在某个表三个字段
    owner( int)
    sdate(varchar(10)
    action(int)那么如果我这三个键上建立一个联合索引(次序依以上顺序),那么我写SQL查询的时候是不是写如下比较高效率?
    WHERE owner=11 AND sdate='2009-03-20' AND action=5;如果上面的WHERE语句中的顺序和索引中各自段的顺序不一样是否会低效?
      

  5.   


    那么我写SQL查询的时候是不是写如下比较高效率
    -- 基本上是,但要看mySQL要SQL语句分析时候的具体动作。如果你还有其它条件的话。如果上面的WHERE语句中的顺序和索引中各自段的顺序不一样是否会低效?
    -- 不会,mySQL会对SQL语句进行优化。以找到最佳执行方案(虽然很多时候找到的未必是)
      

  6.   

    这玩意因为对mysql不太熟悉,也没时间测试。但是以前用过SQLServer,倒是绝对是这样的。
      

  7.   

    对的,对的,
    我以前用VARCHAR()存储的,后来就因为牵扯到这些计算,结果惹了大麻烦,不得已,又修改了。