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.xdnf.cn/news/148393.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Windows11安装MySQL8.1

安装过程中遇到任何问题均可以参考(这个博客只是单纯升级个版本和简化流程) Windows安装MySQL8教程-CSDN博客 到官网下载mysql8数据库软件 MySQL :: Download MySQL Community Server 下载完后,解压到你需要安装的文件夹 其中的配置文件内容了如下 [mysqld]# 设置3306端口po…

云原生微服务 第六章 Spring Cloud Netflix Eureka集成OpenFeign组件,实现微服务的远程调用、负载均衡

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 文章目录 系列文章目录前言1、OpenFeign的实现…

STM32CubeMX学习笔记-USB接口使用(HID按键)

STM32CubeMX学习笔记-USB接口使用(HID按键) 一、USB简介1.1 USB HID简介 二、新建工程1. 打开 STM32CubeMX 软件,点击“新建工程”2. 选择 MCU 和封装3. 配置时钟4. 配置调试模式 三、USB3.1 参数配置3.2 引脚配置3.3 配置时钟3.4 USB Device…

Transformer学习-self-attention

这里写自定义目录标题 Self-attentionMulti-head self-attention用self-attention解决其他问题 Self-attention 用Wq、Wk、Wv分别乘输入向量得到q、k、v向量 用每个q向量乘所有的k向量得到对应项的attention,即用每项的query向量去匹配所有的key向量,得…

数字IC前端学习笔记:数字乘法器的优化设计(阵列乘法器)

相关阅读 数字IC前端https://blog.csdn.net/weixin_45791458/category_12173698.html?spm1001.2014.3001.5482 数字信号处理作为微处理器的核心部件,是决定着总体处理器性能的因素之一,而数字乘法器是最常见的一种数字信号处理电路。通常情况下&#…

python二次开发CATIA:为选中元素上色

先打开一个零件文档,然后用鼠标选中元素,再运行如下python程序: import win32com.client import pywintypes # 导入pywintypes模块 import random # 启动CATIA应用 catia win32com.client.Dispatch(CATIA.Application) catia.visible1try:…

from PIL import Image,文字成图,ImageFont import jieba分词,input优雅python绘制图片

开始的代码 import os from PIL import Image, ImageDraw, ImageFont import jiebadef generate_image_with_white_bg(text, font_path, output_path):# 设置图片大小和背景颜色image_width 800image_height 600bg_color (255, 255, 255) # 白色# 创建图片对象image Imag…

WOL唤醒配置(以太网、PHY、MAC)

目录 wol 以太网 MAC PHY RMII 通信配置 总结 wol Wake-on-LAN简称WOL,WOL(网络唤醒) 是一种标准网络协议,它的功效在于让已经进入休眠状态或关机状态的计算机,透过局域网(多半为以太网&#xff…

java图书管理系统

一、 引言 图书管理系统是一个用于图书馆或书店管理图书信息、借阅记录和读者信息的应用程序。本系统使用Java Swing框架进行开发,提供直观的用户界面,方便图书馆管理员或书店工作人员对图书信息进行管理。以下是系统的设计、功能和实现的详细报告。 二…

29 drf-Vue个人向总结-2

文章目录 drf项目总结2重写create自定义验证类获取个性化内容 与 lookup_field 的用处重写get_queryset,get_serializer_class类docs帮助文档支付宝支付原理(微信同原理)使用流程创建公钥私钥使用的理论介绍使用的代码介绍支付宝与Drf的联合使…

python中实现定时任务的几种方案

目录 while True: sleep()Timeloop库threading.Timersched模块schedule模块APScheduler框架Celery框架数据流工具Apache Airflow概述Airflow 核心概念Airflow 的架构 总结以下几种方案实现定时任务,可根据不同需求去使用不同方案。 while True: sleep() 利用whil…

Pytorch目标分类深度学习自定义数据集训练

目录 一,Pytorch简介; 二,环境配置; 三,自定义数据集; 四,模型训练; 五,模型验证; 一,Pytorch简介; PyTorch是一个开源的Python机…

【4】c++设计模式——>UML表示类之间的聚合关系

聚合关系表示整体与部分的关系,在聚合关系中,成员对象时整体的一部分,但是成员对象可以脱离整体对象独立存在,当整体被析构销毁的时候,组成整体的这些子对象是不会被销毁的,是可以继续存活,并在…

Hono——一个小型,简单且超快的Edges Web框架

Hono - [炎]在日语中的意思是火焰🔥 - 是一个小型,简单且超快的Edges Web框架。它适用于任何JavaScript运行时:Cloudflare Workers,Fastly ComputeEdge,Deno,Bun,Vercel,Netlify&…

机器学习 不均衡数据采样方法:imblearn 库的使用

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…

CSS3与HTML5

box-sizing content-box:默认,宽高包不含边框和内边距 border-box:也叫怪异盒子,宽高包含边框和内边距 动画:移动translate,旋转、transform等等 走马灯:利用动画实现animation:from…

【C++进阶(七)】仿函数深度剖析模板进阶讲解

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 模板进阶 1. 前言2. 仿函数的概念3. 仿函数的实…

背包问题

目录 开端 01背包问题 AcWing 01背包问题 Luogu P2925干草出售 Luogu P1048采药 完全背包问题 AcWing 完全背包问题 Luogu P1853投资的最大效益 多重背包问题 AcWing 多重背包问题 I AcWing 多重背包问题 II Luogu P1776宝物筛选 混合背包问题 AcWing 混合背包问题…

3种等待方式,让你学会Selenium设置自动化等待测试脚本!

一、Selenium脚本为什么要设置等待方式?——即他的应用背景到底是什么 应用Selenium时,浏览器加载过程中无法立即显示对应的页面元素从而无法进行元素操作,需设置一定的等待时间去等待元素的出现。(简单来说,就是设置…

Unity实现设计模式——状态模式

Unity实现设计模式——状态模式 状态模式最核心的设计思路就是将对象的状态抽象出一个接口,然后根据它的不同状态封装其行为,这样就可以实现状态和行为的绑定,最终实现对象和状态的有效解耦。 在实际开发中一般用到FSM有限状态机的实现&…