2023-09-28 monetdb-databae的概念和作用-分析

摘要:

每个数据库对于db,schema以及user,role都有一套自己的设计, 不同数据库间对于相同名字的东西例如database和schema可以说南辕北辙, 例如mysql中schema其实是database的同义词.

本文分析monetdb的database的概念和作用

database的概念和作用:

  1. 和mysql的database完全不同, mysql的database和schema是同义词, 但是mdb的database完全不同
  2. mdb的database可以当作实例来理解, 一个db包含mserver运行的一切, 以下逐个解释
  3. mdb的db在物理文件上, 包含最顶层的目录结构, mserver是以db为单元启动
  4. 用户每指定一个不同的db做连接, 就启动一个新的mserver进程
  5. db与db之间, 从物理文件目录结构上就彻底隔离, 除了预定义的对象, 两个db之间没有任何相同的地方
  6. 无论用户定义的schema,user,role,UDF等等, 两个不同的db, 都是互相不能使用也不能访问
  7. 换个简单的说法, user是db的一部分, 一个db可以创建多个user, 但是一个user却只能位于一个db
    1. 这里有个漏洞, 如果两个不同的db里创建两个相同名字的user, 能说这个user是同一个?
    2. 显然不能, 因为这两个名字一样的user, 无论是password, 还是赋予的role, 还是创建的schema, 以及默认的schema, 都是独立的, 位于不同的db中
    3. 所以很明显, 就算是在两个不同的db中创建两个名字一样的user, 这两个user也是完全不同的, 仅仅只是user名字一样. 但是这两个user却位于两个不独立的db实例中!
  8. 那么该如何理解mdb中的database与mysql中的database的区别呢?
    1. mysql的database是schema的同义词
    2. 也就是说mysql的database对应的是mdb中的schema
    3. 而mdb的schema是mdb的database的一部分
    4. 那么mdb的database的作用就是mysql的整个实例
    5. 从运行的角度, mdb的一个实例是一个mserver进程, mysql的一个实例是一个mysqld进程.
    6. 一个mserver进程管理一个mdb的db, 也只能管理一个db. 而这个db包含运行时所有对象, 且与其他的mdb的db互相独立
    7. 一个mysqld进程管理所有的mysql对象, 即包含运行时的一切对象, 等价于mdb的一个mserver

mclient打开两个mdb的database分析:
 

节点架构图:

节点图说明:

  1. mserver对应的可以理解成mysqld
  2. 客户端每连接一个不同的database,就会启动一个新的mserver进程
  3. 如果两个客户端连接同一个database,那么就不会启动新的mserer进程

两个客户端分别连接两个不同的database的例子分析:

一. 创建两个database

# mytest
monetdb create mytest
monetdb release mytest# mycrack
monetdb create mycrack
monetdb release mycrack

二. 分别查看两个database下的目录结构

[root@dev-stonedb-zhangshilong1 mytest]# pwd
/dbfarm/mytest
[root@dev-stonedb-zhangshilong1 mytest]# ll
total 4
-rw------- 1 root root    0 Sep 28 02:46 6a292eb5-8a55-4861-af04-1e48573199f2
drwx------ 9 root root 4096 Sep 28 02:46 bat
-rw------- 1 root root    0 Sep 22 06:27 mdbtrace.log
drwx------ 3 root root   17 Sep 22 06:27 sql_logs

[root@dev-stonedb-zhangshilong1 mycrack]# pwd
/dbfarm/mycrack
[root@dev-stonedb-zhangshilong1 mycrack]# ll
total 0
-rw------- 1 root root  0 Sep 28 02:45 b2bc7dd0-a500-496e-9fee-d58cacbd7ddd
drwx------ 4 root root 30 Sep 28 02:45 bat
-rw------- 1 root root  0 Sep 28 02:45 mdbtrace.log
drwx------ 3 root root 17 Sep 28 02:45 sql_logs

分析:

  1. 可以看出都是作为顶层目录结构

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/94723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学会安装Redis数据库到服务器或计算机(Windows版)

Redis 是一个基于内存的开源数据库系统,被广泛应用于 Web 应用、消息队列、缓存、实时统计等领域。它支持多种数据结构,包括字符串、哈希表、列表、集合、有序集合等,并提供了多种操作命令。 Redis 的特点如下: 内存存储&#xf…

spring security(二)--授权

零.前情提要 这篇文章主要借鉴B站三更大大关于spring security的教程,这篇文章的大部分内容也来自于那个教程,写这个的主要目的是记录加强印象,总结,并且在文章中我也有穿插自己的想法。 前面的文章【spring security教程&#…

一文读懂UTF-8的编码规则

之前写过一篇文章“一文彻底搞懂计算机中文编码”里面只是介绍了GB2312编码知识,关于utf8没有涉及到,经过查询资料发现utf8是对unicode的一种可变长度字符编码,所以再记录一下。 现在国家对于信息技术中文编码字符集制定的标准是《GB 18030-…

sheng的学习笔记-【中英】【吴恩达课后测验】Course 1 - 神经网络和深度学习 - 第四周测验

课程1_第4周_测验题 目录:目录 第一题 1.在我们的前向传播和后向传播实现中使用的 “缓存” 是什么? A. 【  】它用于在训练期间缓存成本函数的中间值。 B. 【  】我们用它将在正向传播过程中计算的变量传递到相应的反向传播步骤。它包含了反向传…

html 边缘融合加载

html 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>边缘融合加载</title><style>* {margin: 0;padding: 0;box-sizing: border-box;}body {height: 100vh;padding-bottom: 80px;b…

DP读书:《openEuler操作系统》(四)鲲鹏处理器

鲲鹏处理器 一、处理器概述1.Soc2.Chip3.DIE4.Cluster5.Core 二、体系架构1.计算子系统2.存储子系统3.其他子系统 三、CPU编程模型1.中断与异常2.异常级别a.基本概念b.异常级别切换 下面为整理的内容&#xff1a;鲲鹏处理器 架构与编程&#xff08;一&#xff09;处理器与服务器…

uboot启动流程-uboot内存分配工作总结

一. uboot 启动流程 _main 函数中会调用 board_init_f 函数&#xff0c;本文继续简单分析一下 board_init_f 函数。 本文继续具体分析 board_init_f 函数。 本文继上一篇文章的学习&#xff0c;地址如下&#xff1a; uboot启动流程-uboot内存分配_凌肖战的博客-CSDN博客 二…

Flutter笔记:关于应用程序中提交图片作为头像

Flutter笔记 关于应用程序中提交图片作为头像 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/133418554…

【Vue组件化编程】

Vue组件化编程 1 对组件的理解2 非单文件组件2.1 基本使用2.2 几个注意点2.3 组件的嵌套2.4 VueComponent构造函数2.5 一个重要的内置关系 3 单文件组件 1 对组件的理解 组件&#xff1a;实现应用中局部功能代码和资源的集合。优点&#xff1a;文件好维护&#xff1b;依赖关系不…

SDL2绘制ffmpeg解析的mp4文件

文章目录 1.FFMPEG利用命令行将mp4转yuv4202.ffmpeg将mp4解析为yuv数据2.1 核心api: 3.SDL2进行yuv绘制到屏幕3.1 核心api 4.完整代码5.效果展示 本项目采用生产者消费者模型&#xff0c;生产者线程&#xff1a;使用ffmpeg将mp4格式数据解析为yuv的帧&#xff0c;消费者线程&am…

力扣 -- 96. 不同的二叉搜索树

解题步骤&#xff1a; 参考代码&#xff1a; class Solution { public:int numTrees(int n) {vector<int> dp(n1);//初始化dp[0]1;//填表for(int i1;i<n;i){for(int j1;j<i;j){//状态转移方程dp[i](dp[j-1]*dp[i-j]);}}//返回值return dp[n];} }; 你学会了吗&…

nodejs+vue养老人员活体鉴权服务系统elementui

系统 统计数据&#xff1a;统计报表、人员台账、机构数据、上报数据、核验报表等&#xff0c;养老人员活体鉴权服务是目前国家养老人员管理的重要环节&#xff0c;主要为以养老机构中养老人员信息为基础&#xff0c;每月进行活体鉴权识别并统计数据为养老补助等管理。前端功能&…

基于安卓android微信小程序的校园维修平台

项目介绍 随着社会的发展&#xff0c;社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是采用java语言技术和mysql数据库来完成对系统的设计。整…

Monkey基本使用及介绍

1 简介.. 1 1.1 Monkey是干什么的.. 1 1.2 我们为什么要用monkey. 1 1.3 试行monkey的计划.. 2 2 monkey使用.. 4 2.1 基本常识.. 4 2.2 基本使用.. 6 2.2.1 通过adb 来启动monkey. 6 2.2.2 一些命令选项.. 7 2.2.3 一些测试例子.. 7 2.2.4 执行注意事项.. 9 2.2.5侦…

Centos7 安装mysql 8.0.34并设置不区分大小写

索引 Centos7 安装mysql 8.0.34准备工作安装教程安装并配置配置MySQL配置远程访问重新启动MySQL服务 为已安装的MySQL8设置不区分大小写背景操作步骤 Centos7 安装mysql 8.0.34 准备工作 centos7 服务器 xshell 安装教程 安装并配置 在安装MySQL之前&#xff0c;我们应该…

c++ 基础知识(一)

文章目录 1. C关键字 2. 命名空间 3. C输入&输出 4. 缺省参数 文章内容 1. C关键字(C98) C总计63个关键字&#xff0c;C语言32个关键字 ps&#xff1a;下面我们只是看一下C有多少关键字&#xff0c;不对关键字进行具体的讲解。后面我学了以后再细讲。 2. 命名空间 …

Kaggle - LLM Science Exam上:赛事概述、数据收集、BERT Baseline

文章目录 一、赛事概述1.1 OpenBookQA Dataset1.2 比赛背景1.3 评估方法和代码要求1.4 比赛数据集1.5 优秀notebook 二、BERT Baseline2.1 数据预处理2.2 定义data_collator2.3 加载模型&#xff0c;配置trainer并训练2.4 预测结果并提交2.5 deberta-v3-large 1k Wiki&#xff…

【Docker】Docker的应用包含Sandbox、PaaS、Open Solution以及IT运维概念的详细讲解

前言 Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 &#x1f4d5;作者简介&#xff1a;热…

​苹果应用高版本出现:“无法安装此app,因为无法验证其完整性”是怎么回事?竟然是错误的?

最近经常有同学私聊我问苹果应用签名后用落地页下载出现高版本是什么意思&#xff1f;我一脸懵&#xff01;还有这个操作&#xff1f;高版本是个啥玩意&#xff01;所以我就上了一下科技去搜索引擎搜索了下&#xff0c;哈哈哈&#xff0c;然后了解下来发现是这样的首先我们确定…

Doris数据库BE——冷热数据方案

新的冷热数据方案是在整合了存算分离模型的基础上建立的&#xff0c;其核心思路是&#xff1a;DORIS本地存储作为热数据的载体&#xff0c;而外部集群&#xff08;HDFS、S3等&#xff09;作为冷数据的载体。数据在导入的过程中&#xff0c;先作为热数据存在&#xff0c;存储于B…