执行数据库
JAVA如何实现1秒钟执行1000次数据库查询?感谢邀请,如果,在没有其他条件下,仅一个普通查询比如:select name from user where id=100;像这种查询,主键查询+查询字段少,1000次,如果,网
JAVA如何实现1秒钟执行1000次数据库查询?
感谢邀请,
如果,在没有其他条件下,仅一个普通查询比如:select name from user where id=100;像这种查询,主键查询+查询字段少,1000次,如果,网络状况非常好,比如本地测试,加上机器性能好,数据结构简单,表的量也不是太大的情况下。几乎无需任何处理,直接循环访问,或多线程访问都应该没有问题。
然而,事实显然并非如此,其实,我更希望你能说的使用场景清晰点。这样能更准确定位问题所在,而非现在这样瞎猜。
从前面,我举例来看,可以发现要让Java高频访问(1000次/秒)数据库,是有很多条件的。而这些条件都可能是你的瓶颈。
比如,网络条件不好,我们应该知道数据库查询这其实是个socket网络tcp连接。一次数据包发送,时延都可以超过1秒。
比如,表的数据量大,例如,超过100亿记录,就算是主键查询,也不会太快的。1000次/秒,或者更多的访问会直接把一般的数据库弄残废的。
相对而言,Java程序上的瓶颈反而不那么明显,往往问题出在查询前后的逻辑处理上,而实际上我们也很少会有不处理的纯查询动作。
微信朋友圈里自己分享过的内容存储在服务器端数据库中,执行哪条sql语句可以批量删除?
首先删除肯定是用delete语句。
然后就是说这个删除操作。我觉得任何的线上项目在做delete操作时候都有必要备份数据库哦,本人就吃过亏,所以强烈建议备份,不管你觉得是否有必要。
最后,确定了需要做删除,然后就是看sql语句怎么写了。无非就是
delete from tablename where ……
这里表名自己填好,然后where里面的内容就是自己要删除的数据的查询条件。这里我也建议大家根据where里面的条件做一次selete操作,确定自己的where条件是刚好满足需求,不会删除其他数据,然后再执行自己的delete操作。
反正数据库在自己额外操作delete和update操作的时候,最好备份。可能有的朋友会嫌麻烦,或者嫌我啰嗦,但是真正遇到过误操作,而且又没有备份的朋友,才知道备份数据对数据库恢复的重要性。其他的这里就不多说了。
如果平均一个页面数据库要执行200次查询,这个数量级有问题吗?有一个合理的阈值吗?
其实最理想的情况是尽可能少的与数据库进行交互,因为数据库提供的功能就是数据储存和检索,那么我们有很多办法将常用的数据刷到内存中缓存,这样一来可以大大提升性能并且减少传输。
还有一个额外需要考虑的,200次数据库检索,比如你一次检索出1kb的数据,200次就是200kb,100个人就是20mb,这样显然是不合适的,这还仅仅是访问一个页面
这些数据非得一次性取出吗?不能采用异步? 腾讯微博首页调用了非常多的数据,但却快速响应,最主要的就是对内容按主次异步加载,按需加载
如果这200次查询不能拆分的话,那只能说你们的系统耦合性太高了,架构得改耦合太强了不好
本文来自投稿,不代表本站立场,如若转载,请注明出处。