分析MySQL中隐式转换导致查询结果错误及索引不可用

以下是例子

1
SELECT * FROM TABLE WHERE xxx = 11

如果列xxx确实只有11的,你是否就认为筛选出来的就一定只有xxx=11的呢?

在过滤字段为数值类型的时候,数值类型有一种隐式转换,如果是以数字开头的,包含有字符,后面的字符会被截断,只取前面的数字值。

查看更多

分享到 评论

记一次MySQL死锁排查过程

背景

大概说一下业务场景,需要定时计算一些数据,从其他系统、接口拉取达到的数据比较多,然后经计算后的值存储在本系统中。拉取的数据量可能有万左右,然后以主键存在的数据是需要更新的。不存在则插入。每次做全量更新/插入。

查看更多

分享到 评论

合适以及为何使用最少使用(LFU)缓存与Golang中的实现

[译]合适以及为何使用最少使用(LFU)缓存与Golang中的实现

在过去的这些年,参与计算机科学和工程师的人们一直在努力优化各种性质。我们生活在一个资源有限的世界里,人们一直致力于优化成本和速度的方法。

在软件工程方面而言,我认为,最流行的改善性能的就是缓存了。在许多app都有缓存,依赖于软件方面的存储,缓存背后的想法非常简单。为了加载较快,存储数据经常被用到。

查看更多

分享到 评论

vim技巧

目录

简介
小技巧
启动及关闭
教程篇
文本编辑
文本编辑的高效命令
other

简介

得益于 vim 的指法,敲起代码来如行云流水。不管是不是写代码,学好vim 指法相当重要,当然最重要的还是为了效率,节省时间做更多其他的事。

查看更多

分享到 评论

golang-defer

defer的使用特点

其实其中一点特性我理解起来就有点像java中的finally的用法

关于官方解释

1
2
3
A defer statement defers the execution of a function until the surrounding function returns.

The deferred call's arguments are evaluated immediately, but the function call is not executed until the surrounding function returns.

这里提到了defer调用的参数会立即计算,但在周围函数返回之前不会执行函数调用。

查看更多

分享到 评论

2018年总结

帝都的生活

       依稀记得在18年初的时候,毅然决定从重庆离职,离开这个舒适区,因为我明白,在这边待越久,差距就会越来越大,等到过完年来帝都搬砖。来到这边才感知和重庆的天壤之别。

查看更多

分享到 评论

我所读过的书

这里记录一下关于我读过的书籍

查看更多

分享到 评论

分布式架构

在应用的迭代过程中,随着一些系统访问量高,用户数增多。业务复杂度提高,代码复杂度提高。
应用逐渐从单体式架构面向服务的分布式架构转变。于是,RPC远程过程调用是分布式的核心。

分享到 评论

elasticsearch社区分享会

在前段时间加班的时候错过了两场我想去的技术会,这次终于没落空了。大佬也多,涨了不少姿势。特此记录一下分享,由于全凭记忆叙述,可能就没啥顺序而言的还原出之前的收获。

查看更多

分享到 评论

关于生成订单号规则的一些思考

关于我为什么写这篇文章是因为今天在做订单模块的时候,看到之前的PRD上描述的订单生成规则是由 年月日+用户id2位+企业id位
+四位自增长数。然后竟被我反驳的突然改成了精确时间+4位自增长数,于是我更失望了。

我们考虑一下,据我所常见的订单基本都14-20位。(年月日时分秒和随机数)基本上就有14位了。虽然一般项目做不到淘宝双11这种
支付峰值达到每秒10万笔订单.但是我觉得至少事先可以考虑到,想必当初淘宝或许也没意识到以后发展得这么好。

查看更多

分享到 评论