当前位置: 首页 > news >正文

网站系统中备案申请表深圳pc端网站开发

网站系统中备案申请表,深圳pc端网站开发,主页模板,小生互联免费主机2哥 :3妹,今天怎么下班这么晚啊。 3妹:嗨,别提了,今天线上出bug了, 排查了好久。 2哥:啊,什么问题呀? 3妹:我们内部的一个管理系统报错了, 最近排查下来是myb…

伤心
2哥 :3妹,今天怎么下班这么晚啊。
3妹:嗨,别提了,今天线上出bug了, 排查了好久。
2哥:啊,什么问题呀?
3妹:我们内部的一个管理系统报错了, 最近排查下来是mybatis报的错。 背景是这样的:

听我说

背景

这个系统的功能比较简单,就是从DB查询用户,并列表展示,用了1年了,都没什么问题。mybatis查询sql是这样的:

<select id="query" resultMap="BaseResultMap">select id, name, age from user_info where 
<if test="name !=null and name !='' ">name = #{name} 
</if> 
<if test="age !=null >AND age = #{age}
</if> 
</select>

2哥:这个sql看着也没问题啊
3妹:是的, 本来这个name不会这空的, 所以这个sql一直没问题, 可是最近业务逻辑变了,name可能为空。如果name为空的话就导致这条sql是 where and age=**, 这样就报错了。。

2哥:哦 明白,那3妹觉得有什么优化的方案吗?
3妹:把age查询放在前面吗?那这样age为空就也报错了,那怎么办呢?
2哥:其实,这种问题有2种解决方案,但本质思想是一样的:

方案一:在where最前面增加 1=1

比如改成:

<select id="query" resultMap="BaseResultMap">select id, name, age from user_info where 1=1 
<if test="name !=null and name !='' ">AND name = #{name} 
</if> 
<if test="age !=null >AND age = #{age}
</if> 
</select>

这样where后面不会紧跟and, 就不会报错啦。

方案二:表中增加字段deleted

表中增加字段deleted, 一是删除可以软删除, 二是在where最前面加上deleted=0, 这样比加1=1更优雅,也更意义。

<select id="query" resultMap="BaseResultMap">select id, name, age from user_info where deleted=0 
<if test="name !=null and name !='' ">AND name = #{name} 
</if> 
<if test="age !=null >AND age = #{age}
</if> 
</select>

扩展:增加1=1, 对性能有影响吗?

网上有种说法是,增加1=1后, 就不走索引,影响查询性能。那我们来测试下吧:
name字段为索引字段,
sql1:

EXPLAIN SELECT * FROM user_info WHERE name='张三';

sql2:

EXPLAIN SELECT * FROM user_info WHERE 1=1 AND name='张三';

通过对比上面两种sql输出结果可以看到possible_keys 和 key都使用到了索引进行检索。

结论:where 1=1 也会走索引,不影响查询效率。

3妹: 我还是在表里增加deleted吧,这样更优雅一些,还可以软删除,一举两得~
学到了

http://www.yayakq.cn/news/35053/

相关文章:

  • 品牌微信网站建设自己做的网站外国人能访问吗
  • 企业营销型网站建设哪家好网络营销策划的内容
  • 台州自助建站系统WordPress自定义前端登录
  • 做任务赚佣金网站有哪些学动漫有什么出路
  • 国外可以做推广的网站吗自建网站网址
  • wordpress前端投稿插件郑州专业网站推广优化公司
  • 烟台商城网站建设app平台网站搭建
  • 丹徒网站建设咨询前端工程师是做网站吗
  • 蒲公英路由做网站郑州网站建设创新网络
  • 广东省做农业网站公司深圳平台网站建设
  • 哈尔滨公众号制作seo设计师品牌
  • 沈阳网站建设活动方案网建平台
  • 要给公司做一个网站怎么做上海外贸商品交易会
  • 南京网络建站模板进口手表网站
  • 山东川畅科技做网站多少钱jquery 打开新网站
  • 网站开发流程中有哪几个阶段分类目录不要前缀wordpress
  • 宣威市住房和城乡建设局网站下载中心东莞 网站建设
  • 云南网站建设效果好吗佛山营销型网页设计
  • 做企业网站设计手机站扬州网站制作
  • 建设网站实训心得辞职做美食网站
  • 自助建站免费平台wordpress仿微信公众号
  • 做商品网站的教学视频教程成品软件源码网站
  • 公司网站没备案海口专业做网站
  • 巢湖市网站建设推广大庆建设网站
  • 帮人做网站 怎么收费网站首页图片大全
  • 重庆网站备案规定怎么建立官网
  • 手机app定制开发关键词优化公司推荐
  • 昆明做网站公司有哪些好用的网站开发编辑器
  • 服装网站建设目的企业邮箱注册申请费用
  • 站内seo优化国外服装购物网站大全