程序员日常工作总结2020-01-21

22 篇文章 0 订阅
12 篇文章 0 订阅

mysql 如果一个表有可能 并发比较高,请尽量拿自增id 作为主键

这里就要说到 自增作为主键 和 uuid 作为主键的区别:

  1. 自增主键 节省内存空间,是连续的,而uuid 是非连续的,内存使用率 相差10倍以上

  2. 并发比较大的时候 无论你程序 写的多好,数据库设计的多完美,都有可能1s 进来很多条(这里代指20条),这个时候 除了避免这种情况,也要方便去重

那么怎么去重呢,大概的思路肯定是 select from A表 where id not in (select id from A表 group by barcode order by createTime desc)

排除barcode 重复的数据 ,只留createTime 最新的一条

这是普遍的想法,但是这里如果 createTime dateTime 类型,然后1s insert 20条,这个时候我想留最新的,我只能是max(id) ,如果是uuid 我就判断不出来了。

 

2.还有springboot 接口的返回值,是int 类型 一定要写Integer 类型,因为int 默认值 0 不一定是真的0 integer 没有就为空就好

3.定义一个接口的时候,参数要定义为一个对象,这样方便之后扩展

4.如果您要写if 判断 需要考虑是否需要影响后续操作

如果不影响 请使用

if(waybillEntity != null) {

 

}

如果希望影响请使用 

if(waybillEntity == null) {

    return ;

}

这是有的时候 大家会一不小心就导致程序中途退出,所以需要注意一下 结合自己的实际情况

 

 

 

总结:

  1. mysql 表能用自增主键 就要用自增主键

  2. springboot 接口的返回值,是int 类型 一定要写Integer 类型

  3. 定义一个接口的时候,参数要定义为一个对象

  4. 您要写if 判断 需要考虑是否需要影响后续操作 要注意结合您的应用场景,不要 看到百度 上写的 要用 if(waybillEntity == null)  让代码更规范,这是要看自己的场景的,

难道说 

if(waybillEntity == null) {

   

}else {

    xxx

}

这种就规范了?不见得吧

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孔明兴汉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值