Oceanbase部分参数学习与验证
Oceanbase部分参数学习与验证
字符集等参数查看
yum install obclient -y
然后使用客户端连接:
obclient -h172.24.110.175 -P2881 -uroot -p'Testxxxx' -Doceanbase -A
mysql方式连接:
mysql -h127.0.0.1 -P2881 -pTestxxxx
# 查看字符集:
mysql> show variables like '%character%';
+--------------------------+---------+
| Variable_name | Value |
+--------------------------+---------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8mb4 |
+--------------------------+---------+
7 rows in set (0.00 sec)
# 版本查看
mysql> SELECT @@version;
+--------------------+
| @@version |
+--------------------+
| 3.1.3-OceanBase CE |
+--------------------+
1 row in set (0.00 sec)
大表创建情况
先验证一下大于MySQL的表是可以创建的:
[root@amd9t34 setup]# mysql -h127.0.0.1 -P2881 -pTestxxxx -A
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3221487924
Server version: 5.7.25 OceanBase 3.1.3 (r10100042022051821-a09d3134c10665f03fd56d7f8bdd413b2b771977) (Built May 18 2022 21:42:24)
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use xxxx
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> create table zhaobshbigtable (zhaobsh1 varchar(10000),zhaobsh2 varchar(10000),zhaobsh3 varchar(10000),zhaobsh4 varchar(10000),zhaobsh5 varchar(10000),zhaobsh6 varchar(10000),zhaobsh7 varchar(10000),zhaobsh8 varchar(10000),zhaobsh9 varchar(10000),zhaobsh10 varchar(10000)) ;
Query OK, 0 rows affected (0.02 sec)
列数限制确认
脚本创建表的create 语句
for i in {1..1000} ; do echo -n "zhaobsh${i} varchar(100),"; done
进入mysql客户端进行验证:
512个列时提示:
zhaobsh512 varchar(100));
ERROR 1117 (42000): Too many columns
511个列时可以创建
zhaobsh511 varchar(100));
Query OK, 0 rows affected (0.09 sec)
怀疑数据库里面应该有一个 rowid的隐藏列
所以加上这个隐藏列也就符合了 Oceanbase说的 512个列的限制条件了.
数据库模式确认
mysql> show variables like "%mode";
+-----------------------------+-------------------+
| Variable_name | Value |
+-----------------------------+-------------------+
| block_encryption_mode | aes-128-ecb |
| ob_compatibility_mode | MYSQL |
| ob_create_table_strict_mode | OFF |
| sql_mode | STRICT_ALL_TABLES |
+-----------------------------+-------------------+
4 rows in set (0.00 sec)
窗口函数验证
create table class(id int,classname int,grade int);
insert into class values(1,1,86),(2,1,95),(3,2,89),(4,1,83),(5,2,86),(6,3,92),(7,3,86),(8,1,88);
每个班的成绩进行排名:
select *,rank() over (partition by classname order by grade desc) as ranking from class;
排名
select *,rank() over (order by grade desc) as ranking, dense_rank() over (order by grade desc) as dense_ranking, row_number() over (order by grade desc) as row_num from class;
取出所有学生中成绩排名前三的学生
select a.classname,a.id,a.grade,a.rownum from (select id,classname,grade,row_number() over (order by grade desc) as rownum from class) as a inner join class as b on a.id=b.id where a.rownum<=3 order by a.rownum ;
每门课程中取成绩排名前2的学生:
也就是每门课程中都要取出两名学生
select a.classname,a.id,a.grade,a.rownum from (select id,classname,grade,row_number() over (partition by classname order by grade desc) as rownum from class) as a inner join class as b on a.id=b.id where a.rownum<=2 order by a.classname ;
知识来源:
https://zhuanlan.zhihu.com/p/164698823
部分窗口函数应该是支持的. 问题应该不大.
最大行长度验证
MySQL的数据库最大行长度是一个很恶心的 64k/字符集单个字节 占用数限制
发现Oceanbase的宣称支持到了1.5M 也就是 mysql默认值的 24倍,
这里也进行一下验证:
发现的确可以创建
393216 长度的单表
并且在393217的时候报错了.
创建大小的公式为 1.5*1024*1024/4
因为Oceanbase 默认支持的是 utf8mb4 不支持比较差的utf8mb3字符集
mysql> create table zhaobsh9 (zhaobsh1 varchar(10000),zhaobsh2 varchar(10000),zhaobsh3 varchar(10000),zhaobsh4 varchar(10000),zhaobsh5 varchar(10000),zhaobsh6 varchar(10000),zhaobsh7 varchar(10000),zhaobsh8 varchar(10000),zhaobsh9 varchar(10000),zhaobsh10 varchar(10000),zhaobsh11 varchar(10000),zhaobsh12 varchar(10000),zhaobsh13 varchar(10000),zhaobsh14 varchar(10000),zhaobsh15 varchar(10000),zhaobsh16 varchar(10000),zhaobsh17 varchar(10000),zhaobsh18 varchar(10000),zhaobsh19 varchar(10000),zhaobsh20 varchar(10000),zhaobsh21 varchar(10000),zhaobsh22 varchar(10000),zhaobsh23 varchar(10000),zhaobsh24 varchar(10000),zhaobsh25 varchar(10000),zhaobsh26 varchar(10000),zhaobsh27 varchar(10000),zhaobsh28 varchar(10000),zhaobsh29 varchar(10000),zhaobsh30 varchar(10000),zhaobsh31 varchar(10000),zhaobsh32 varchar(10000),zhaobsh33 varchar(10000),zhaobsh34 varchar(10000),zhaobsh35 varchar(10000),zhaobsh36 varchar(10000),zhaobsh37 varchar(10000),zhaobsh38 varchar(10000),zhaobsh39 varchar(10000),zhaobsh40 varchar(3216)) ;
Query OK, 0 rows affected (0.02 sec)
mysql> create table zhaobsh10 (zhaobsh1 varchar(10000),zhaobsh2 varchar(10000),zhaobsh3 varchar(10000),zhaobsh4 varchar(10000),zhaobsh5 varchar(10000),zhaobsh6 varchar(10000),zhaobsh7 varchar(10000),zhaobsh8 varchar(10000),zhaobsh9 varchar(10000),zhaobsh10 varchar(10000),zhaobsh11 varchar(10000),zhaobsh12 varchar(10000),zhaobsh13 varchar(10000),zhaobsh14 varchar(10000),zhaobsh15 varchar(10000),zhaobsh16 varchar(10000),zhaobsh17 varchar(10000),zhaobsh18 varchar(10000),zhaobsh19 varchar(10000),zhaobsh20 varchar(10000),zhaobsh21 varchar(10000),zhaobsh22 varchar(10000),zhaobsh23 varchar(10000),zhaobsh24 varchar(10000),zhaobsh25 varchar(10000),zhaobsh26 varchar(10000),zhaobsh27 varchar(10000),zhaobsh28 varchar(10000),zhaobsh29 varchar(10000),zhaobsh30 varchar(10000),zhaobsh31 varchar(10000),zhaobsh32 varchar(10000),zhaobsh33 varchar(10000),zhaobsh34 varchar(10000),zhaobsh35 varchar(10000),zhaobsh36 varchar(10000),zhaobsh37 varchar(10000),zhaobsh38 varchar(10000),zhaobsh39 varchar(10000),zhaobsh40 varchar(3217)) ;
ERROR 1118 (42000): Row size too large
mysql>
Oceanbase部分参数学习与验证的更多相关文章
- House of Spirit学习调试验证与实践
作家:Bug制造机 原文来自:House of Spirit学习调试验证与实践 House of Spirit和其他的堆的利用手段有所不同.它是将存在的指针改写指向我们伪造的块(这个块可以位于堆.栈. ...
- LDD3之并发和竞态-completion(完毕量)的学习和验证
LDD3之并发和竞态-completion(完毕量)的学习和验证 首先说下測试环境: Linux2.6.32.2 Mini2440开发板 一開始难以理解书上的书面语言,这里<linux中同步样例 ...
- [转]Python3之max key参数学习记录
Python3之max key参数学习记录 转自https://www.cnblogs.com/zhangwei22/p/9892422.html 今天用Python写脚本,想要实现这样的功能:对于给 ...
- java web项目中后台控制层对参数进行自定义验证 类 Pattern
Pattern pattern = Pattern.compile("/^([1-9]\d+元*|[0]{0,1})$/");//将给定的正则表达式编译到模式中 if(!" ...
- ThinkPHP6.0学习笔记-验证器
验证器 By:Mirror王宇阳 验证器定义 验证器的使用,必须定义它:系统提供了一条命令直接生产一个验证器类: php think make:validate User 自动再应用目录下生成一个va ...
- 七参数计算正确性验证——Coord软件使用
我计算了一套七参数,但是别人说计算结果不正确,我只好验证一下. 最后知道为啥算错了,原来是尺度K的单位问题,我计算七参数的单位是PPM,而下面软件的单位是m所以需要除以1000000进行计算. 下面是 ...
- MySQL--eq_range_index_dive_limit参数学习,MYSQL 5.6 5.7处理数据分布不均的问题
官方文档如下描述:This variable indicates the number of equality ranges in an equality comparison condition w ...
- sklearn调参(验证曲线,可视化不同参数下交叉验证得分)
一 . 原始方法: 思路: 1. 参数从 0+∞ 的一个 区间 取点, 方法如: np.logspace(-10, 0, 10) , np.logspace(-6, -1, 5) 2. 循环调用cr ...
- MySQL--eq_range_index_dive_limit参数学习
官方文档如下描述:This variable indicates the number of equality ranges in an equality comparison condition w ...
- java struts2入门学习---中文验证、对错误消息的分离、结果(result)类型细节配置
一.需求 利用struts2实现中文验证并对错误消息的抽离. 详细需求:用户登录-->不填写用户名-->页面跳转到用户登录页面,提示用户名必填(以英文和中文两种方式提示)-->填写英 ...
随机推荐
- k8s~动态生成pvc和pv
有时,我们不想手动建立pv和pvc,这时,我们可以通过strongClass存储类来帮我们实现,动态建立pvc,并动态为它分配pv存储空间,我们以nfs为例,说一下动态分配在nfs存储截至上建立pv的 ...
- 火爆全网的Log4j 漏洞复现GetShell
目录: 一.搭建环境 1. 首先拉一个docker镜像 2. 然后启动环境 二.获取shell 首先,试验一下DNSLog 1. 准备JNDI注入工具 下载 进入目录打包成jar包 2. 利用 生成p ...
- SpringBoot整合JavaFx(十三)
SpringBoot整合JavaFx(十三) 在Java中,基本上万物可springboot- 整合了spring全家桶,你可以很方便整合它的生态框架. JavaFx也能整合springboot,下面 ...
- NoClassDefFoundError: javax/el/ELManager
Caused by: java.lang.NoClassDefFoundError: javax/el/ELManager at org.hibernate.validator.messageinte ...
- ubuntu 之 lftp 上传 和下载
1. 安装 sudo apt-get install lftp 2. 简单教程 2.0 声明:上传或下载文件 用get 或 mget,这种方式 不包含文件夹本身,如果需要连文件夹一起上传或下载则需要使 ...
- 不是银趴~是@Import!
首先我们要明确:@Import 注解是 Spring 提供的. 然后我们看一下该注解的官方注释: Indicates one or more component classes to import - ...
- 1、Flutter把内容单独抽离成一个组件
//代码块 importM import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( theme ...
- CUDA C编程权威指南:1.1-CUDA基础知识点梳理
主要整理了N多年前(2013年)学习CUDA的时候开始总结的知识点,好长时间不写CUDA代码了,现在LLM推理需要重新学习CUDA编程,看来出来混迟早要还的. 1.CUDA 解析:2007年,NV ...
- 2种GaussDB(DWS)查看作业运行信息方式
摘要:提供以作业基本单位的作业统计视图pgxc_session_wlmstat,便于用户观察运行作业和排队作业信息. 本文分享自华为云社区<GaussDB(DWS)如何查看作业运行信息>, ...
- 梳理数仓FI manager节点健康检查逻辑
摘要:一篇记录FI Manager节点健康检查机制的博文. 本文分享自华为云社区<GaussDB(DWS) FI manager节点健康检查逻辑梳理>,作者:配音师 . 一.相关背景 1. ...