
db
文章平均质量分 87
hxpjava1
毕业于武汉理工大学计算机系,12年开发架构经验,擅长java,k8s
展开
-
微信高可用分布式数据库PhxSQL设计与实现
来源URL:http://geek.youkuaiyun.com/news/detail/192400本文详细描述了PhxSQL的设计与实现。从MySQL的容灾缺陷开始讲起,接着阐述实现高可用强一致的思路,然后具体分析每个实现环节要注意的要点和解决方案,最后展示了PhxSQL在容灾和性能上的成果。设计背景互联网应用中账号和金融类关键系统要求和强调强一致性及高可用性。当面临机器损坏、网络分区、主...转载 2019-03-11 14:50:41 · 472 阅读 · 0 评论 -
DataX的部署与安装
刚来公司的第二天做的事就是把cd的数据导到bj来,因为不能按照原来一模一样的去导所以就用到了datax,而datax帮我搞定了这个难题,有道是花时间想办法解决,不如找工具研究。首先我们得先下载datax https://github.com/alibaba/DataX 下面开始 解压到虚拟机上 tar -zxvf datax.tar.gz 修改权限为755 进入bin 目录即可操作同步作业tar ...转载 2018-04-07 09:35:36 · 7408 阅读 · 0 评论 -
深入理解开源数据库中间件 Vitess:核心特性以及如何进行数据存储的堆叠
概述Vitess 是一个用于 MySql 扩展的数据库解决方案。它以能够像运行在专用硬件上那样有效地运行于云体系。它集 MySql 数据库的很多重要特性和 NoSQL 数据库的可扩展性于一体。Vitess 已经成功侍服了 2011 年以来所有的 YouTube 数据库流量。Kubernetes 上的 VitessKubernetes 是 Google 开源的 Docker 容器集群管理系统,Vit...转载 2018-04-22 11:14:32 · 4157 阅读 · 0 评论 -
MySql中4种批量更新的方法
最近在完成MySql项目集成的情况下,需要增加批量更新的功能,根据网上的资料整理了一下,很好用,都测试过,可以直接使用。 mysql 批量更新共有以下四种办法1、.replace into 批量更新 replace into test_tbl (id,dr) values (1,'2'),(2,'3'),...(x,'y'); 例子:replace into book (`Id`,`A...转载 2018-04-16 18:29:06 · 3351 阅读 · 1 评论 -
Mysql—实现批量插入,存在就更新,不存在就插入
Mysql插入数据的SQL语句主要有:1、insert into表示插入数据,数据库会检查主键,如果出现重复会报错;2、replace into表示插入替换数据,需求表中有PrimaryKey,或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样;3、insert ignore表示,如果表中如果已经存在相同的记录,则忽略当前新数据;[java...转载 2018-04-16 18:26:49 · 2610 阅读 · 1 评论 -
Mysql:如果数据存在则更新,不存在则插入
mysql语法支持如果数据存在则更新,不存在则插入,首先判断数据存在还是不存在的那个字段要设置成unique索引,例如表tb_addrbook如下: 索引:语句1:不存在插入INSERT INTO tb_addrbook(num,name,mobile) VALUE('1001','小李','13112345678') ON DUPLICATE KEY UPDATE name= '小李',mobi...转载 2018-04-16 18:23:23 · 2622 阅读 · 0 评论 -
MySQL 5.6 my.cnf配置优化
系统4核 16G Centos6.5 x64优化后测试结果如下#mysqlslap #--concurrency=2 #--iterations=1 #--number-int-cols=10 #--number-char-cols=10 #-a #--auto-generate-sql-guid-primary #--auto-generate-sql-secondary-in...转载 2018-04-08 09:47:00 · 476 阅读 · 0 评论 -
开源数据库中间件对比
Proxy式架构和客户端式架构的优劣 Proxy式架构客户端式架构优点1, 集中式管理监控和升级维护方便2, 解决连接数问题1. 应用直连数据库性能高2. 无需中间层集群,没有额外成本开销劣势1, 需要中间转载 2017-10-16 21:12:18 · 465 阅读 · 0 评论 -
水平分库分表的关键步骤和技术难点
在之前的文章中,我介绍了分库分表的几种表现形式和玩法,也重点介绍了垂直分库所带来的问题和解决方法。本篇中,我们将继续聊聊水平分库分表的一些技巧。分片技术的由来关系型数据库本身比较容易成为系统性能瓶颈,单机存储容量、连接数、处理能力等都很有限,数据库本身的“有状态性”导致了它并不像Web和应用服务器那么容易扩展。在互联网行业海量数据和高并发访问的考验下,聪明的技术人员提出了分库分表技转载 2017-10-22 19:40:00 · 576 阅读 · 0 评论 -
写了一个mysql导数据程序
最近在做容器化改造,需要把原来操作系统上的mysql数据导入到容器里mysql数据库里面,所以写了一个多线程导数据程序。使用前先创建目标数据库表结构,然后添加数据源,添加主任务,启动任务,可以看到每个导数据线程的工作情况。地址:https://github.com/13567436138/data-transfer.git...原创 2018-04-25 16:44:18 · 714 阅读 · 0 评论 -
PostgreSQL的集群技术比较
PostgreSQL 数据库的可用集群技术如下: 1、Bucardo 复制技术,主从复制,异步,基于 触发器。 详情: https://wiki.postgresql.org/wiki/Bucardo 2、GridSQL 一个开源的,我共享的集群数据库系统,可用于PostgreSQL数据仓库,具有智能的,平行的做到多个数据库之间的访问,最新的名称为: Stado . 3、Ha...转载 2018-05-18 16:57:44 · 23597 阅读 · 1 评论 -
mysql 5.7版本修改编码为utf-8
刚开始学习mysql,下载的是官网最新版本 5..7.14,使用cmd输入中文时报错,于是开始修改mysql默认编码(windows下)首先通过 show variables like 'character_set_%';查看mysql字符集情默认编码为 latin1然后关闭数据库在mysql安装目录下找到my.ini文件在其中添加[client]default-character-set=utf...转载 2018-06-05 14:24:15 · 6269 阅读 · 0 评论 -
Websphere配置JNDI连接
1.描述编辑 通过JNDI方式定义数据连接,首先在WebSphere服务器配置好JNDI,然后在设计器中直接调用JNDI的名字,即可成功使用JNDI连接,连接步骤如下: 2.具体步骤编辑 使用版本及环境下面以Windows Server 2008,WebSphere 8.5.5.10,jdk 1.8,连接oracle 11c数据库进行JNDI连接说明,其他版...转载 2018-09-25 14:39:43 · 6018 阅读 · 0 评论 -
PLSQL导入导出表的正确步骤
PLSQL导入导出表的正确步骤原来总是直接 tools->import talbes->Oracle Import结果发现有的时候会出错:有的表不能正确导入, baidu+googel解决办法如下:导出步骤:1 tools ->export user object 选择选项,导出.sql文件2 tools ->export tables-> Oracl...转载 2018-09-25 14:12:40 · 2057 阅读 · 0 评论 -
Oracle创建用户、角色、授权、建表
oracle数据库的权限系统分为系统权限与对象权限。系统权限( database system privilege )可以让用户执行特定的命令集。例如,create table权限允许用户创建表,grant any privilege 权限允许用户授予任何系统权限。对象权限( database object privilege )可以让用户能够对各个对象进行某些操作。例如delete权限允许用户删...转载 2018-09-25 11:25:35 · 308 阅读 · 0 评论 -
java.sql.SQLException: 数字溢出 的解决办法
今天碰到了 Java.sql.SQLException: 数字溢出.............的错误。原因可能有以下两种,一:使用的jdbc驱动与数据库版本不匹配引起的,把版本改为一致的,测试看看;二:可能是数据库的某个NUMBER类型的字段超出对应实体类属性的接收范围(如数据库字段是11位的手机号,而对应实体类使用Integer接收Phone这个属性,必然溢出),解决方法:将实体类该属...转载 2018-08-16 10:37:03 · 4287 阅读 · 0 评论 -
修改mysql root 密碼
mysql如何修改root用户的密码方法1: 用SET PASSWORD命令 首先登录MySQL。 格式:mysql> set password for 用户名@localhost = password('新密码'); 例子:mysql> set password for root@localhost = password('123'); 方法2:用mysqladmin 格...转载 2018-07-20 14:13:43 · 453 阅读 · 0 评论 -
CentOS7.2安装mariadb-server,解决Failed to start mysqld.service: Unit not found
当输入命令~]# systemctl start mysql.service要启动MySQL数据库是却是这样的提示Failed to start mysqld.service: Unit not found解决方法如下: 首先需要安装mariadb-server ~]# yum install -y mariadb-server 启动服务 ~]# sy...转载 2018-07-20 14:11:54 · 6634 阅读 · 2 评论 -
Sqlmap中文手册
https://blog.youkuaiyun.com/wn314/article/details/78872828转载 2018-07-11 19:18:03 · 498 阅读 · 0 评论 -
MySQL max_allowed_packet设置及问题
根据配置文件会限制server接受的数据包大小。有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败。查看目前配置show VARIABLES like '%max_allowed_packet%';修改方法可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。在[mysqld]下加上max_al...转载 2018-05-31 12:04:08 · 25574 阅读 · 0 评论 -
内存数据库
内存数据库(Embedded database或in-momery database)具有配置简单、启动速度快、尤其是其可测试性等优点,使其成为开发过程中非常有用的轻量级数据库。在spring中支持HSQL、H2和Derby三种数据库。 下面看一下具体使用方法: 1.需要在applicationContext.xml中添加如下: Xml代码 jdbc:em转载 2017-09-18 14:03:06 · 565 阅读 · 0 评论 -
使用Spring实现读写分离( MySQL实现主从复制)
1. 背景我们一般应用对数据库而言都是“读多写少”,也就说对数据库读取数据的压力比较大,有一个思路就是说采用数据库集群的方案,其中一个是主库,负责写入数据,我们称之为:写库;其它都是从库,负责读取数据,我们称之为:读库; 那么,对我们的要求是:1、读库和写库的数据一致;2、写数据必须写到写库;3、读数据必须到读库;2. 方转载 2017-09-05 16:20:48 · 296 阅读 · 0 评论 -
MPP数据库
MPP数据库定义MPP即大规模并行处理(Massively Parallel Processor )。 在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据 库服务。非共享数据库集群有完全的可伸缩性、高可用、高性能、优秀的性价比、资源共享等优势。翻译 2017-06-29 20:38:49 · 1347 阅读 · 0 评论 -
拉取淘宝订单服务数据mysql分表存储亿条数据
淘宝订单有每天晚上同步机制,公司有10万个淘宝卖家客户,如果每个客户平均1000个订单就达到1亿条订单的数据量,除去重复订单也会有千万买家会员数据,如果采用mysql存储查询起来性能肯定不行,这里指单台mysql服务器。 这里的表 主要是会员信息表和订单信息表以及会员订单关系表。 为解决这个办法我们采取了分表的方式,把一张大表分成几张小表,类似oracle的Pa原创 2016-11-26 22:09:19 · 5831 阅读 · 1 评论 -
写了一个简单的数据库连接池
import java.sql.Connection;import java.sql.SQLException;import java.util.Iterator;import java.util.UUID;import java.util.concurrent.ConcurrentHashMap;import java.util.concurrent.atomic.AtomicInte原创 2017-01-19 16:19:55 · 521 阅读 · 0 评论 -
写了一个从oracle导数据到hbase的多线程java程序,只要创建一个实体加上注解基本就可以导数据了
三个注解类:@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)public @interface Column { String family() ; String column() default ""; String oracle_column() default "";}@Target(Eleme原创 2017-01-23 13:11:57 · 1568 阅读 · 1 评论 -
最近写的一个存储过程
create or replace procedure generateClientFixRateTask is role varchar2(32); CHECKER_USERID varchar2(40); PUTOUTDATE date; v_serialno varchar2(40); v_customerid varchar2(40); v_need_t原创 2016-12-23 10:39:20 · 592 阅读 · 0 评论 -
oracle查询:取出每组中的第一条记录
Oracle查询:取出每组中的第一条记录按type字段分组,code排序,取出每组中的第一条记录 方法一: select type,min(code) from group_info group by type; 注意:select 后面的列要在group by 子句中,或是用聚合函数包含,否则会有语法错误。 方法二: SELECT * FROM(转载 2016-12-26 15:08:14 · 2346 阅读 · 0 评论 -
第一次建物化视图
create materialized view wholeTaskStatistics refresh on demand with rowid start withto_date('20161222','yyyymmdd')next sysdate+10/(24*60) asselect a.departmentname ,sum(NVL(a.sum,0)),sum(NVL(SEASON原创 2016-12-22 16:38:58 · 428 阅读 · 0 评论 -
好长一个sql语句
惊天写的sql语句select '首次检查提醒' taskType,(a.sum+b.sum)as sum,(a.finishSum+b.finishsum)as finishSum, (a.nonFinishSum+b.nonFinishSum)as nonFinishSum from (select (select count(*) from client_check_原创 2016-12-22 14:24:38 · 1327 阅读 · 2 评论 -
分布式事务
转于自己在公司的Blog: http://pt.alibaba-inc.com/wp/experience_1264/distributed-transaction.html 关于Dubbo服务框架的分布式事务,虽然现在不急着做,但可以讨论一下。 我觉得事务的管理不应该属于Dubbo框架, Dubbo只需实现可被事务管理即可, 像JDBC和JMS都是可被事务管理的分布式转载 2015-04-15 10:14:55 · 1330 阅读 · 0 评论 -
mybatis 分页拦截器,经网上资料修改可用
@Intercepts({@Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class})})public class PaginationInterceptor implements Interceptor{ private static final Log原创 2015-04-21 15:23:27 · 1181 阅读 · 0 评论 -
Redis命令总结
连接操作相关的命令quit:关闭连接(connection)auth:简单密码认证持久化save:将数据同步保存到磁盘bgsave:将数据异步保存到磁盘lastsave:返回上次成功将数据保存到磁盘的Unix时戳shundown:将数据同步保存到磁盘,然后关闭服务远程服务控制info:提供服务器的信息和统计monitor:实时转储收到的请求slave转载 2015-04-16 14:57:35 · 828 阅读 · 0 评论 -
mysql的数据库引擎
一般来说,MySQL有以下几种引擎:ISAM、MyISAM、HEAP、InnoDB和Berkley(BDB)。注意:不同的版本支持的引擎是有差异的。当然啦,如果你感觉自己的确技术高超,你还能够使用MySQL++来创建自己的数据库引擎,这个已经outof my knowledge,牛人可以参照MySQL++API帮助来实现。下面逐一叙述这5种引擎各自的特性:ISAMISAM是一个转载 2015-04-14 15:56:05 · 648 阅读 · 0 评论 -
NoSQL系列:选择合适的数据库
目录:为什么使用NoSQL数据库?键值数据库文档数据库列族数据库图数据库附思维导图参考NoSQL系列:选择合适的数据库为什么使用NoSQL数据库?阻抗失衡 关系模型和内存中的数据结构不匹配 采用更为方便的数据交互方式提升开发效率待处理的数据量很大 数据量超过关系型数据库的承载能力 大集群的出现 在成本方面,集群中应用关系数据库,许转载 2017-06-19 19:24:05 · 394 阅读 · 0 评论 -
8 种 NoSQL 数据库系统对比
导读:Kristóf Kovács 是一位软件架构师和咨询顾问,他最近发布了一片对比各种类型NoSQL数据库的文章。虽然SQL数据库是非常有用的工具,但经历了15年的一支独秀之后垄断即将被打破。这只是时间问题:被迫使用关系数据库,但最终发现不能适应需求的情况不胜枚举。但是NoSQL数据库之间的不同,远超过两 SQL数据库之间的差别。这意味着软件架构师更应该在项目开始时就选择好一个适转载 2017-06-19 19:23:07 · 486 阅读 · 0 评论 -
【MySQL】20个经典面试题,全部答对月薪10k+
原文链接:http://bbs.51cto.com/thread-1470880-1.htmlPart2:经典题目1、MySQL的复制原理以及流程基本原理流程,3个线程以及之间的关联;2、MySQL中myisam与innodb的区别,至少5点(1)、问5点不同;(2)、innodb引擎的4大特性(3)、2者select转载 2017-04-24 22:04:14 · 530 阅读 · 0 评论 -
mysql错误
execute command denied to user 'test_update'@'%' for routine 'who_wms.exist'. Stacktrace follows:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: execute command denied to user 'test_updat原创 2017-05-24 17:30:03 · 681 阅读 · 0 评论 -
Oracle查询性能优化(面试题:数据库查询优化也是常问的问题)
原则一:注意WHERE子句中的连接顺序: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. 尤其是“主键ID=?”这样的条件。原则二: SELECT子句中避免使用 ‘ * ‘: ORACLE在解析的过程中, 会将'*' 依次转换成所有的列名, 这个工作是通转载 2017-02-21 11:40:06 · 10854 阅读 · 0 评论 -
数据库索引的实现原理(面试问题:请说出数据库索引实现原理)
数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时转载 2017-02-19 13:57:10 · 21342 阅读 · 2 评论