环境: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这种类型有关系?
应该是数据本身的问题。你可以试试,不带
LIMIT 0, 20
的话,两者返回的数据数量是否有差别。