欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

mysql timestamp类型时间比较大小时查询的问题

环境:ubuntu 1G,mysql 5.6.34
数据类型:test中create_time字段的类型

`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP

test表中该字段值存如下:
图片描述

第一种查询

 SELECT 
  `id`,
  `site_id`,
  `create_time`,
  `client_ip` 
FROM
  `test` 
WHERE ( create_time >= '2017-9-27 0:0:0' ) 
ORDER BY id DESC 
LIMIT 0, 20 

第二种查询

 SELECT 
  `id`,
  `site_id`,
  `create_time`,
  `client_ip` 
FROM
  `test` 
WHERE ( create_time >= '2017-9-27 17:24:4' ) 
ORDER BY id DESC 
LIMIT 0, 20 

第二种方式很慢,第一种很快就查出来了。
如果把第二种方式create_time的查询时间改为'2017-9-27 0:0:0',也会很快。
为什么跟上具体的小时分钟秒的时候会变慢?
难道跟create_time这个字段为timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP这种类型有关系?

1 个回答

0

应该是数据本身的问题。你可以试试,不带LIMIT 0, 20的话,两者返回的数据数量是否有差别。


来自  https://segmentfault.com/q/1010000011416887/a-1020000011418387

普通分类: