自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2474)
  • 收藏
  • 关注

原创 快速学习-Mycat 多主切换需要人工处理么?

Mycat 多主切换需要人工处理么?答:Mycat 通过心跳检测,自主切换数据库,保证高可用性,无须手动切换。

2021-02-18 17:01:55 283

原创 快速学习-Mycat 支持集群么?

Mycat 支持集群么?答:目前 Mycat 没有实现对多 Mycat 集群的支持,可以暂时使用 haproxy 来做负载,或者统计硬件负载。

2021-02-18 17:00:51 327

原创 快速学习-Mycat 稳定性与 Cobar 如何?

Mycat 稳定性与 Cobar 如何?答:目前 Mycat 稳定性优于 Cobar,而且一直在更新,Cobar 已经停止维护,可以放心使用。

2021-02-18 17:00:03 457

原创 快速学习-Mycat 目前有生产案例了么?

Mycat 目前有生产案例了么?答:目前 Mycat 初步统计大概 600 家公司使用。

2021-02-18 16:58:54 409

原创 快速学习-Mycat 除了 Mysql 还支持哪些数据库?

Mycat 除了 Mysql 还支持哪些数据库?答:mongodb、oracle、sqlserver 、hive 、db2 、 postgresql。

2021-02-18 16:51:55 1569

原创 快速学习-Mycat 目前有哪些功能与特性?

Mycat 目前有哪些功能与特性?答:• 支持 SQL 92 标准;• 支持 Mysql 集群,可以作为 Proxy 使用;• 支持 JDBC 连接多数据库;• 支持 NoSQL 数据库;• 支持 galera for mysql 集群,percona-cluster 或者 mariadb cluster,提供高可用性数据分片集群;• 自动故障切换,高可用性;• 支持读写分离,支持 Mysql 双主多从,以及一主多从的模式;• 支持全局表,数据自动分片到多个节点,用于高效表关联查询;•

2021-02-18 16:51:04 366

原创 快速学习-Mycat分片规则

第 10 章 Mycat 分片规则10.1 分片规则概述在数据切分处理中,特别是水平切分中,中间件最终要的两个处理过程就是数据的切分、数据的聚合。选择合适的切分规则,至关重要,因为它决定了后续数据聚合的难易程度,甚至可以避免跨库的数据聚合处理。前面讲了数据切分中重要的几条原则,其中有几条是数据冗余,表分组(Table Group),这都是业务上规避跨库join的很好的方式,但不是所有的业务场景都适合这样的规则,因此本章将讲述如何选择合适的切分规则。10.2 Mycat 全局表如果你的业务中有些数据

2021-02-18 13:43:55 491

原创 快速学习-Mycat全局序列号

第 9 章 全局序列号9.1 全局序列号介绍在实现分库分表的情况下,数据库自增主键已无法保证自增主键的全局唯一。为此,MyCat 提供了全局sequence,并且提供了包含本地配置和数据库配置等多种实现方式。9.2 本地文件方式原理:此方式 MyCAT 将 sequence 配置到文件中,当使用到 sequence 中的配置后,MyCAT 会更下classpath 中的 sequence_conf.properties 文件中 sequence 当前的值。配置方式:在 sequence_conf

2021-02-18 09:57:51 439

原创 快速学习-Mycat的分片join

第 8 章 Mycat 的分片 join8.1 join 概述Join 绝对是关系型数据库中最常用一个特性,然而在分布式环境中,跨分片的 join 确是最复杂的,最难解决一个问题。下面我们简单介绍下各种 Join 操作。INNER JOIN内连接,也叫等值连接,inner join 产生同时符合 A 表和 B 表的一组数据。如图:LEFT JOIN左连接从 A 表(左)产生一套完整的记录,与匹配的 B 表记录(右表) .如果没有匹配,右侧将包含 null,在 Mysql 中等同于 left

2021-02-08 16:59:25 422

原创 快速学习-Mycat的配置

第 7 章 Mycat 的配置7.1 搞定 schema.xmlSchema.xml 作为 MyCat 中重要的配置文件之一,管理着 MyCat 的逻辑库、表、分片规则、DataNode 以及 DataSource。弄懂这些配置,是正确使用 MyCat 的前提。这里就一层层对该文件进行解析。7.2 schema 标签<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100"></schema>schema

2021-02-08 16:11:57 761

原创 快速学习-Mycat 防火墙配置

第 6 章 Mycat 防火墙配置白名单和 SQL 黑名单说明:在 server.xml 中配置:<firewall><whitehost><host user="mycat" host="127.0.0.1"></host> ip 白名单 用户对应的可以访问的 ip 地址</whitehost><blacklist check="true"><property name="selelctAllow">f

2021-02-07 17:49:48 411

原创 快速学习-Mycat日志分析

第 5 章 日志分析mycat 的日志文件配置为 MYCAT_HOME/conf/log4j.xml,结构为:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"><appender name="Cons

2021-02-07 17:44:15 1473

原创 快速学习-Mycat快速入门

第 4 章 快速入门4.1 10 分钟入门MyCAT 是使用 JAVA 语言进行编写开发,使用前需要先安装 JAVA 运行环境(JRE),由于 MyCAT 中使用了JDK7 中的一些特性,所以要求必须在 JDK7 以上的版本上运行。4.1.1 环境准备JDK 下 载http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html注:必须 JDK7 或更高版本.MySQL 下载http://

2021-02-07 17:28:49 508

原创 快速学习-Mycat 中的概念

第 3 章 Mycat 中的概念3.1 数据库中间件前面讲了 Mycat 是一个开源的分布式数据库系统,但是由于真正的数据库需要存储引擎,而 Mycat 并没有存储引擎,所以并不是完全意义的分布式数据库系统。那么 Mycat 是什么?Mycat 是数据库中间件,就是介于数据库与应用之间,进行数据处理与交互的中间服务。由于前面讲的对数据进行分片处理之后,从原有的一个库,被切分为多个分片数据库,所有的分片数据库集群构成了整个完整的数据库存储。如上图所表示,数据被分到多个分片数据库后,应用如果需要读取数

2021-02-07 17:19:48 296 1

原创 快速学习-Mycat基本概述

2.3 Mycat 概述2.3.1 功能介绍Mycat 是什么?从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了 MySQL 协议的的Server,前端用户可以把它看作是一个数据库代理,用 MySQL 客户端工具和命令行访问,而其后端可以用MySQL 原生(Native)协议与多个 MySQL 服务器通信,也可以用 JDBC 协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为 N 个小表,存储在后端 MySQL 服务器里或者其他数据库里。Mycat 发展到目前

2021-02-07 17:12:38 299

原创 快速学习-Mycat 闪耀登场

2.2 Mycat 闪耀登场当大批软件工程师开始觉醒,用互联网思维思考和规划自己的人生,第四次工业革命才拉开序幕——《Mycat 宣言》Mycat 最早的版本完成于 2013 年年底,实现于雾霾中的北京城。Mycat 要解决的第一个问题就是要将 Cobar 后端实现为非阻塞模式。将 Cobar 从“个人版”提升到真正的“企业版”。据未经证实的渠道了解,非开源的 Cobar 内部版本已经实现后端 NIO,但是并没有开源出来。于是Mycat 注定要诞生了,尽管可能不会是 Leader-us 发起的。但软

2021-02-07 17:07:41 345 1

原创 快速学习-Mycat 前世今生

第 2 章 Mycat 前世今生2.1 序章如果我有一个 32 核心的服务器,我就可以实现 1 个亿的数据分片,我有 32 核心的服务器么?没有,所以我至今无法实现 1 个亿的数据分片。——Mycat’s Plan上面这句话是 Mycat 1.0 快要完成时候的一段感言,而当发展到 Mycat 1.3 的时候,我们又有了一个新的Plan:如果我们有 10 台物理机,我们就可以实现 1000 亿的数据分片,我们有 10 台物理机么?没有,所以,Mycat 至今没有机会验证 1000 亿大数据的支撑能力

2021-02-07 16:28:47 412

原创 快速学习-MyCat概述

第 1 章 概述1.1 数据库切分概述1.1.1 OLTP 和 OLAP在互联网时代,海量数据的存储与访问成为系统设计与使用的瓶颈问题,对于海量数据处理,按照使用场景,主要分为两种类型:联机事务处理(OLTP)和联机分析处理(OLAP)。联机事务处理(OLTP)也称为面向交易的处理系统,其基本特征是原始数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果。联机分析处理(OLAP)是指通过多维的方式对数据进行分析、查询和报表,可以同数据挖掘工具、统计分析工具配合使用,增强决策分析功能。

2021-02-03 09:46:20 341

原创 快速学习-Mycat简介

MyCat简介2013 年阿里的 Cobar 在社区使用过程中发现存在一些比较严重的问题,及其使用限制,经过 Mycat 发人第一次改良,第一代改良版——Mycat 诞生。 Mycat 开源以后,一些 Cobar 的用户参与了 Mycat 的开发,最终 Mycat 发展成为一个由众多软件公司的实力派架构师和资深开发人员维护的社区型开源软件。2014 年 Mycat 首次在上海的《中华架构师》大会上对外宣讲,更多的人参与进来,随后越来越多的项目采用了Mycat。2015 年 5 月,由核心参与者们一起编

2021-02-02 17:49:26 312

原创 数据库MongoDB-Spring Data Mongod

MongoDB的集合操作MongoDB中的集合是一组文档的集,相当于关系型数据库中的表。 1. **语法格式**db.changeUserPassword(“用户名”,“新密码”)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-52iBA5Y1-1611573489642)(https://uploader.shimo.im/f/63RzzTh3g1eUoVgZ.png!thumbnail?fileGuid=TVXCXINSEMcmZvkf)]如果.

2021-02-01 23:07:29 390

原创 数据库MongoDB-索引

MongoDB 索引索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对系统的性能是非常致命的。索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构创建索引在MongoDB中会自动为文档中的_Id(文档的主键)键创建索引,与关系型数据的主键索引类似。我们可以使用creat

2021-02-01 23:01:04 1571

原创 数据库MongoDB-聚合查询

MongoDB 聚合查询在MongoDB中我们可以通过aggregate()函数来完成一些聚合查询,aggregate()函数主要用于处理诸如统计,平均值,求和等,并返回计算后的数据结果。语法格式:db.COLLECTION_NAME.aggregate([{$group:{_id:"$分组键名","$分组键名",.....,别名:{聚合运算:"$运算列"}}},{条件筛选:{键名:{运算条件:运算值}}}])常见的mongo的聚合操作和mysql的查询做类比求和 - $sum查询dev集合中

2021-01-31 23:15:40 1241

原创 数据库MongoDB-排序

MongoDB 排序在 MongoDB 中使用 sort() 函数对查询到的文档进行排序,sort() 函数可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。语法格式:db.COLLECTION_NAME.find().sort({排序键:1})查询结果按照age升序排序。db.c1.find().sort({age:1});也可以对字符串进行排序,排序时按照编码顺序进行排序。支持中文等。虽然支持,但是平时还是多按照数值类型的属性

2021-01-31 23:09:52 1034

原创 数据库MongoDB-分页

分页MySQL:select * from table limit 起始索引,每页条数limit(数字)查询结果中前几个skip(数字)跳过结果中前几个跳过签个文档对象db.c1.find().skip(2)只要结果中前两行db.c1.find().limit(2)表示查询前两个文档对象,可用用在分页上,表示第一页数据。db.c1.find().skip(0).limit(2)...

2021-01-31 23:09:03 393

原创 数据库MongoDB-删除文档

删除文档remove()函数使用remove()函数可删除集合中的指定文档。语法格式:remove({指定删除条件},删除参数(可选参数))删除age为空的第一条数据。注意参数只能是1,不支持其他数字。db.c1.remove({age:{$exists:false}},1);删除所有age为空的数据。db.c1.remove({age:{$exists:false}});deleteOne()函数deleteOne()函数是官方推荐删除文档的方法。该方法只删除满足条件的第一条文档。

2021-01-31 23:08:07 414

原创 数据库MongoDB-类型操作符

类型操作符$type 操作符$type根据类型查询。可取值和JavaScript类型取值相同。number 数值string 字符串,注意s小写object 对象取出所有age里面是数值类型的文档对象db.c1.find({age:{$type:"number"}});可以借助$exists判断为空值的文档对象。db.c1.find({age:{$exists:false}});...

2021-01-31 23:06:20 301

原创 数据库MongoDB-逻辑操作符

逻辑操作符$and我们可以使用and操作符来表示多条件间的并且关系。由于and操作符来表示多条件间的并且关系。由于and操作符来表示多条件间的并且关系。由于and有多个条件,所以类型是数组类型[],每个元素都是一个条件{}语法格式为:find({$and:[{条件一},{,条件二},…]})查询所有年龄为18,并且名字为张三的文档对象db.c1.find({$and:[{age:18},{name:“张三”}]})$or我们可以使用$or操作符来表示多条件间的或者关系。语法格式为:find(

2021-01-31 23:05:24 337

原创 数据库MongoDB-文档操作

MongoDB的文档操作在MongoDB中文档是指多个键及其关联的值有序地放置在一起就是文档,其实指的就是数据,也是我们平时操作最多的部分。MongoDB中的文档的数据结构和 JSON 基本一样。所有存储在集合中的数据都是 BSON 格式。BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。插入文档插入单个文档注意:新增时不需要考虑field,如果field已经存在则向指定field中新增。如果field不存在,则在collection中新添加一个fi

2021-01-31 23:01:22 470 1

原创 数据库MongoDB-集合操作

MongoDB的集合操作MongoDB中的集合是一组文档的集,相当于关系型数据库中的表。创建集合MongoDB使用db.createCollection()函数来创建集合。语法格式:db.createCollection(name, options)。name: 要创建的集合名称。options: 可选参数, 指定有关内存大小及索引的选项。options 可以是如下参数。字段类型描述capped布尔(可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的

2021-01-31 22:54:28 439

原创 数据库MongoDB-用户使用

MongoDB用户使用创建DB管理用户mongodb有一个用户管理机制,简单描述为,有一个管理用户组,这个组的用户是专门为管理普通用户而设的,暂且称之为管理员。管理员通常没有数据库的读写权限,只有操作用户的权限, 因此我们只需要赋予管理员userAdminAnyDatabase角色即可。另外管理员账户必须在admin数据库下创建。小技巧:由于用户被创建在哪个数据库下,就只能在哪个数据库登录,应该把所有的用户都创建在admin数据库下。先use admin数据库,进行登录,登录后use其他数据库

2021-01-25 19:48:09 560

原创 数据库Mongodb-用户权限列表

Mongodb用户权限列表read允许用户读取指定数据库readWrite允许用户读写指定数据库dbAdmin允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profileuserAdmin允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户clusterAdmin只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限readAnyDatabase只在admin数据库中可用

2021-01-25 19:40:29 598

原创 数据库MongoDB-下载与安装

MongoDB的下载与安装下载MongoDB下载地址:https://www.mongodb.com/download-center/community安装MongoDB在Linux平台的MongoDB为解压版。我们只要解压tgz文件就可以使用。安装依赖MongoDB4.2.3需要依赖openssl10相关资源,必须先在Linux中安装openssl10。把compat-openssl10-1.0.2o-3.el8.x86_64.rpm上传到/opt中# yum install -y ma

2021-01-25 19:39:41 676

原创 数据库MongoDB-与关系型数据库对比

MongoDB与关系型数据库对比与关系型数据库术语对比[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A5QnIbaN-1611573489630)(https://uploader.shimo.im/f/nesH8LTfPR9UV5KY.png!thumbnail?fileGuid=TVXCXINSEMcmZvkf)]存储数据对比[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KCeebfw9-1611573489631)(https:/

2021-01-25 19:22:22 501

原创 数据库-MongoDB简介

MongoDB简介什么是MongoDBMongoDB是一个基于分布式文件存储的数据库。由C++语言编写。在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索

2021-01-25 19:19:52 290

原创 数据库PostrageSQL-测试覆盖检查

33.5. 测试覆盖检查PostgreSQL 源代码可以使用覆盖测试指令编译,因此可以检查哪些部分的代码被回归测试或任何其他测试套件所覆盖。当前使用 GCC 编译时支持该特性,并且需要gcov和lcov程序。一个典型的工作流程看起来是:./configure --enable-coverage ... OTHER OPTIONS ...makemake check # 或其他测试套件make coverage-html然后将你的 HTML 浏览器指向coverage/index.html。ma

2021-01-11 21:26:13 402

原创 数据库PostrageSQL-TAP 测试

33.4. TAP 测试很多测试,特别是src/bin下面的客户端程序测试使用 Perl 的 TAP 工具并且用Perl测试程序prove运行。你可以通过 设置make变量PROVE_FLAGS 向prove传递命令行选项,例如:make -C src/bin check PROVE_FLAGS='--timer'详见prove的手册页。make变量PROVE_TESTS可被用来定义一个空格分隔的列表,其中是调用prove来运行的指定测试子集的路径,这些测试子集将取代默认的t/*.pl,并且这些路

2021-01-11 21:22:27 557 1

原创 数据库PostrageSQL-变体比较文件

33.3. 变体比较文件因为某些测试生来就会产生依赖环境的结果,我们提供了方法来指定替代的“预期”结果文件。每一个回归测试可以有多个比较文件来展示在不同平台上的可能结果。有两种独立的机制来决定为每一个测试使用哪个比较文件。第一种机制允许为指定平台选择比较文件。这是一个映射文件src/test/regress/resultmap,它定义了为每一个平台使用哪个比较文件。要为一个特定平台消除虚假的测试“失败”,你可以首先选择或创建一个变体结果文件,然后在resultmap文件中增加一行。在该映射文件中的每一

2021-01-11 21:15:26 295

原创 数据库PostrageSQL-测试评估

33.2. 测试评估一些正确安装的并且全功能的PostgreSQL安装可能会在这些回归测试中的某些上“失败”,其原因是平台相关的因素,例如可变浮点表示和 message wording。这些测试目前采用diff命令来比较测试输出和在参考系统上产生的输出,这样测试的结果对小的系统差异也很敏感。当一个测试被报告为“失败”时,请总是检查实际结果和期望结果之间的差异,你可能会发现该差异其实并不明显。不管怎样,我们将努力维护在所有被支持平台上的准确的参考文件,以期待所有的测试都能通过。回归测试的实际输出在src/

2021-01-11 09:44:06 359

原创 数据库PostrageSQL-回归测试

Chapter 33. 回归测试回归测试是PostgreSQL中对于 SQL 实现的一组综合测试集。它们测试标准 SQL 操作以及PostgreSQL的扩展能力。33.1. 运行测试回归测试可以在一个已经安装并运行的服务器上运行,或者在编译树中的一个临时安装上运行。此外,还有运行该测试的“并行”和“顺序”模式。顺序方法单独运行每一个测试脚本,而并行方法则开启多个服务器进程来并行地运行多组测试。并行测试能够发现进程间通信和锁定是否工作正确。33.1.1. 在一个临时安装上运行测试要在编译之后且在安装

2021-01-11 09:43:44 549

原创 数据库PostrageSQL-可扩展性

32.4. 可扩展性32.4.1. 对扩展的内联支持PostgreSQL的JIT实现可以内联C以及internal类型的函数体,还有基于这类函数的操作符。为了能对扩展中的函数这样做,需要让那些函数的定义可用。在使用PGXS对一个已经编译有LLVM JIT支持的服务器构建一个扩展时,相关的文件将被自动构建并且安装。相关的文件必须被安装在$pkglibdir/bitcode/$extension/中并且对它们的一份概要必须被安装在$pkglibdir/bitcode/$extension.index.b

2021-01-11 09:43:23 375

空空如也

空空如也

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

TA关注的人

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