如果使用
select max(datetime) from (select * from tbl_1 order by datetime asc limit 50000) tmp;
然后
select * from tbl_1 where datetime<@dt order by datetime desc limit 10
union
select * from tbl_1 where datetime>@dt order by datetime asc limit 10;
存在结果集很大时,查询效率问题--第一次查询计划中,取max是通过中间结果集获取的,无索引可用,中间结果集越大,问题越突出。
select max(datetime) from (select * from tbl_1 order by datetime asc limit 50000) tmp;
然后
select * from tbl_1 where datetime<@dt order by datetime desc limit 10
union
select * from tbl_1 where datetime>@dt order by datetime asc limit 10;
存在结果集很大时,查询效率问题--第一次查询计划中,取max是通过中间结果集获取的,无索引可用,中间结果集越大,问题越突出。
解决方案 »
- Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server
- MYSQL存储过程 NULL与传入值 的比较运算结果有问题~
- 这个sql该怎么写呢?
- 数据库恢复
- 請問各位用MYSQL是在命令行下使用還是在圖行界面下使用啊
- 帮帮忙!
- 我下了一个MYOLEDB.EXE文件,安装好后,果真在的选项中多了一项可连MYSQL的,可真正连时总提示“灾难性故障”,这是怎么回事呀?
- 怎么把id=1的行内的时间相减得到worktime
- mysql如何使用union合成到指定表?
- 多个查询字段使用单独索引还是复合索引好?
- mysql 触发器可以使用判断语句吗?
- 求删除数据的SQL语句
你这不行的,如果这样也可以,我不用问了。你觉得逻辑和要求一样吗?datetime只是加入时间,不是加入次序,如果有加入次序,那也太简单了吧
问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧)
如果存在重复的加入时间,那么必然需要ID之类的字段来排序,你又不说这个排序依据是什么,还在责怪人家的逻辑......况且自己也是在用order by datetime