摘要:
###1.前言 这个题目有点大。工作也有些年头,从开始入行的被动接受,什么流行就学什么;到有一些想法,会去思考为什么使用这种技术;再到主动去学习一些前沿框架。从开始的不理解,事不关已高高挂起,不在其位不谋其政;到也成为了团队中的中坚力量,去据理力争应该使用某些技术,把觉得好的技术安利给同事,试图引入 阅读全文
摘要:
奥卡姆剃刀原理,“如无必要,勿增实体"。 在一些小型项目当中,没有引入消息中间件,也不想引入,但有一些业务逻辑想要解耦异步,那怎么办呢? 我们的web项目,单独内网部署,由于大数据背景,公司消息中间件统一使用的kafka,在一些小项目上kafka就显得很笨重。 引入rocketmq或rabittmq 阅读全文
摘要:
昨天写了一篇文章[《小细节,大问题。分享一次代码优化的过程》](https://www.cnblogs.com/eryuan/p/17593372.html),里面提到了list.sort()和list.strem().sorted()排序的差异。 说到list sort()排序比stream(). 阅读全文
摘要:
某个接口耗时大约8s,一开始我以为是io(主要是数据库)或者网络传输的瓶颈问题。 想着多半是SQL优化的问题。 接手一看,没有进行任何的IO操作或网络传输,仅仅是内存循环处理而已。 我的开发电脑cpu是i7 8代,其运算能力,大概是,整数51.74GIPS,浮点43.99GFLOPS 一个GFLOP 阅读全文
摘要:
几乎每个web系统都离不开各种状态码。订单新建,待支付,未支付,已支付,待发货。 消息已读未读,任务待标记待审批已审批待流转已完成未完成。等等。 复杂一点的,会有多级状态码。 状态码超出3个的,一般都会纳入统一的字典管理。字典系统作为一个独立的微服务部署。 使用Redis作为缓存。其它系统使用字典的 阅读全文
摘要:
多年后,面对Quicksql的时候,我将会想起刚参加工作面对mongodb复杂聚合查询的那个遥远下午。 那是一种淡淡的忧伤,这么多年来,这种忧伤仅次于Neo4j那独树一帜的语法给我带来的惊()喜()。 warning! warning! warning! 以下是一个基于java api的管道聚合查询 阅读全文
摘要:
in/or到底能不能用索引应该是肯定的,但有时生效有时不生效,这个能不能量化计算?这是本文想讨论和解答的问题。 - - - in到底用不用索引感觉像一桩悬疑片!古早时期的面经,统一说不走索引,在一些程序员脑海中从此留下不可磨灭的印记。 有些从业时间较长的程序员脑子里的第一反应就是不走索引,上个月我就 阅读全文
摘要:
in/or到底能不能用索引应该是肯定的,但有时生效有时不生效,这个能不能量化计算?这是本文想讨论和解答的问题。 - - - in到底用不用索引感觉像一桩悬疑片!古早时期的面经,统一说不走索引,在一些程序员脑海中从此留下不可磨灭的印记。 有些从业时间较长的程序员脑子里的第一反应就是不走索引,上个月我就 阅读全文
摘要:
在微服务大行其道的今天,按理说不应该有多数据源这种问题(嗯,主从库算是一个多数据源的很常见的场景。),但是也没人规定不能这样做。 就算有人规定的,曾经被奉为圭臬的数据库三大范式现在被宽表冲得七零八落,在很多场景下,其实是鼓励建立冗余字段的。 话说项目中需要用到图数据库,我们选用了Neo4j。 什么是 阅读全文
摘要:
前端的菜单和按钮权限都可以通过配置来实现,但很多时候,后台查询数据库数据的权限需要通过手动添加SQL来实现。 比如员工打卡记录表,有id,name,dpt_id,company_id等字段,后两个表示部门ID和分公司ID。 查看员工打卡记录SQL为:`select id,name,dpt_id,co 阅读全文
摘要:
运维同事导入一批大约500万左右的数据,耗时较久。他使用的是纯SQL导入,主键使用的是UUID,因为业务原因没有使用自增ID。 因为是内网,不能远程访问。 通过沟通,大致觉得有两个原因,一是因为UUID作为主键,二是表字段繁多,单行加起来接近10000的长度引起行溢出。 因为是临时一次性任务,同事没 阅读全文