#【YashanDB认证】#YCA的学习过程总结-之崖山数据库初体验

概述

       前段时间崖山数据库做推广活动,参加了yca的考试,为啥参加这个数据库厂商的学习呢,因为目前这个数据库最像Oracle,又听公司的前辈说呢,这个公司的前身是华为人出来做的数据库,华为人的精神呢,我是比较信服的,是一帮子做事的人。所以呢就开始了学习,也初步体验一下,大概就是体验到能安装完成一个单机个人版的学习环境,然后创建测试表,再然后看看执行计划,建立个索引这些基础的体验项目。

      安装过程,请参见YashanDB服务端个人版安装部署-CSDN博客,这个博客我看着算是比较完成的安装过程。我这里就赘述了。

基础运维操作

部署实例

cd /home/yashan/install
./bin/yasboot cluster deploy -t yashandb.tomlyashandb.toml 实例文件的配置文件,规定了哪个data 目录,以及实例名字等。[yashan@Kylin69 install]$ cat yashandb.toml
cluster = "yashandb"
create_simple_schema = false
uuid = "666ef6a05088db684227fee09dbb3a1e"
yas_type = "SE"[[group]]group_type = "db"name = "dbg1"[group.config]CHARACTER_SET = "utf8"ISARCHIVELOG = trueREDO_FILE_NUM = 4REDO_FILE_SIZE = "128M"[[group.node]]data_path = "/data/yashan/yasdb_data"hostid = "host0001"role = 1[group.node.config]CGROUP_ROOT_DIR = "/sys/fs/cgroup"LISTEN_ADDR = "10.203.13.69:1688"REPLICATION_ADDR = "10.203.13.69:1689"RUN_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.2.4.100/log/yashandb/db-1-1/run"RUN_LOG_LEVEL = "INFO"SLOW_LOG_FILE_PATH = "/data/yashan/yasdb_home/yashandb/23.2.4.100/log/yashandb/db-1-1/slow"
[yashan@Kylin69 install]$

删除实例

yasboot cluster clean --cluster yashandb --purge

重新创建实例

pwd
/home/yashan/install./bin/yasboot cluster deploy -t yashandb.toml--查看实例状态
yasboot cluster status -c yashandb
--停止实例
yasboot cluster stop  -c yashandb
--重新启动实例
yasboot process yasom      start -c yashandb
yasboot process yasagent  start -c yashandb
yasboot cluster  start -c yashandb

 环境变量设置

./bin/yasboot cluster deploy -t yashandb.toml
cd /data/yashan/yasdb_home/yashandb/23.2.4.100/conf
cat yashandb.bashrc >> ~/.bashrc
source ~/.bashrc

修改管理员密码

yasboot cluster password set -n  Swg_202408  -c yashandb
yasboot cluster status -c yashandb
yasql sys/Swg_202408

解锁普通用户

yasql sys/Swg_202408
--解锁MDSYS用户,并将该用户的密码设置为Swg_202408
alter user  MDSYS account unlock identified by Swg_202408;
--授权角色给用户MDSYS
grant create session to MDSYS;
grant dba to MDSYS;
--在yasql状态下切换用户到MDSYS
conn  MDSYS/Swg_202408

 这dba_users 视图对于从Oracle转换过dba 算是比较友好的。使用上面的命令就可以切换到MDSYS用户。

创建应用表

       我们还是创建最常见的Oracle的scott三个表,部门表dept,员工信息表emp,职级表salgrade

相关的DDL代码如下

CREATE TABLE dept(deptno INT PRIMARY KEY,dname VARCHAR(14),loc VARCHAR(13)
);CREATE TABLE emp
(EMPNO INT(4) PRIMARY KEY,ENAME VARCHAR(10),JOB VARCHAR(9),MGR INT(4),HIREDATE DATE,SAL DOUBLE,COMM DOUBLE,deptno INT,
FOREIGN KEY (deptno) REFERENCES dept(deptno));CREATE TABLE  salgrade (grade INT PRIMARY KEY,losal INT,hisal INT);INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK');
INSERT INTO dept VALUES (20,'RESEARCH','DALLAS');
INSERT INTO dept VALUES (30,'SALES','CHICAGO');
INSERT INTO dept VALUES (40,'OPERATIONS','BOSTON');
--yasql 自动提交默认是关闭的
commit;
INSERT INTO salgrade VALUES(1,700,1200);
INSERT INTO salgrade VALUES(2,1201,1400);
INSERT INTO salgrade VALUES(3,1401,2000);
INSERT INTO salgrade VALUES(4,2001,3000);
INSERT INTO salgrade VALUES(5,3001,9999);
--yasql 自动提交默认是关闭的
commit;
INSERT INTO emp VALUES (7369,'SMITH','CLERK',7902,DATE('1980-12-17'),800,NULL,20);
INSERT INTO emp VALUES (7499,'ALLEN','SALESMAN',7698,DATE('1981-2-20'),1600,300,30);
INSERT INTO emp VALUES (7521,'WARD','SALESMAN',7698,DATE('1981-2-22'),1250,500,30);
INSERT INTO emp VALUES (7566,'JONES','MANAGER',7839,DATE('1981-4-2'),2975,NULL,20);
INSERT INTO emp VALUES (7654,'MARTIN','SALESMAN',7698,DATE('1981-9-28'),1250,1400,30);
INSERT INTO emp VALUES (7698,'BLAKE','MANAGER',7839,DATE('1981-5-1'),2850,NULL,30);
INSERT INTO emp VALUES (7782,'CLARK','MANAGER',7839,DATE('1981-6-9'),2450,NULL,10);
INSERT INTO emp VALUES (7788,'SCOTT','ANALYST',7566,DATE('1987-4-19'),3000,NULL,20);
INSERT INTO emp VALUES (7839,'KING','PRESIDENT',NULL,DATE('1981-11-17'),5000,NULL,10);
INSERT INTO emp VALUES (7844,'TURNER','SALESMAN',7698,DATE('1981-9-8'),1500,0,30);
INSERT INTO emp VALUES (7876,'ADAMS','CLERK',7788,DATE('1987-5-23'),1100,NULL,20);
INSERT INTO emp VALUES (7900,'JAMES','CLERK',7698,DATE('1981-12-3'),950,NULL,30);
INSERT INTO emp VALUES (7902,'FORD','ANALYST',7566,DATE('1981-12-3'),3000,NULL,20);
INSERT INTO emp VALUES (7934,'MILLER','CLERK',7782,DATE('1982-1-23'),1300,NULL,10);
--yasql 自动提交默认是关闭的
commit;--清楚数据的
delete from emp;
delete from salgrade;
delete from dept;
--查看数据
select *  from emp;
select *  from salgrade;
select *  from dept;

简单进行了SQL语句的执行计划的查看

SQL> explain select e.EMPNO,e.ENAME,e.JOB from dept d,emp e   where  d.DEPTNO=e.DEPTNO;PLAN_DESCRIPTION
----------------------------------------------------------------
SQL hash value: 3510891856
Optimizer: ADOPT_C+----+--------------------------------+----------------------+------------+----------+-------------+--------------------------------+
| Id | Operation type                 | Name                 | Owner      | Rows     | Cost(%CPU)  | Partition info                 |
+----+--------------------------------+----------------------+------------+----------+-------------+--------------------------------+
|  0 | SELECT STATEMENT               |                      |            |          |             |                                |
|  1 |  NESTED INDEX LOOPS INNER      |                      |            |    100000|      165( 0)|                                |
|  2 |   TABLE ACCESS FULL            | EMP                  | MDSYS      |    100000|      126( 0)|                                |
|* 3 |   INDEX UNIQUE SCAN            | SYS_C_23             | MDSYS      |         1|        1( 0)|                                |
+----+--------------------------------+----------------------+------------+----------+-------------+--------------------------------+Operation Information (identified by operation id):
---------------------------------------------------3 - Predicate : access("D"."DEPTNO" = "E"."DEPTNO")16 rows fetched.SQL>

通过hint影响SQL的执行计划

LEADING

      LEADING语法能够改变Join两边表的顺序,常见做法是通过LEADING调整大小表,减少扫描数量;或通过LEADING调整表连接顺序,增加选择率,减少执行负担。


SQL> create table t1(t1_id int,t1_name varchar(50));Succeed.SQL> create table t2(t2_id int,t2_name varchar(50));Succeed.SQL> explain select  * from t1,t2  where  t1.t1_id=t2.t2_id;PLAN_DESCRIPTION
----------------------------------------------------------------
SQL hash value: 1636752117
Optimizer: ADOPT_C+----+--------------------------------+----------------------+------------+----------+-------------+--------------------------------+
| Id | Operation type                 | Name                 | Owner      | Rows     | Cost(%CPU)  | Partition info                 |
+----+--------------------------------+----------------------+------------+----------+-------------+--------------------------------+
|  0 | SELECT STATEMENT               |                      |            |          |             |                                |
|* 1 |  HASH JOIN INNER               |                      |            |    100000|      354( 0)|                                |
|  2 |   TABLE ACCESS FULL            | T1                   | MDSYS      |    100000|      121( 0)|                                |
|  3 |   TABLE ACCESS FULL            | T2                   | MDSYS      |    100000|      121( 0)|                                |
+----+--------------------------------+----------------------+------------+----------+-------------+--------------------------------+Operation Information (identified by operation id):
---------------------------------------------------1 - Predicate : access("T1"."T1_ID" = "T2"."T2_ID")16 rows fetched.SQL> explain select /*+LEADING(t1,t2)*/  * from t1,t2  where  t1.t1_id=t2.t2_id;PLAN_DESCRIPTION
----------------------------------------------------------------
SQL hash value: 3417037079
Optimizer: ADOPT_C+----+--------------------------------+----------------------+------------+----------+-------------+--------------------------------+
| Id | Operation type                 | Name                 | Owner      | Rows     | Cost(%CPU)  | Partition info                 |
+----+--------------------------------+----------------------+------------+----------+-------------+--------------------------------+
|  0 | SELECT STATEMENT               |                      |            |          |             |                                |
|* 1 |  HASH JOIN INNER               |                      |            |    100000|      354( 0)|                                |
|  2 |   TABLE ACCESS FULL            | T1                   | MDSYS      |    100000|      121( 0)|                                |
|  3 |   TABLE ACCESS FULL            | T2                   | MDSYS      |    100000|      121( 0)|                                |
+----+--------------------------------+----------------------+------------+----------+-------------+--------------------------------+Operation Information (identified by operation id):
---------------------------------------------------1 - Predicate : access("T1"."T1_ID" = "T2"."T2_ID")16 rows fetched.SQL> explain select /*+LEADING(t2,t1)*/  * from t1,t2  where  t1.t1_id=t2.t2_id;PLAN_DESCRIPTION
----------------------------------------------------------------
SQL hash value: 2731071767
Optimizer: ADOPT_C+----+--------------------------------+----------------------+------------+----------+-------------+--------------------------------+
| Id | Operation type                 | Name                 | Owner      | Rows     | Cost(%CPU)  | Partition info                 |
+----+--------------------------------+----------------------+------------+----------+-------------+--------------------------------+
|  0 | SELECT STATEMENT               |                      |            |          |             |                                |
|* 1 |  HASH JOIN INNER               |                      |            |    100000|      354( 0)|                                |
|  2 |   TABLE ACCESS FULL            | T2                   | MDSYS      |    100000|      121( 0)|                                |
|  3 |   TABLE ACCESS FULL            | T1                   | MDSYS      |    100000|      121( 0)|                                |
+----+--------------------------------+----------------------+------------+----------+-------------+--------------------------------+Operation Information (identified by operation id):
---------------------------------------------------1 - Predicate : access("T2"."T2_ID" = "T1"."T1_ID")16 rows fetched.SQL>
SQL> explain select  * from t1,t2  where  t1.t1_id=t2.t2_id;PLAN_DESCRIPTION
----------------------------------------------------------------
SQL hash value: 1636752117
Optimizer: ADOPT_C+----+--------------------------------+----------------------+------------+----------+-------------+--------------------------------+
| Id | Operation type                 | Name                 | Owner      | Rows     | Cost(%CPU)  | Partition info                 |
+----+--------------------------------+----------------------+------------+----------+-------------+--------------------------------+
|  0 | SELECT STATEMENT               |                      |            |          |             |                                |
|* 1 |  HASH JOIN INNER               |                      |            |    100000|      354( 0)|                                |
|  2 |   TABLE ACCESS FULL            | T1                   | MDSYS      |    100000|      121( 0)|                                |
|  3 |   TABLE ACCESS FULL            | T2                   | MDSYS      |    100000|      121( 0)|                                |
+----+--------------------------------+----------------------+------------+----------+-------------+--------------------------------+Operation Information (identified by operation id):
---------------------------------------------------1 - Predicate : access("T1"."T1_ID" = "T2"."T2_ID")16 rows fetched.SQL>

 

后记

如果各位有兴趣,可以参加一下崖山yca认证,通过官方的体系培训,跟价深入的去了解这款比较新的国产化数据库。以下是官网yca的链接。YashanDB|崖山数据库系统YashanDB学习中心-YCA认证详情

ps:今天就先体验到这里了,等以后再有时间再续写这篇博客。

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

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

相关文章

一些硬件知识【2024/11/3】

MLCC电容的ESR比较小,但是他的缺点是容量通常比较低;电解电容的容量比较大,但是他的ESR比较大;而钽电容介于两者之间,是MLCC找不到合适的容值比较大的时候,找钽电容: LC谐振电路: 五…

2024版红娘金媒10.3婚恋相亲系统源码小程序(亲测)

1. 红娘服务 红娘服务模块是该系统的一大特色。专业红娘会通过分析用户的个人资料和偏好, 为用户提供精准的配对建议和个性化服务。用户可以预约红娘服务,通过红娘的介入,提升配对成功率。 2. 相亲活动 相亲活动模块用于组织和管理线下或线…

自扶正救生艇,保障水上救援的安全卫士_鼎跃安全

在应急事件中,自扶正救生艇能够发挥关键的救援和保障作用,确保救援人员和被困人员的生命安全,尤其在极端天气或突发水上事故中展现出明显优势。 在救援过程中如果遭遇翻船,救生艇能够迅速恢复正常姿态,确保救援人员不会…

鸿蒙网络编程系列42-仓颉版域名解析示例

1. 域名解析简介 域名解析是网络开发中经常使用的功能之一,特别是对于当前版本的鸿蒙API,使用TCP或者UDP等网络协议通讯时,只能使用确定的IP地址进行绑定或者发送消息,还不支持直接使用域名,所以,通过域名…

6.0、静态路由

路由器最主要的功能就是转发数据包。路由器转发数据包时需要查找路由表(你可以理解为地图),管理员可以直接手动配置路由表,这就是静态路由。 1.什么是路由? 在网络世界中,路由是指数据包在网络中的传输路…

玩转HF/魔搭/魔乐社区(作业)

任务描述时间模型下载使用Hugging Face平台、魔搭社区平台(可选)和魔乐社区平台(可选)下载文档中提到的模型(至少需要下载config.json文件、model.safetensors.index.json文件),请在必要的步骤以…

QT——记事本项目

目录 1.给pushButton按键添加图片 1.1 首先复制存放图片的文件夹,打开Qt回到编辑页面,右键单击pro文件选择在Explorer中显示,将图片文件夹粘贴进去你的代码同目录即可 1.2 创建一个新的文件夹 1.3 点击Add Files,将所有图片添加…

Redis-“自动分片、一定程度的高可用性”(sharding水平拆分、failover故障转移)特性(Sentinel、Cluster)

文章目录 零、写在前面一、水平拆分(sharding/分片)、故障转移(failover)机制介绍水平拆分(Sharding)故障转移机制 二、Redis的水平拆分的机制有关的配置1. 环境准备2. 配置文件配置3. 启动所有Redis实例4. 创建集群5. 测试集群读/写6. 集群管理 三、Red…

OpenCV视觉分析之目标跟踪(7)目标跟踪器类TrackerVit的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 VIT 跟踪器由于特殊的模型结构而变得更快且极其轻量级,模型文件大约为 767KB。模型下载链接:https://github.com/opencv/…

yolov8训练及测试(ubuntu18.04、tensorrt、ros)

1 数据集制作 1.1标注数据 Linux/Ubuntu/Mac 至少需要 Python 2.6 (推荐使用 Python 3 或更高版本 及 PyQt5) Ubuntu Linux (Python 3 Qt5) git clone https://gitcode.com/gh_mirrors/la/labelImg.git sudo apt-get install pyqt5-dev-tools cd lab…

海睿思产品体系二次开发能力介绍

海睿思产品体系支持用户通过编写开发代码(含低代码),提供定制化功能,解决数据治理和共享场景的个性化需求。 1、数据集成 应用场景:自定义数据集成能力 开发语言:JAVA 使用效果: 1&#xff…

SpringMVC笔记 一万字

此笔记来自于B站尚硅谷 文章目录 一、SpringMVC 简介1、什么是MVC2、什么是SpringMVC3、SpringMVC的特点 二、HelloWorld1、开发环境2、创建maven工程a>添加web模块b>打包方式:warc>引入依赖 3、配置web.xmla>默认配置方式b>扩展配置方式 4、创建请求…

Maven随笔

文章目录 1、什么是MAVEN2、Maven模型3、Maven仓库4、项目集成1_Idea集成Maven设置2_创建Maven项目3_POM配置详解4_maven 坐标详情5_Maven工程类型6_导入Maven项目 5、依赖管理1_依赖配置2_依赖传递3_可选依赖4_排除依赖4_可选依赖和排除依赖的区别5_依赖范围6_继承与聚合7_版本…

看门狗有什么用?

看门狗(WATCH-DOG Timer)全称看门狗定时器 用途:防止程序死机(主要用途) 或 单纯用来计时 直接上代码: 只要程序可以正常运行,看门狗就会清零,如果崩了,看门狗就会复位程序

云原生开源开发者沙龙丨AI 应用工程化专场杭州站邀您参会

云原生开源开发者沙龙 AI 原生应用架构专场,邀您一起交流,探索 AI 原生应用的工程化落地! 活动简介 AI 驱动的应用程序开发、部署和运维,给应用带来了新的生命力和想象空间。但大部分开发者对 AI 应用的编程框架、可观测体系、网…

UFO:Windows操作系统的具象智能代理

近年来,随着AI技术的发展,智能代理在各种应用中扮演着越来越重要的角色。微软推出的UFO(User-Focused Operator)正是这样一个出色的多代理框架,旨在通过无缝导航和操作,满足用户在Windows操作系统中跨多个应…

基于人工智能的搜索和推荐系统

互联网上的搜索历史分析和用户活动是个性化推荐的基础,这些推荐已成为电子商务行业和在线业务的强大营销工具。随着人工智能的使用,在线搜索也在改进,因为它会根据用户的视觉偏好提出建议,而不是根据每个客户的需求和偏好量身定制…

使用ffmpeg和mediamtx模拟多通道rtsp相机

首先下载ffmpeg,在windows系统上直接下载可执行文件,并配置环境变量即可在命令行当中调用执行。 下载地址: https://ffmpeg.org/再在github上下载mediamtx搭建rtsp服务器,使用ffmpeg将码流推流到rtsp服务器。 下载地址&#xff1…

Spring Boot框架:校园社团信息管理的现代化解决方案

3系统分析 3.1可行性分析 通过对本校园社团信息管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本校园社团信息管理系统采用SSM框架,JAVA作…

软件测试面试八股文个人总结

一、软件测试基础面试题 1、阐述软件生命周期都有哪些阶段? 常见的软件生命周期模型有哪些? 软件生命周期是指一个计算机软件从功能确定设计,到开发成功投入使用,并在使用中不断地修改、增补和完善,直到停止该软件的使用的全过程(从酝酿到…