关闭
当前搜索:

MySQL优化系列之查询优化

前言 MySQL优化有两大层面,第一是数据库层面,第二是硬件层面。数据库层面可以细分为以下几个方面: 数据库schema设计优化 SQL查询优化 锁策略优化 存储引擎优化 服务器配置优化 主从,读写分离 集群,负载均衡 本文讲解SQL查询优化 分析你的SQL Explain查看SQL执行计划 Explain命令用来帮助我们获取Query的执行计划,用法很简单:在你的Query前...
阅读(665) 评论(0)

MySQL优化系列之数据库schema设计优化

前言MySQL优化有两大层面,第一是数据库层面,第二是硬件层面。数据库层面可以细分为以下几个方面: 数据库schema设计优化 SQL查询优化 锁策略优化 存储引擎优化 服务器配置优化 主从,读写分离 集群,负载均衡 本文讲解数据库schema设计优化高效的模型设计适度冗余(反范式)在很多人眼里,数据库schema满足的范式级别越高越好,目的是尽量减少数据的冗余,保持数据一致。但是适当的冗余能减少多...
阅读(296) 评论(0)

MySQL Replication主从复制搭建

MySQL安装环境版本:Linux:CentOS6.5MySQL:5.7.19IP:192.168.48.33(Master)、192.168.48.34(Slave)安装步骤:1.根据Linux版本下载RPMwget dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm2.安装RPM yum install mysql-communi...
阅读(138) 评论(0)

MySQL Replication主从复制原理及拓扑结构

复制解决的问题1.备份容灾不同备库分布在不用的地理位置,物理隔绝,可以用来备份数据和容灾2.负载均衡复制可以将多个读操作分布到不用的备库服务器,实现对读密集型应用的优化3.高可用性能和故障切换复制能避免MySQL单点故障,某个节点发生宕机,可以快速记性故障切换,提高系统高可用性4.MySQL升级测试这种做法较普遍,使用一个更高版本的MySQL作为备库,保证在升级全部实例前,查询能正常在其他备库上进行...
阅读(215) 评论(0)

RabbitMQ消息监听异常问题探究

问题场景在使用Spring RabbitMQ做消息监听时,如果监听程序处理异常了,且未对异常进行捕获,会一直重复接收消息,然后一直抛异常。为了更好的描述问题,下面写个简单的例子。通过访问null对象来引发空指针异常,消息监听处理程序代码清单:package amqp;import org.springframework.amqp.core.Message; import org.springfram...
阅读(2538) 评论(0)

Spring整合Quartz浅析

Quartz概念基础Quartz 是 OpenSymphony 开源组织在任务调度领域的一个开源项目,完全基于 Java 实现。核心元素概念: Job: 是一个接口,只有一个方法void execute(JobExecutionContext context),开发者实现该接口定义运行任务,JobExecutionContext类提供了调度上下文的各种信息。Job运行时的信息保存在JobDataMa...
阅读(670) 评论(0)

Spring整合Redis之哨兵与故障转移

前言上篇博客谈到了Spring整合redis集群以及故障转移演示,会发现redis集群模式存在一个很明显的问题:当某个主节点及其所有从节点挂掉,整个集群因为缺少该节点负责范围的哈希槽(hash slot)而宕掉,不具高可用性。redis引入了哨兵(sentinel)模式,能很好解决集群模式存在的不足。引用官网,redis哨兵系统有三个作用: - 监控(Monitoring): Sentinel 会...
阅读(766) 评论(0)

Spring整合Redis之集群与故障转移

前言本文主要讲解spring整合redis集群,关于redis集群搭建网上相关文章挺多的,大家可以自己先搭建好,可以参考官网或中文版官网。本文假设你已经搭建好集群了,笔者redis(版本4.0.1)集群环境如下图:7000、7001、7002三个主节点,7003、7004、7005三个从节点。Redis集群共有16384个哈希槽(hash slot)用于存放key,当前3个节点哈希槽分布为: -...
阅读(681) 评论(0)

关于RabbitMQ的一些问题

一、三种exhange用法有何区别?Direct Exchange代码示例接收端配置文件清单comsumer-context.xml,监听directQueue队列消息(简化配置,关于spring-rabbitmq的配置可以参考楼主以前的这篇博客) <rabbit:listener-c...
阅读(353) 评论(0)

list转map工具类

前言项目中时长需要用到list转map的场景,比如需要查询所有用户的订单列表,但是用户和订单不在一个库的时候,无法进行join操作,就只能程序处理:先查询一批用户,再根据用户的id列表批量查询订单列表,然后在程序中拼接用户和其对应订单。因此写了个小工具类处理,现在分享出来。工具类代码package utils;import java.lang.reflect.InvocationTargetExce...
阅读(530) 评论(0)

Spring整合RabbitMQ简介

AMQP简介AMQP(Advanced Message Queuing Protoco)高级消息队列协议,属于应用层协议。他有producer、exchange、binding、queue、consumer五种角色,producer将消息发送到exchange,bingding决定exchange的消息该发往哪个queue,consumer直接从queue中读取消息。exchange是AMQP协议的...
阅读(2331) 评论(0)

Spring整合MyBatis后引入自定义类型转化器TypeHandler

MyBatis预定义了许多类型转化器,并不一定能满足所有的需求,如笔者遇到这么个问题:数据库字段类型为datetime时间戳类型,项目组规定ResultMap映射实体时间必须是String类型,MyBatis自带的StringTypeHandler类型转化器转化后的时间字符串会有.0这个小尾巴,然后被测试MM提了BUG。常规的解决方式改下实体的get方法,截掉这个小尾巴就行了,但是笔者觉得不够优雅,...
阅读(884) 评论(0)

IntelliJ IDEA远程调试

远程服务DEBUG模式启动  远程服务以debug模式启动需要执行java命令时带上以下JVM参数java -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=naddress指定调试端口,可以按需更改。无论你的服务是普通的java进程,还是jetty、t...
阅读(1889) 评论(3)

MyBatis树形结构查询

前言  对于树形结构的数据库设计通常是基于继承关系设计的,也就是通过父ID关联来实现的,还有就是基于左右值编码设计。本文以继承关系设计的树形结构来讨论下MyBatis树形结构查询。以深度为二的树为例,要将这种结构的数据查询出来,通常的做法是先查询一级数据,再查询二级数据,然后在程序里组装起来,想了下,其实还可以更简单,不用分开两次,就能将不同级别数据一次性查询映射出来。    1.数据准备以区域表...
阅读(3817) 评论(1)

Maven插件之MyBatis Generator

MyBatis Generator(MBG)是MyBatis和iBATIS的逆向工程插件工具,可以根据表结构自动生成实体类、包含简单的CRUD操作的mapper映射文件和mapper接口,无需手工编码,非常的方便,具体用法只需以下三步。...
阅读(354) 评论(0)
33条 共3页1 2 3 下一页 尾页
    个人资料
    • 访问:65497次
    • 积分:998
    • 等级:
    • 排名:千里之外
    • 原创:31篇
    • 转载:2篇
    • 译文:0篇
    • 评论:26条
    友情链接
    文章分类
    最新评论