Sharding-JDBC数据库字段加解密透明化方案

Sharding-JDBC数据库字段加解密透明化方案

前言 近期,博主公司应安全审计要求,需要对数据库中的用户关键信息做加密处理,这样,即使生产数据被脱裤,也不会泄露用户的敏感信息,在做了初步的需求归纳和功能分析后,我们制定了简单的开发方案,将需要加解密的字段通过配置和注解的方式标记出来,尝试使用hibernate的filter和Interceptor针对用户sql做拦截,做到透明化加解密。但是这个方案很快被否决了,查询结果集没法...

阅读全文 »

关于mysql的事务,这些你都了解了么?

关于mysql的事务,这些你都了解了么?

前言 这篇博文源于公司一个批处理的项目异常而起的。先简单描述下发生背景。一个基于spring batch开发的批处理应用,线上运行了9个多月后,某一天突然跑批任务失败了,检查日志得知,是因为一个mysql异常导致的:Lock wait timeout exceeded。msyql事务锁等待超时这个异常虽然不常见,但随便一搜就会看到大量的相关的信息。导致这个异常的原因就是mysql数据库事务锁等待超时,默认超时时...

阅读全文 »

mysql日志binlog消费初体验

mysql日志binlog消费初体验

前言碎语 早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅消费的业务,产出了canal项目。canal的原理很简单,就是如上图片所示 canal模拟mysql slave的交互协议,伪...

阅读全文 »

mysql 连接异常Communications link failure

前言碎语 最近在监控线上日志时发现,时长会抛出如:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet successfully received from the server was 4,977,174 milliseconds ago. The last packet sent successfully to the server was 1 milliseconds ago 异常信息,通常见到如上异常,是因为应用使用了连接池管理连接,有些连接已经失效了,拿失效的连接去请求mysql导致的,这个就是经典的mysql八小...

阅读全文 »

SQL优化神器-SQLAdvisor

前言碎语 曾几何时,你为了一条sql效率寻遍互联网的每个角落,也许,你会读到这么一篇sql优化的文章 《MySQL索引原理及慢查询优化 》 ,然后你恍然大悟,sql索引还有一个叫 最左前缀匹配的原则,并不是一味的建索引就可以解决慢查询的问题。今天,有这样一个工具,在你还在思考如何最左前匹配的时候 ,他已经帮你解析快速分析出你的sql,并给出索引优化建议,是不是很nice,好...

阅读全文 »

读写分离--美团数据库中间件DBProxy

读写分离--美团数据库中间件DBProxy

前言碎语 好久没更博了,今天给大家分享一款数据库中间件- 美团DBProxy! 我们都知道,随着数据量的不断增大,传统的直连数据库对数据进行访问的方式已经无法满足一般公司的需求。相对于分库分表,通过数据库中间件,可以更简单轻松的对数据库进行水平扩展,由原来单台数据库扩展到多台数据库,数据库中间件通过路由规则将数据的访问请求路由到其中一台数据库上,从而大...

阅读全文 »

mysql函数大全

mysql函数大全

一、数学函数 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整数值 EXP(x) 返回值e(自然对数的底)的x次方 FLOOR(x) 返回小于x...

阅读全文 »