==算法,,看看这个面试题== 数据库里有3000万条数据,取出前50条,机器2G的内存 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不是很懂...感觉就和分页一样吧...mysql 用limitsqlserver 用 toporacle用 rownum 鸡蛋里面找骨头 用rownum先得把数据都查一遍,数据量太大不很好 taobao的面试题,人家支付宝确实有这么多用户的,不是挑骨头,兄弟。 3000w数据的没处理过,近千万数据的就查过,用分页查询,也没觉得慢那需要自己写算法oracle是很强大的 。 排序是不可能的!要用算法实现,分而治之,每个数据集大小为:3000万/50,从每个中挑出最大值(max()),然后汇总。 有没有排序,如果有排序的话,性能不会很好的,sqlselect * from tablea where rownum <= 50; 可以用分析函数解决:select * from (select a.*, rownumber() over(order by id asc) as r from t) where r <= 50 这个想快点 很难啊 比如说在数据库上不好查找数据的某一个字段符合要求 这样的话就只能只能去遍历, 若是想为这个字段建一个个索引表 似乎代价太大 总的来说 若遍历 对3000W个数据分n个区 启动 n个线程同步搜索 将返回的 集合一起 但 如何是50个最合适数据 就是个大问题 其实最好建一个包装类 将对象包装另外新建一个合适度的属性 在搜索算法搜索是可以进行评分 用来的到合适的 分表, 索引, partition ... 3000万条 找50条,在一张表中,如果是mysql ,,基本是N 久 初学Java,还没接触到数据库…… select * from t where rownum < 51; 请把题发完整了 这个实在是太片面了,我也可以不用编程,给我个数据库,用SQL语言select一下不就把有关键字的遍历了一遍吗,像你说的最大的数,那就用 select max,以此类推,所以你说的太笼统了。 如果是考 数据库,我 还要 大家 想算法 干什么呢?用 select语句明显是不行的。 还有 这个 题目明显是要排序吗 不然要2g内存 干什么啊 报错:Exception in thread "main" java.lang.NullPointerException java 写文本文件 字符转数组问题,帮忙解答 如何实现图形界面 为什么找不到lomboz插件 请问在java 中能否让鼠标指针按某种轨迹自己移动?是否有这样的类或方法? 解释?? -- 简单问题 -- 国内Java论坛之我见 大侠们!请大家帮忙! 为什么Vector里边不能放基本数据类型,为什么? jComboBox怎么设置为不可用?
感觉就和分页一样吧...
mysql 用limit
sqlserver 用 top
oracle用 rownum
用rownum先得把数据都查一遍,数据量太大不很好
select *
from (select a.*, rownumber() over(order by id asc) as r from t)
where r <= 50
只能去遍历, 若是想为这个字段建一个个索引表 似乎代价太大
总的来说 若遍历 对3000W个数据分n个区 启动 n个线程同步搜索 将返回的 集合一起 但 如何是50个最合适数据 就是个大问题
其实最好建一个包装类 将对象包装另外新建一个合适度的属性 在搜索算法搜索是可以进行评分 用来的到合适的