自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mark Down Here

善良和谦虚是永远不应令人厌恶的两种品德。

  • 博客(16)
  • 收藏
  • 关注

转载 Git仓库分支(Branch)和标签(Tag)

Git 仓库分支(Branch)和标签(Tag)规范仓库的分支(Branch)规范,影响到每个团队的工作流的一致性;标签(Tag)便于开发团队、测 试团队和其他团队识别每个项目的版本,特别是在协同处理线上问题的时候,大家可以非常清楚 地知道线上运行版本和代码库的对应关系。因此我们在制作的时候,主要考虑几个因素:一是要有一定的规则,方便持续集成CI(自动化构建、测试、分布等)二是要有一定的自由

2016-12-30 16:01:00 44632 1

原创 问题9:查询优化器工作原理

MySQL采用基于开销的优化器(CBO),以确定处理查询的最解方式,也就是说执行查询之前,都会先选择一条自以为最优的方案,然后执行这个方案来获取结果。 MySQL优化器中,一个主要的目标是只要可能就是用索引,而且使用条件最严格的索引来尽可能多、尽可能快地排除那些不符合索引条件的数据行。 JOIN::optimize()是整个查询优化器的核心内容。查询优化主要对Join进行简化、优化where条件

2016-12-30 15:48:19 737

转载 问题8:数据库innodb锁和阻塞信息查看

关系数据库是并发系统,满足ACID要求,锁是实现该特性的一项技术。锁的类型有共享锁和排它锁。共享锁是相互不阻塞,在同一个时间可以并发,例如select读操作。排它锁会相互阻塞写操作,理论上不阻塞读操作。当一个表的阻塞语句达到非常高的数量级也会导致无法读的操作,因为表的句柄打开数量也是有限的。 Innodb的锁是通过加载在索引上实现。若是一个表没有索引,innodb默认锁粒度从行级升为表级。并发性能

2016-12-30 15:45:42 1705

转载 问题7:数据库多表关联方式

在关系型数据库中,多表关联方式是影响性能最大的技术。为什么会把mysql定义为中小型数据库?主要原因是mysql是不支持hash join的。这对多个大表关联查询造成性能的瓶颈。因此,在大数据领域,比较少使用mysql作为后台数据库。不过,也是有规避的方法,例如我们公司bi项目使用mysql,需要把表设计为宽表,进行反范式设计,减少多表关联。虽然单表的数据量大了,但是查询速度快了非常多,从几十秒降到

2016-12-30 15:43:13 5641

原创 问题6:数据库和服务器关键性能指标

QPS:Qeury Per Second 每秒查询次数,顾名思义,数据库一秒钟能响应应用服务器查询的次数,该指标体现数据库吞吐能力,一般生产系统oltp单实例的峰值在2万左右,超过3万需要对实例进行扩容或者业务分拆。 TPS:Transaction Per Second 每秒事务次数,数据库一秒内能处理业务提交事务的次数,操作包含插入,修改,删除操作。一般生产系统oltp业务单实例的峰值在2000

2016-12-30 15:41:44 6170

转载 问题5:数据库设计

数据库设计使用的工具,通过图表可以非常简单易懂理解各个表的关系,一般使用PowerDesigner或ERwin进行表设计,创建ER(实体关系模型)图表,然后导出sql脚本。特别注意,通过工具导出脚本包含外键设计,需要去除外键语句。若是中途接手的项目,没有任何设计文档,可以使用工具逆向工程生成ER图表。 从业务读写特性来看,业务可以实现读写分离。目前二手房,新房,基础数据库采用mha架构,一主多从,

2016-12-30 15:38:09 416

转载 问题4:数据库连接池使用

长连接是指使用了连接池技术,业务服务器启动的时候,会创建指定的连接数和数据库交互,这些会话一直存在,当前会话内容处理完成后,不会断开,会给下一个事件使用。在数据库上面,会话空闲的状态是Sleep,活跃的状态是Query等。 短连接就是指应用代码直接连接数据库,没有使用中间件。会话处理完成后,会自动断开连接。 数据库连接是关键的,昂贵的资源,创建连接,断开连接都是物理操作,消耗非常多物理资源,当应

2016-12-30 15:36:05 308

原创 问题3:mysql explain执行计划查看

使用explain 对sql进行分析,若是select的话,直接使用,update,delete,insert则需要转化成select语句进行分析。

2016-12-30 15:33:32 318

原创 问题2:Inodb自增主键和业务主键优缺点

读写比较多的操作,设置id作为自增主键。

2016-12-30 15:27:04 1463

转载 问题1:数据库选型

一:关系数据库,把数据组织为行,存储在表上,是sql的基础。作为几十年的老产品,每个技术人员必须掌握的技术。关系数据库最大优点是实现ACID(原子性,一致性,隔离性,持久性)原则,一般要求强事务类型业务,都要使用关系数据库存储。典型代表,mysql(开源,要求dba技能高),oracle(功能强悍,收费超级贵), ms sql server(易用,简单,收费)。 二:键值数据库,一般是作为缓存层,

2016-12-30 15:16:05 820

原创 Git最佳实践与常见问题

最佳实践最佳实践之:如何安全地避免冲突大家在小组协同使用 Git 和 Gerrit 时,经常会遇到因为他人在自己之前提交了代码, 自己提交时因为代码冲突需要解决后才能提交的问题。这其实和 Gerrit 没有关系,单独用 Git 也会遇到同伴在自己之前提交的问题。一个比较笨但比较好用 git 使用模式如下:本地 git clone 一个 develop 分支,仅用作和远端 Git 库同步(不要在上

2016-12-30 13:49:52 606

转载 Git协作编程

Team Code 协作编程平台工作流Team Code 协作编程平台是基于 Google Gerrit 搭建的团队协作编程的平台。Gerrit 不仅仅 是 Code Review,更是一种社会化的协作模式。因此,我们将以 Google Gerrit 为基础的 Git Server 定位为 Team Code,意为 Team Programming Platform。 Code Base = T

2016-12-30 13:46:24 1027

原创 单元测试

一、单元测试介绍 1.1什么是单元测试 是在软件开发过程中要进行的最低级别的测试活动。单元测试用于验证软件最小的可执行单元的正确性,即类或方法的正确性。 单元测试是其他类型测试的基础。不认真,完整的单元测试会导致其他类型测试起不到好的效果 1.2单元测试的粒度 l 通用的业务组件,或工具类 l 内外部接口 l 包含重要逻辑的Service l 程序员自己觉得没有把握的代码

2016-12-29 09:58:56 458

原创 SpringMVC Web应用结构

应用层次结构Controller: 为公司App、公司Web、第三方提供的接口Service: 直接为Controller服务的为上层service,其他为下层service提供给其他sevice类平行引用,尽量禁止相互引用主要处理业务逻辑处理业务聚合后的cache可以被其他模块的Service引用,也可以引用其他模块的service如果service代码量过多,可以通过更小的领域

2016-12-28 15:20:46 644

原创 重构-改善既有代码的设计

《重构-改善既有代码的设计》读书笔记的思维导图如下:

2016-12-28 13:04:26 615

原创 程序员工作怪现象

程序员工作的矛盾干不好简单的事 程序员往往自我感觉良好,经常觉得这简单那简单。例如,感觉负责的项目编码太简单没有挑战性,结果负责的项目却老是出问题。这值得深思!开会很轻松“多一事不如少一事”心理 程序员老司机往往知道要怎么做,却只是停留在想法而不去行动,特别在于重构的执行上,拖延症导致更大的麻烦。只做需求员工 原因我不想多说,码农还是软件设计师的区别就在这里。程序员做需求的同时也要充分

2016-12-28 12:40:01 408

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除