面试问题:写一个接口从数据库中查找指定的10000条数据

一只池鱼 2019-04-04 02:47:57
用springMVC写一个接口,查询数据库,接口中会指定10000个id,然后返回这10000个id记录的详细信息。高效
谢谢
...全文
702 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
一只池鱼 2019-04-05
  • 打赏
  • 举报
回复
来刷刷,mysql in里面的数据虽然是不限制的,但是sql语句的长度是有限制的 肿么办
bcsflilong 2019-04-04
  • 打赏
  • 举报
回复
引用 4 楼 一只池鱼 的回复:
[quote=引用 2 楼 bcsflilong 的回复:]
可以这么理解吗 如果表中数据 大于10000但是不会大很多,不要循环查数据库,也不要拼in语句,这样效率都不高

建议一次查询出来 在java里循环。


如果表中数量级巨大,建议拼in语句

但是绝对不要查10000次


面试官并不满意这个答案他引导我用多线程[/quote]


一个电脑的IO 和处理能力是有限的 你开10000个线程 最后也是在这一台电脑上执行,而且线程创建和上下文切换本身也耗时


告诉他多线程不一定会快,如果数据量更大 可以分布计算


web程序最耗时的操作是开关数据库连接的这个过程。做成多线程开关10000次 数据库 那不是在扯淡吗
一只池鱼 2019-04-04
  • 打赏
  • 举报
回复
引用 2 楼 bcsflilong 的回复:
可以这么理解吗 如果表中数据 大于10000但是不会大很多,不要循环查数据库,也不要拼in语句,这样效率都不高 建议一次查询出来 在java里循环。 如果表中数量级巨大,建议拼in语句 但是绝对不要查10000次
面试官并不满意这个答案他引导我用多线程
一只池鱼 2019-04-04
  • 打赏
  • 举报
回复
引用 1 楼 931828653 的回复:
你的意思是 参数为10000个id的list数组吗, 然后遍历查询 返回?
随便你以什么方式,重点是要快
bcsflilong 2019-04-04
  • 打赏
  • 举报
回复
可以这么理解吗 如果表中数据 大于10000但是不会大很多,不要循环查数据库,也不要拼in语句,这样效率都不高

建议一次查询出来 在java里循环。


如果表中数量级巨大,建议拼in语句

但是绝对不要查10000次
931828653 2019-04-04
  • 打赏
  • 举报
回复
你的意思是 参数为10000个id的list数组吗, 然后遍历查询 返回?

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧