MySQL日期型字段直接用VARCHAR(10)表示好不好?我这个日期比较固定,一般只表示一周的头一天,用来日期判断,效率会不会高一点?
解决方案 »
- show processlist\G 这是 什么情况啊 大虾们
- mysql数据导入问题
- 我使用了left和right这样的字段,写入数据库错误了。
- MYSQL存储过程实现多表插入
- mysql group by 排序问题
- 请问启动MySQL-Front时,要求添写server,这一项该添什么呀?
- 如何插入名次字段数据?
- 我想在sql中的所有表中查询哪些表存在co1这个字段怎么弄,
- 有关编译包含mysql数据库的C程序
- MySQL安装问题,安装一半手动退出后就成zhe'y'l
- mysql 还原数据库问题(MS很偏的问题)
- Lock wait timeout exceeded; try restarting transaction
如果你要基于这个字段做加减法,或者取出月份,或算星期几,则建议直接使用datetime型。
而日期型估计只需要用四个字节。显然,应该用日期型Date数据类型。
节省存储空间的同时,也会提高效率,也方便计算...
owner( int)
sdate(varchar(10)
action(int)那么如果我这三个键上建立一个联合索引(次序依以上顺序),那么我写SQL查询的时候是不是写如下比较高效率?
WHERE owner=11 AND sdate='2009-03-20' AND action=5;如果上面的WHERE语句中的顺序和索引中各自段的顺序不一样是否会低效?
那么我写SQL查询的时候是不是写如下比较高效率
-- 基本上是,但要看mySQL要SQL语句分析时候的具体动作。如果你还有其它条件的话。如果上面的WHERE语句中的顺序和索引中各自段的顺序不一样是否会低效?
-- 不会,mySQL会对SQL语句进行优化。以找到最佳执行方案(虽然很多时候找到的未必是)
我以前用VARCHAR()存储的,后来就因为牵扯到这些计算,结果惹了大麻烦,不得已,又修改了。