首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/u/4694922/blog/4964640

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

SQL 查找是否“存在“,别再 count 了,很耗费时间的!

目前多数人的写法 优化方案 总结 根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢? 无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的count 目前多数人的写法 多次REVIEW代码时,发现如现现象: 业务代码中,需要根据一个或多个条件,查询是否存在记录,不关心有多少条记录。普遍的SQL及代码写法如下 SQL写法: SELECT count(*) FROM table WHERE a = 1 AND b = 2 Java写法: int nums = xxDao.countXxxxByXxx(params); if ( nums > 0 ) { //当存在时,执行这里的代码 } else { //当不存在时,执行这里的代码 } 是不是感觉很OK,没有什么问题 优化方案 推荐写法如下: SQL写法: SELECT 1 FROM table WHERE a = 1 AND b = 2 LIMIT 1 Java写法: Integer exist = xxDao.existXxxxByXx...

缓存你问题真不少!

引言 2021年,2月底,一个超级疲惫的下午,离下班还有30分钟,小航拿了一袋每日坚果,对我说:”温哥,来来来,吃个坚果,开心下” 有了前几次的,经验,我意识到,这兄弟又要问题问题,委婉的回绝到:”谢谢好意,你吃吧,我不饿”。 小航,一看我有所防备,有拿出了安慕希,并且抓住了我的手臂,说道:“大神,我有困惑,请您帮帮我” 看他如此诚恳,我不好意思的说道:“大神不敢当,水平有限,恐无法为你解惑”。 小航一看有戏,有给了我一袋每日坚果,眼中有光的说道:“哥,您指点一二,无论对错,我都愿意听” 我感动(dong xi hao chi)的说:“什么问题,我试试看” 小航立刻说道:“使用缓存都有什么问题” 我缓缓道来:“主要四个问题,击穿,穿透,雪崩,污染” 问题描述 逐个解决 缓存击穿 热点key过期了,请求打到了数据库 解决方式 不给热点key设置过期时间 缓存穿透 缓存没有,数据库也没有。 解决方式 缓存空值或缓存缺省值 对入参进行校验,屏蔽无效参数请求 在redis前置布隆过滤器,快速判断 缓存雪崩 大量key同时失效 给key的过期时间加上随机数,避免同时过期 Redis挂了 Redi...

相关文章

发表评论

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat

Apache Tomcat

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

JDK

JDK

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。