首页 > 其他分享 >Oceanbase部分参数学习与验证

Oceanbase部分参数学习与验证

时间:2023-12-18 10:22:50浏览次数:28  
标签:set varchar 验证 Oceanbase character grade 参数 mysql 10000

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>

标签:set,varchar,验证,Oceanbase,character,grade,参数,mysql,10000
From: https://www.cnblogs.com/jinanxiaolaohu/p/17910445.html

相关文章

  • 十二、路由参数和应用数据共享
    数据传递页面跳转,使用路由传递。//page1跳转传递参数router.pushUrl({url:'pages/ParamRouter2',params:{name:'HarmonyOS4.0',age:20}})//page2接收参数le......
  • 05.capability 配置参数解析
    capability配置参数解析Capability简介功能:配置Appium会话,告诉Appium服务器需要自动化的平台的应用程序形式:键值对的集合,键对应设置的名称,值对应设置的值主要分为三部分公共部分ios部分android部分SessionAppium的客户端和服务端之间进行......
  • Hadoop YARN生产环境核心配置参数
    1.ResourceManager相关配置参数说明默认值备注yarn.resourcemanager.scheduler.class配置调度器,默认为容量调度器(Apache)org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler对并发度要求高,首选公平调度器,对并发度要求不高,则......
  • 前端歌谣-第伍拾九课-路由获取请求参数
    前言我是歌谣微信公众号关注前端小歌谣一起学习前端知识今天继续给大家讲解获取请求参数的讲解案例1api.jsfunctionrender(res,data,type=""){res.writeHead(200,{"content-Type":`${type?type:"application/json"};charset=utf-8`})res.write(data)res.en......
  • 自动巡航汽车的系统稳定性参数调整
    自动巡航汽车的系统稳定性参数调整,Lyapunov稳定性公式的matlab编程。资源文件列表fichierspoursimulation/Copiedesys_cond.m , 93fichierspoursimulation/DEMO11.M , 1252fichierspoursimulation/DEMO11.MAT , 4072fichierspoursimulation/demo11V2.m , 1371fichiers......
  • Java之可变参数和Collections的详细解析
     1.可变参数在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类型一致,我们可以对其简化.格式:修饰符返回值类型方法名(参数类型...形参名){}底层:其实就是一个数组好处:在传递数据的时候,省的我们自己创建数组并添加元素了,JDK底层帮我们自动创建数组并添加元素了......
  • Web登录功能及其安全验证
    登录认证业务分析系统的登录认证,本质上是查询语句,查询数据库中用户名与密码是否与前端传来的相同。列如前端来数据为{ "username":"jinyong","password":"123456"}在controller层进行接收,并调用Service层的方法处理后响应结果在Service层调用Mapper层方法查询user......
  • SpringBoot-Validate优雅实现参数校验
    1、是什么?它简化了JavaBeanValidation的集成。JavaBeanValidation通过JSR380,也称为BeanValidation2.0,是一种标准化的方式,用于在Java应用程序中对对象的约束进行声明式验证。它允许开发人员使用注解来定义验证规则,并自动将规则应用于相应的字段或方法参数为了我们......
  • MySQL 8.2.0部署安装验证
    MySQL8.2.0部署安装验证背景昨天捯饬了半天Oracle23cFree版本发现自己白忙活了.然后想着继续看一下MySQL8.2.看看会不会又继续白忙活下载与安装https://cdn.mysql.com//Downloads/MySQL-8.2/mysql-8.2.0-1.el8.x86_64.rpm-bundle.tar计划是下载tar包,这样比较简单......
  • 用户参数变量和用户定义变量的区别
    一、用户定义变量1:用户定义变量只在启动时获取一次值,在运行过程中不再动态获取变量的值,以下为单线程、单循环的结果  2、继续使用用户定义变量,改为单线程多循环 二、用户参数1、用户参数在启动时会自动获取一次值,在后面运行的过程中也会重新获取一次值设置参数: 使......