`
文章列表
MySQL在线更改schema的工具很多,如Percona的pt-online-schema-change、 Facebook的 OSC和 LHM 等,这些都是基于触发器(Trigger)的; gh-ost(这是目前快手dba使用的工具) 声称是github自己开源的不需要触发器(Triggerless)支持的在线更改表结构的工具   目前最常用的工具是pt-online-schema-change,大概原理 1)、如果修改表有外键,除非使用 --alter-foreign-keys-method 指定特定的值,否则工具不予执行 2)、被修改表必须要有主键,否则报错:Cannot c ...
1. undo log undo日志用于存放数据修改被修改前的值,是逻辑日志,比如delete sql 对应的undo log是一条insert sql。undo log作用有两个,一个是用于事务回滚操作,保证事务原子性,部分解决持久性;另一个是对MVCC实现,即MVCC实现是依赖于undo log的。   实现原子性和持久化的事务的简化过程   假设有A、B两个数据,值分别为1,2。 A.事务开始. B.记录A=1到undolog. C.修改A=3. D.记录B=2到undol

Mysql锁

1. 共享锁  排他锁  select * from xxx where a=10 lock in share mode //共享锁 其他事务中的普通select和共享select可以;  排他读以及增删改会阻塞   select * from xxx where a=10 for update //排他锁 其他事务中普通select读可以;共享读、排他读和增删改,都会阻塞   2. 快照读(snapshot read) 和 当前读 普通读,是snapshot读,在当前事务中第一次读是打版本号,当前事务后续所有的普通读,都会跟第一次普通读结果一样或者读取当前事务中对相关记录的 ...

Mysql隔离级别

1.《Mysql隔离级别》https://www.jianshu.com/p/4ba118333a19 Mysql innodb默认隔离级别 Repeatable Read,只是部分消除了 幻读问题,普通select语句是快照读(MVCC实现),不会读到其他事务新删改的记录,(但是share mode select 或者拍他锁的 select update insert delete 是当前读, 还是会出现幻读),标准的RR隔离级别定义,是可能出现幻读的,这不能算是mysql的bug,详细见 2的blog   RR隔离级别下的一致性读,不是以begin为开始建立的snapshot,而是 ...

Mysql命令

《Mysql inner join left join》 http://justcode.ikeepstudying.com/2016/08/mysql-%E5%9B%BE%E8%A7%A3-inner-join%E3%80%81left-join%E3%80%81right-join%E3%80%81full-outer-join%E3%80%81union%E3%80%81union-all%E7%9A%84%E5%8C%BA%E5%88%AB/   《Mysql MyIsam引擎》http://hudeyong926.iteye.com/blog/1489929

敏捷开发

https://www.qcloud.com/community/article/766331?fromSource=gwzcw.93748.93748.93748 《敏捷开发》

Redis 高并发原理

1 单线程模型 Redis客户端对服务端的每次调用都经历了发送命令,执行命令,返回结果三个过程。其中执行命令阶段,由于Redis是单线程来处理命令的,所有每一条到达服务端的命令不会立刻执行,所有的命令都会进入一个队列中,然后逐个被执行。并且多个客户端发送的命令的执行顺序是不确定的。但是可以确定的是不会有两条命令被同时执行,不会产生并发问题,这就是Redis的单线程基本模型。 2 单线程模型每秒万级别处理能力的原因 (1)纯内存访问。数据存放在内存中,内存的响应时间大约是100纳秒,这是Redis每秒万亿级别访问的重要基础。 (2)非阻塞I/O,Redis采用epoll做为I/O多路 ...

服务治理

服务如何治理,服务治理的目标是什么 1. 服务注册与发现 2. 服务订阅 3. 服务变更通知 http://www.cnblogs.com/Zachary-Fan/p/service_manage_discovery.html

Hbase介绍

1. 基于行和列族的管理 每个列族是个map http://blog.csdn.net/heyutao007/article/details/5766945 2. hbase一些特性,使用 row key获取的原子操作 http://www.uml.org.cn/zjjs/201211132.asp

RPC通信协议

    博客分类:
  • RPC
1.《Thrift通信协议》 可支持二进制序列化方式,省空间效率高 https://qinzhaokun.github.io/2017/09/12/Thrift%E9%80%9A%E4%BF%A1%E6%A8%A1%E5%9E%8B/

Mysql索引原理

《Mysql 索引原理》 http://blog.codinglabs.org/articles/theory-of-mysql-index.html   3. 《Mysql inner join left join》 http://justcode.ikeepstudying.com/2016/08/mysql-%E5%9B%BE%E8%A7%A3-inner-join%E3%80%81left-join%E3%80%81right-join%E3%80%81full-outer-join%E3%80%81union%E3%80%81union-all%E7%9A%84%E5%8C% ...

计划列表

    博客分类:
  • java
1. 操作系统   select poll epoll  NIO AIO, 用户态,内核态https://segmentfault.com/a/1190000003063859  介绍IO多路复用的 http://blog.csdn.net/anxpp/article/details/51512200 介绍java nio bio2. Mysql 相关,B+树,乐观锁,悲观锁, ACID, GAP3. 系统设计,高并发系统架构,秒杀系统,唯一订单号,12306设计4. 软件设计原则,设计模式, DDD5. 数据结构与算法,分治 动态规划,leetcode,一致性hash,LRU6. 计算机 ...
Spring MVC(2) - DispatcherServlet运行流程   再次看一下类的继承结构   http请求在Servlet的业务处理流程   // Called by the servlet container to allow the servlet to respond to a request. // javax.servlet.Servlet中定义的接口service,由 servlet container 调用 // 具体实现在HttpServlet类中 public void service(ServletRequest req, ServletR ...
本节主要讲Spring MVC的DispatcherServlet初始化, Servlet是不能自己启动,是由web容器(比如tomcat)启动和调用Servlet初始化的。DispatcherServlet实现和扩展了javax.Servlet,它是Spring MVC的核心。首先贴一下基础配置文件,web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ ...
本节讲 Spring bean初始化(3) - ApplicationContext ApplicationContext和BeanFactory都是用于加载Bean的,但是项目中基本都是使用ApplicationContext,原因是它包括了BeanFactory的所有功能,并且进行了扩展,ApplicationContext初始化过程中会完成所有的单例( no-lazy-init) 的初始化 ApplicationContext ctx = new ClassPathXmlApplicationContext("/spring-code-test.xml"); ...
Global site tag (gtag.js) - Google Analytics