SQL句子这么写,在数据库里查,很难提高效率
但结果不会一次把100w的东西显示给客户吧
应该是根据客户每页的需要limit出数据库排序尽量用javascript,把符合分到客户端去.
但结果不会一次把100w的东西显示给客户吧
应该是根据客户每页的需要limit出数据库排序尽量用javascript,把符合分到客户端去.
解决方案 »
- 求助:PHP调用数据库数据输出结果总重复一次。
- 拟目录收录快还是单一入口收录快呢?
- 去掉echo 则运行正常 加上则 www.baidu.com网页不显示
- 求教:PHP 安全涵数的类封装!
- 请问echo <<<,为什么没有输出结果啊?
- 这个sql语句总报错,请各位指点
- cookie才能设置20个?太少了,如何能做到象session一样,存上万个也没问题的
- 想知道session和cookie在使用上有什么区别?具体在什么场合应用session而不是cookie?
- 定义session应该在哪个页面?
- 这段PHP的代码能翻译成nodejs的express框架吗?
- 请问:如何将一个时间戳转换为: 2003-12-09 12:00 的形式?
- 请问,如何判断模板中的block是否存在?
2、按postdate这个名字看,应该是日期类型。那么降序的第2000000应该是很久远的数据了,可以仅凭postdate的值进行过滤,而不必拘泥与每页20条的增量
SELECT * FROM `db1` where a02 <> "" order by a061 desc LIMIT 1000000 , 30;
竟用了2.x秒
SELECT * FROM `db1` where a02 <> "" order by a061 desc LIMIT 100 , 30;
用:0.005x秒还有,在一个有十几万条记录中建立index,要十几秒
这数据有没有可能呢?如果是有没有什么好的解决办法?
按我前面回的,尽量不要使用order by,用javascript排,把符合分到客户端.
只要适当的建立索引,不会出现楼住的那种情况
2,如果不用ORDER BY 确实能提高效率
现在的问题就是:如果有ORDER BY 的话就会慢,但是我希望取的数据是最新的,换句话来说也就是取id值最大的或者postdate值最大的.
分段select是个好办法,但是如果进行分段搜索的话,
where id between min and max && isshow =1 order by pastdate desc limit 0,10;
如何取得min的值呢?id不连续的.如果MAX-100,划出一个范围,但是这100个里面如果没有isshow=1呢?那,再加大范围,1000,或者百分之几,如果出现没有isshow=1的情况呢?
谢谢楼上所以的人.
SELECT * FROM `db1` where a02 <> "" LIMIT 1000000 , 30;
确实,不用order by 之后是快了很多,只用0.5x秒,但是如果就有1000000条合条件的,我又要按照一定的顺序取得其中一定量的内容,如果不用order by ,那是否要把所有合条件的传回,再用js处理呢?
另外
to Jatic(要学的太多了):
a02<>""
a02不为""的记录不多吧?如果要是where a02=(大数据量记录的),你再试试.很慢.就算你做了index
这是最不可取的办法,不到万不可以时最好不要用,大量的数据在网络中传输不是问题也是问题
2、我150万条记录在主频166的服务器上检索大约10秒左右。由于是nt,使用com可使时间下降到2-3秒。当然这与服务器性能有很大的关系,不过现在都是数G的服务器了。
3、按时间降序排列再取2000000条以后的数据,说是“最新的”应该打个问号。
用“<>”与“=”在符合条件记录差不多条件下时间代价差不多。
用order by 的话要慢很多就是在大量数据时如何实现如 foolfish(呆鱼)所说的js排序有没有其它好的方法呢?
我以前也想过分段查
可是:
where id between min and max && isshow =1 order by pastdate desc limit 0,10;
如何取得min的值呢?
1,id不连续的.
2,如何能确定在这个范围内确实有isshow=1并且大于10条的记录呢?
3,搜索范围越大,速度也就越慢谢谢楼上所以的人.
select title from brick_post where forumid=3 limit 630000,10;(forumid=3的记录有329340条)
查询时间3秒多,将近4秒,不能忍受.
select title from brick_post where forumid=6 limit 630000,10;(forumid=6的记录有7条)
查询时间0.000x
总记录数329352.
这是我测试的结果.