这是我基本的日期,时间结构:如何在Mysql中优化日期时间搜索?
primary key(datetime) key
auot_id date_time user_id
1 2010-10-01 20:32:34 1
2 2010-10-02 20:32:34 1
3 2010-11-03 20:32:34 2
4 2010-10-04 20:32:34 1
5 2010-11-05 20:32:34 1
而且我想在'2010-10'
得到day(date_time)
的结果和user_id = '1';
我的SQL是:
SELECT * FROM datetime WHERE user_id = 1 AND DATE_FORMAT(date,'%Y-%m') = '2010-10'
但EXPLAIN
码显示:
SIMPLE datetime ALL (NULL) (NULL) (NULL) (NULL) 5 Using where
所以,这行代码似乎并没有非常有效。我该如何构建表格以使我的搜索更有效?
非常感谢!
我是mysql新手。所以我不确定应该添加什么样的索引?我想我已经在它们上面建立索引了:INDEX'date'('date','user_id') – qinHaiXiang 2010-11-20 14:47:16
你想要它,因为'user_id'是一个“静态”值,因为'date'被传递给一个函数。 – Danosaure 2010-11-20 17:14:13
请参阅https://dba.stackexchange.com/a/140693/39319如果您担心午夜交易,用户可以更好地解释如何涵盖所有日期和时间段 – 2018-01-09 18:18:33