程序员日常工作总结2020-01-21 - Go语言中文社区

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


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

}

这种就规范了?不见得吧

 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_25497867/article/details/104063192
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-02-13 14:12:46
  • 阅读 ( 800 )
  • 分类:职场

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢