在mysql中,时间类型使用datetime,timestamp,int哪一个性能最高?

提问者:帅平 问题分类:数据库

mysql中时间类型的表示我们可以使用datetime,timestamp和int,那么在查询的时候使用哪个类型效率最高呢?

1 个回答
满意答案
Rae
Rae 管理员

在mysql中,效率这块其实主要和存储引擎相关。对于上诉的三个时间类型的字段进行比较的话,结果如下:

1、MyISAM引擎,在不建立索引的情况下,效率从高到低依次是:

int > unixtimestamp(timestamp) > datettime(直接和时间比较) > timestamp(直接和时间进行比较) > unixtimestamp(datetime)

2、MyISAM引擎,在建立索引的情况下,效率从高到低依次是:

UNIXTIMESTAMP(timestamp) > int > datetime(直接和时间比较)> timestamp(直接和时间比较)> UNIXTIMESTAMP(datetime)

3、InnoDB引擎,在不建立索引的情况下,效率从高到低依次是:

int > UNIXTIMESTAMP(timestamp) > datetime(直接和时间比较) > timestamp(直接和时间比较)> UNIXTIMESTAMP(datetime)

4、InnoDB引擎,在建立索引的情况下,效率从高到低依次是:

int > datetime(直接和时间比较) > timestamp(直接和时间比较)> UNIXTIMESTAMP(timestamp) > UNIXTIMESTAMP(datetime)

发布于:2个月前 (09-24)
Rae
Rae管理员

最后,总结一下:对于 MyISAM 引擎,采用 UNIX_TIMESTAMP(timestamp) 比较;对于InnoDB 引擎,建立索引,采用 int 或 datetime直接时间比较

发布于:2个月前 (09-24)
我来回答