比如有:
select * from tbl_1 where type=1 order by datetime asc limit 80000;
我只需要从tbl_1中获取按时间排序后的记录中的最后一行,而不是全部80000行,如果使用fetch一直提取到最后一行,感觉不理想。有变通的办法没?实际的需求是:获取表中符合条件的某一行记录,和他前后10行记录。但定位“表中符合条件的某一行记录”不能通过id直接定位。php中支持直接fetch最后一行的操作吗?效率与从头fetch相比有提高还是一样的?如果使用
select max(datetime) from (select * from tbl_1 where type=1 order by datetime asc limit 80000) tmp;
同样存在结果集很大时,查询效率问题--查询计划中,取max是通过中间结果集获取的,无索引可用,中间结果集越大,问题越突出。
select * from tbl_1 where type=1 order by datetime asc limit 80000;
我只需要从tbl_1中获取按时间排序后的记录中的最后一行,而不是全部80000行,如果使用fetch一直提取到最后一行,感觉不理想。有变通的办法没?实际的需求是:获取表中符合条件的某一行记录,和他前后10行记录。但定位“表中符合条件的某一行记录”不能通过id直接定位。php中支持直接fetch最后一行的操作吗?效率与从头fetch相比有提高还是一样的?如果使用
select max(datetime) from (select * from tbl_1 where type=1 order by datetime asc limit 80000) tmp;
同样存在结果集很大时,查询效率问题--查询计划中,取max是通过中间结果集获取的,无索引可用,中间结果集越大,问题越突出。
解决方案 »
- PHP Exception 讨论
- php脚本如何做到文件不被删除?
- 这样写if else语句也能有错?????
- 有做过数据库保存图片的朋友给点意见
- 怎样将数组传值给jpgraph制作图片的函数?
- ADO+Access遇到的数据库更新问题
- 一个页面中多次使用mysql_connect()再用mysql_close(),与一个页面中只一次打开多次query后页面停止时才close()相比较
- 系统是win2000,程序用php,怎么样实现发电子邮件?
- 在提交表单时打开一个没有工具拦,和地址栏的新窗口
- 大家一般都用什么写php程序
- 关于php正则替换
- 想询问一下如何实现新建一个匹配某个xml schema的xml文档
直接提取第一行?看到手册有mysqli_data_seek可以直接提取最后一行,不知道它的工作效率怎么样。了解的朋友请来说一说。
如果 有索引 主键,TYPE 还会更快另外的需求,请看我这篇文章行号
select * from tbl_1 where type=1 order by datetime asc limit 80000;只取最后一行应写作
select * from tbl_1 where type=1 order by datetime asc limit 80000, 1;如果表中只有80000条记录,则
select * from tbl_1 where type=1 order by datetime desc limit 1;
嗯,没想到这样使用。既然已经问到mysqli_data_seek,有没有朋友熟悉它的?假设就是拿到了一个很大的结果集,用它定位到最后一回比,从头fetch到最后一行,性能差别大吗?
mysql好象没有缓冲池中间层好象上面的函数处理是这样的!一,连接不能释放;
二,取时可能要重新要数据库执行这个操作;具体查手册!
因为打开了一个资源,而资源仍在mysql上!