一个表里有一百五十万条记录,表结构如下Create TABLE BID(
AUCTION_ID INT NOT NULL,
USER_ID VARCHAR(30) NOT NULL,
BID INT NOT NULL,
TIME DATETIME NOT NULL,
TYPE VARCHAR(20) NOT NULL,
PRIMARY KEY(AUCTION_ID,BID)
)需要建立查询找出某一时间段有多少DISTINCT USER_ID, 有没有什么高效的方案?
目前的查询用法是
SELECT COUNT(DISTINCT USER_ID) FROM BID WHERE TIMESTAMPDIFF(SECOND,TIME,E_TIME)<S_BF AND TIMESTAMPDIFF(SECOND,TIME,E_TIME)>0;其中E_TIME是给定时间点, S_BF是提前的秒数.我不知道能不能用索引提高效率,但是貌似索引是最直接比较时有效,但是时间比较用到了函数 TIMESTAMPDIFF实际测试对TIME建立索引后执行效率还是相同的请问各位高手,有招么
AUCTION_ID INT NOT NULL,
USER_ID VARCHAR(30) NOT NULL,
BID INT NOT NULL,
TIME DATETIME NOT NULL,
TYPE VARCHAR(20) NOT NULL,
PRIMARY KEY(AUCTION_ID,BID)
)需要建立查询找出某一时间段有多少DISTINCT USER_ID, 有没有什么高效的方案?
目前的查询用法是
SELECT COUNT(DISTINCT USER_ID) FROM BID WHERE TIMESTAMPDIFF(SECOND,TIME,E_TIME)<S_BF AND TIMESTAMPDIFF(SECOND,TIME,E_TIME)>0;其中E_TIME是给定时间点, S_BF是提前的秒数.我不知道能不能用索引提高效率,但是貌似索引是最直接比较时有效,但是时间比较用到了函数 TIMESTAMPDIFF实际测试对TIME建立索引后执行效率还是相同的请问各位高手,有招么
解决方案 »
- 微博的分页是怎么实现的?
- 用C++连接mysql数据库,为什么使用了CLIENT_MULTI_STATEMENTS仍然无法使用存储过程
- 求 mysqldump: Got error: 2003 的问题解决办法
- 在日文系统下,将txt文件导入数据库,txt中有中文,日文,英文,怎么才能不出现乱码
- mysql 存储过程 中文乱码
- 请教查看mysql中database以及table的默认字符集的方法
- mfc通过odbc连接mysql数据库如何读出mysql数据库中的中文?
- 我怎么用MySQL-Front无法登陆上我的MySQL数据库呢?
- 用shell执行mysqldump的奇怪问题
- 求一条sql语句
- MyISAM数据库恢复问题
- MySql时间段模糊查询??????
SELECT COUNT(DISTINCT USER_ID) FROM BID WHERE TIME between E_TIME-interval S_BF SECOND and E_TIME
SELECT COUNT(DISTINCT USER_ID)
FROM BID
WHERE `TIME` >E_TIME-interval S_BF SECOND and `TIME`< E_TIME可以考虑在user——id也加个索引
还有我的意思是 你可以在user_id上单独放个索引 或者不放 但是用我的语句去试试~