数据库
文章平均质量分 78
_从头再来_
不积跬步无以至千里
展开
-
数据库脚本管理工具Flyway
写在前面 最近由于项目变更比较大,需要经常修改表结构,然后对应的测试,开发,生产环境数据库均要修改,有时候一不小心就忘记修改某个环境下的数据库了,等出问题才发现表结构没有更新,如果项目还没上线,还可以把表删除了重新创建,但是如果项目已经上线了,就不能这样简单粗暴了,我们需要通过 SQL 脚本在已有数据表的基础上进行升级。鉴于这种情况,于是决定寻找数据库版本控制工具。在Java这部分,对数据库版本控制的主要有两个工具:Flyway Liquibase两个工具各有千秋,但是核心功能都是原创 2020-12-25 10:08:43 · 2619 阅读 · 0 评论 -
SQL表列解析
POM依赖:<dependencies> <!--DOM4J --> <dependency> <groupId>org.dom4j</groupId> <artifactId>dom4j</artifactId> <version>2.1.1</version> </dependency> <dependency> <g.原创 2020-12-22 14:42:15 · 480 阅读 · 0 评论 -
Redis VS Memcache
Redis 和 Memcache 都是基于内存的数据存储系统。Memcached是高性能分布式内存缓存服务;Redis是一个开源的key-value存储系统。与Memcache类似,Redis将大部分数据存储在内存中,支持的数据类型包括:字符串、哈希 表、链表、等数据类型的相关操作。下面我们来进行来看一下redis和memcached的区别。权威比较Redis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统进行过比较:Redis支持服务器端的.原创 2020-12-08 18:15:08 · 160 阅读 · 0 评论 -
ES VS influxdb
简介最近一直在使用ES,之前也使用过influxdb。使用过程中两者在某些功能上有些类似。所以这里对两者一些区别和功能进行整理。已更好了解这两者工具。ES和influxdb介绍ES是一个基于lucence的实时搜索服务器,本身是一个应用。没有UI管理界面。支持restful格式http接口来操作和展示界面,数据展示依靠Kibana。influxdb开源分布式时序、事件和指标数据库。使用 Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。自带管理界面,界面自带简单的图表原创 2020-05-27 22:59:15 · 1857 阅读 · 0 评论 -
clickHouse数据库
ClickHouse是一个面向联机分析处理(OLAP)的开源的面向列式存储的DBMS,简称CK, 与Hadoop, Spark相比,ClickHouse很轻量级,由俄罗斯第一大搜索引擎Yandex于2016年6月发布, 开发语言为C++ClickHouse的特点:开源的列存储数据库管理系统,支持线性扩展,简单方便,高可靠性,容错跑分快:比Vertica快5倍,比Hive快279倍,比MySQL快800倍,其可处理的数据级别已达到10亿级别功能多:支持数据统计分析各种场景,支持类SQL查询,异原创 2020-05-27 22:53:11 · 619 阅读 · 0 评论 -
Mycat注解
注解原理概念:MyCat对自身不支持的Sql语句提供了一种解决方案——在要执行的SQL语句前添加额外的一段由注解SQL组织的代码,这样Sql就能正确执行,这段代码称之为“注解”。注解的使用相当于对mycat不支持的sql语句做了一层透明代理转发,直接交给目标的数据节点进行sql语句执行,其中注解SQL用于确定最终执行SQL的数据节点。注解的形式是:/*!mycat: sql=注解Sq...原创 2019-10-14 11:08:26 · 242 阅读 · 0 评论 -
数据抽取工具Kettle入门
【Kettle从零开始】一之Kettle简单介绍 http://blog.csdn.net/rotkang/article/details/20810921【Kettle从零开始】二之Kettle文件夹与界面介绍http://blog.csdn.net/rotkang/article/details/20875367【Kettle从零开始】三之Kettle数据源连接配置...转载 2018-10-20 20:45:08 · 3377 阅读 · 0 评论 -
阿里数据库连接池Druid
Druid是什么?Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。同时Druid不仅仅是一个数据库连接池,它包括四个部分:Druid是一个...原创 2018-10-27 22:47:51 · 32993 阅读 · 2 评论 -
java 通过Canal监控MySql变化
一 开启MySql日志记录功能 在mysql的 my.cnf (linux)文件中位置[mysqld]后面添加如下内容:log-bin=mysql-binbinlog-format=ROW二 Linux 环境 Canal 安装上传canal.deployer-1.1.tar 到指定位置 解压文件 tar -xvf canal.deployer-1.1.1.ta...原创 2018-12-24 14:48:17 · 6182 阅读 · 1 评论 -
TiDB数据库
TiDB是分布式数据库解决方案选项之一,它对外以MySQL 协议提供关系数据库存储服务,而核心是NoSQL技术实现分布式存储和分布式计算。单从对外提供兼容 MySQL服务这个角度看,可以吸引庞大的MySQL用户群来尝试使用。 基于MySQL的很多项目,目前面临的一个瓶颈是随着数据量越来越大,存储空间扩展和查询性能都面临比较大的问题。一台服务器的存储容量总归是有限的,如...原创 2019-03-14 20:47:39 · 5498 阅读 · 0 评论 -
Mysql Sql优化
总原则:禁用select *使用select count(*) 统计行数尽量少运算尽量避免全表扫描,如果可以,在过滤列建立索引尽量避免在where子句对字段进行null判断尽量避免在where子句使用!= 或者<>尽量避免在where子句使用or连接尽量避免对字段进行表达式计算尽量避免对字段进行函数操作尽量避免使用不是复合索引的前缀列进行过滤连接尽量少排序,如...原创 2019-04-02 10:10:21 · 256 阅读 · 0 评论 -
Mysql Hint
1、强制索引FORCE INDEX 1 SELECT*FROMTABLE1FORCEINDEX(FIELD1) … 只使用建立在FIELD1上的索引,而不使用其它字段上的索引。2、忽略索引 IGNORE INDEX 1 SELECT*FROMTABLE1IGNOREINDEX(FIEL...转载 2019-04-08 15:45:09 · 793 阅读 · 0 评论 -
Mysql创建索引
1.索引作用在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。例如,有3个未索引的表t1、t2、t3,分别只包含列c1、c2、c3,每个表分别含有1000行数据组成,指为1~1000的数值,查找对应值相等行的查询如下所示。SELECT c1,c2,c3 F...转载 2019-04-09 15:22:24 · 145 阅读 · 0 评论 -
Mysql 常用语句
基于现有表创建新表1先执行该语句create table xxx as select * from oldTable2 若果有问题可使用如下方式,拆分成两部分。create table xxxx like data_mgr;insert into xxxx select *from data_mgr;查看所有进程show processlist;查询是否锁表show...原创 2019-04-18 22:59:37 · 145 阅读 · 0 评论 -
Mysql引擎区别
MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MYSQL。在缺省情况下,MYSQL支持三个引擎:ISAM、MYISAM和HEAP。另外两种类型INNODB和BERKLEY(BDB),也常常可以使用。如果技术高超,还可以使用MySQL+API自己做一个引擎。下面介绍几种数据库引擎: ISAM:ISAM是一个定义明确且历经时间...原创 2019-05-09 10:54:45 · 2734 阅读 · 0 评论 -
Mycat实现MySQL的分库分表、读写分离、主从切换
为了加深对DRDS整体架构的认识,我觉得有必要手工搭建基于Mycat实现的Mysql分布式数据库集群,现和大家分享下搭建流程,后续会针对Mycat的各项配置作进一步研究,敬请期待。Mycat及MySQL实例部署情况:Mycat:IP:10.20.8.57,Port:3310/3311MySQL :db1-M1,IP:10.20.8.126,Port:3306db1-M2,IP:10.20...转载 2019-05-12 22:14:55 · 392 阅读 · 0 评论 -
Mycat实现读写分离、分表分库
系统开发中,数据库是非常重要的一个点。除了程序的本身的优化,如:SQL语句优化、代码优化,数据库的处理本身优化也是非常重要的。主从、热备、分表分库等都是系统发展迟早会遇到的技术问题问题。Mycat是一个广受好评的数据库中间件,已经在很多产品上进行使用了。希望通过这篇文章的介绍,能学会Mycat的使用。安装Mycat官网:http://www.mycat.io/可以了解下Mycat的背...原创 2019-05-12 22:52:17 · 220 阅读 · 0 评论 -
Apache Ignite
什么是Apache Ignite? Ignite是一个以内存为中心的分布式数据库、缓存和处理平台,可以在PB级数据中,以内存级的速度进行事务性、分析性以及流式负载的处理。 上述引用了Ignite的官方介绍,通俗来讲,Ignite就是一个内存数据库,它包括了很多特性,它既是一个分布式缓存,也是一个分布式数据库,同时也支持一定程度的ACID事务。关键字:固化内存、并置处...转载 2019-06-15 11:40:16 · 647 阅读 · 0 评论 -
阿里数据库连接池Druid2
1 pom.xml依赖<!-- 数据库连接池 --><dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</version...原创 2019-06-28 17:35:07 · 339 阅读 · 0 评论 -
MySQL - ON & WHERE 条件区别和执行顺序
一、案例数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。在使用left jion时,on和where条件的区别如下:1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)...转载 2019-07-31 14:35:52 · 2037 阅读 · 0 评论 -
the difference between Oracle and Mysql
一、并发性并发性是oltp数据库最重要的特性,但并发涉及到资源的获取、共享与锁定。mysql:mysql以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他session无法更新此表中的数据。虽然InnoDB引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,或者sql语句没有使用索引,那么仍然使用表级锁。or原创 2017-12-18 16:36:38 · 227 阅读 · 0 评论 -
利用ogg实现oracle到kafka的增量数据实时同步
前言ogg即Oracle GoldenGate是Oracle的同步工具,本文讲如何配置ogg以实现Oracle数据库增量数据实时同步到kafka中,其中同步消息格式为json。 下面是我的源端和目标端的一些配置信息:-版本OGG版本ip别名源端OracleRelease 11.2.0.1.0Oracle GoldenGate 11.2.1.0.3 for Oracle on Linux x86-6...转载 2018-07-07 08:36:53 · 4236 阅读 · 2 评论 -
ORACLE 之间的OGG配置
OGG source和target环境:soucesource端:操作系统版本:Linux 2.6.9-89.EL x86_64hostname:dg1数据库版本:10.2.0.1 64bitogg版本:fbo_ggs_Linux_x64_ora10g_64bit.tarrac数据库名:WENDINGIP:192.168.1.1target端:操作系统版本:Linux 2.6.9-89.EL ...转载 2018-07-07 08:34:17 · 6451 阅读 · 0 评论 -
Oracle SQL*Loader
执行命令:Process process = Runtime.getRuntime().exec("command") "sqlldr userid=oracleUser/password@MY_ORACLE_ADMIN control=/home/rcastdev/tmphermes/Control.ctl direct=true rows=5000 readsize=2原创 2017-12-28 18:10:08 · 320 阅读 · 0 评论 -
数据库索引算法的优缺点
当前测试的版本是Mysql 5.5.25只有BTree和Hash两种索引类型,默认为BTree。Oracle或其他类型数据库中会有Bitmap索引(位图索引),这里作为比较也一起提供。 BTree索引BTree(多路搜索树,并不是二叉的)是一种常见的数据结构。使用BTree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度。按照翻译,B 通常认为是Balance的简称。这原创 2018-01-10 17:07:43 · 1393 阅读 · 0 评论 -
数据库索引的实现原理
转自 http://blog.csdn.net/kennyrose/article/details/7532032说白了,索引问题就是一个查找问题。。。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指转载 2018-01-08 14:00:01 · 120 阅读 · 0 评论 -
MySQL 密码增强插件
介绍首先该功能是在5.5以后的mysql版本才引入的插件,默认源码安装和二进制安装都没有启用该功能,如果没有开启该功能设置简单密码mysql只是会给予提示但还是会允许通过。启用功能在my.cnf文件中加入12plugin-load=validate_password.sovalidate-pas原创 2017-12-12 22:08:19 · 987 阅读 · 0 评论 -
Oracle Operation
1. Restore drop table(Note: trigger can’t berestored):SELECT * FROM recyclebin where original_name='TABLE_NAME';SELECT * FROM "BIN$NJu2pKUQLQHgU2YudAocrw==$0";FLASHBACK table TABLE_NAME to be原创 2017-12-14 17:49:50 · 654 阅读 · 0 评论 -
Oracle UNDO tablespace
对Oracle数据库UNDO表空间的监控和管理是我们日常最重要的工作之一,UNDO表空间通常都是Oracle自动化管理(通过undo_management初始化参数确定);UNDO表空间是用于存储DML操作的前镜像数据,它是实例恢复,数据回滚,一致性查询功能的重要组件;我们常常会忽略对它的监控,这会导致UNDO表空间可能出现以下问题:1).空间使用率100%,导致DML操作无法进行。2).转载 2017-12-18 16:45:00 · 464 阅读 · 0 评论 -
深入了解ORACLE连接:JION,LEFT JION RIGHT JION FULL JION 联系与区别
转自 http://blog.csdn.net/yuxuan1215/article/details/88925381、概述连接是(JOIN) 是根据两个或者多个表之间的列建立关系, 获取所需要的数据,在Oracle数据库中,提供了自连接也称内连接(inner join或者join),自然连接(natural join),左连接(left join或者left转载 2017-12-26 18:26:46 · 1456 阅读 · 0 评论 -
高效的Oracle Sqls 写法
在一个数据库中进行操作的时候,效率是很重要的,那么,如何提高oracle的查询效率呢?笔者将从以下几个方面进行详细解析: 1、选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最原创 2017-12-27 14:11:28 · 214 阅读 · 0 评论 -
Oracle OVER(PARTITION BY)函数
转自:http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.htmlOVER(PARTITION BY)函数介绍开窗函数 Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一转载 2017-12-27 14:15:24 · 508 阅读 · 0 评论 -
位图(BitMap)索引example
位图(BitMap)索引 1. 案例 有张表名为table的表,由三列组成,分别是姓名、性别和婚姻状况,其中性别只有男和女两项,婚姻状况由已婚、未婚、离婚这三项,该表共有100w个记录。现在有这样的查询: select * from table where Gender=‘男’ and Marital=“未婚”;姓名(Name)性别(Ge转载 2018-01-10 19:47:33 · 168 阅读 · 0 评论 -
数据库隔离级别详解
简单概述:现代数据库不会使用纯粹的隔离作为默认模式,因为它会带来巨大的性能消耗。SQL一般定义4个隔离级别:串行化(Serializable,SQLite默认模式):最高级别的隔离。两个同时发生的事务100%隔离,每个事务有自己的『世界』。可重复读(Repeatable read,MySQL默认模式):每个事务有自己的『世界』,除了一种情况。如果一个事务成功执行并且添加了新数据,这些数据对其他正在...原创 2018-03-07 15:06:18 · 569 阅读 · 0 评论 -
使用ogg同步数据给kafka
为更好的配合公司自然人项目的实施,我利用虚机搭了一个测试环境,把生产库中的部分表的数据通过ogg软件同步给kafka1 测试环境说明1)目标源数据库hr用户下的一张表t1,当发生dml操作时,操作数据写到kafka集群里,并显示出来。2)环境构成192.168.60.88 tdb1192.168.60.89 reps192.168.60.91 kafka01192.168.60.92 kafka0...转载 2018-07-07 08:31:55 · 1371 阅读 · 0 评论 -
Oralce GoldenGate与Kafka集群集成
本文介绍如何配置Oracle GoldenGate 同步数据到Kafka,包括OGG源端安装配置,OGG for Big Data replication安装配置,以及如何与Kafka集群集成。软件准备1. Oracle11.2.0.22. Oracle GoldenGate V12.2.0.1.1 for Oracleon Linux x86-64部署在Oracle Server上。3....转载 2018-07-07 08:26:02 · 586 阅读 · 0 评论 -
mybatis #{} 以及 ${}
动态 sql 是 mybatis 的主要特性之一,在 mapper 中定义的参数传到 xml 中之后,在查询之前 mybatis会对其进行动态解析。mybatis 为我们提供了两种支持动态 sql 的语法:#{} 以及 ${}。在下面的语句中,如果 username 的值为 zhangsan,则两种方式无任何区别:select * from user where name =原创 2018-03-26 09:58:56 · 236 阅读 · 0 评论 -
轻松理解MYSQL MVCC 实现机制
转自http://blog.csdn.net/whoamiyang/article/details/519018881. MVCC简介1.1 什么是MVCCMVCC是一种多版本并发控制机制。 1.2 MVCC是为了解决什么问题?大多数的MYSQL事务型存储引擎,如,InnoDB,Falcon以及PBXT都不使用一种简单的行锁机制.事实上,他们都和MVCC–多版本并发控制来一转载 2018-03-02 10:35:52 · 147 阅读 · 0 评论 -
四种mysql存储引擎
前言数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySql的核心就是存储引擎。存储引擎查看MySQL给开发者提供了查询存储引擎的功能,我这里使用转载 2018-03-02 10:31:00 · 107 阅读 · 0 评论 -
数据库分库分表策略的具体实现方案
相关文章:1、 使用Spring AOP实现MySQL数据库读写分离案例分析2、MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解3、MySQL主从复制的常见拓扑、原理分析以及如何提高主从复制的效率总结4、使用mysqlreplicate命令快速搭建 Mysql 主从复制5、大型网站应用之海量数据和高并发解决方案总结一二一、MySQL扩展具体的实现方式随着业务规模的不断扩大...转载 2018-03-15 20:36:19 · 173 阅读 · 0 评论