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部分参数学习与验证的更多相关文章

  1. House of Spirit学习调试验证与实践

    作家:Bug制造机 原文来自:House of Spirit学习调试验证与实践 House of Spirit和其他的堆的利用手段有所不同.它是将存在的指针改写指向我们伪造的块(这个块可以位于堆.栈. ...

  2. LDD3之并发和竞态-completion(完毕量)的学习和验证

    LDD3之并发和竞态-completion(完毕量)的学习和验证 首先说下測试环境: Linux2.6.32.2 Mini2440开发板 一開始难以理解书上的书面语言,这里<linux中同步样例 ...

  3. [转]Python3之max key参数学习记录

    Python3之max key参数学习记录 转自https://www.cnblogs.com/zhangwei22/p/9892422.html 今天用Python写脚本,想要实现这样的功能:对于给 ...

  4. java web项目中后台控制层对参数进行自定义验证 类 Pattern

    Pattern pattern = Pattern.compile("/^([1-9]\d+元*|[0]{0,1})$/");//将给定的正则表达式编译到模式中 if(!" ...

  5. ThinkPHP6.0学习笔记-验证器

    验证器 By:Mirror王宇阳 验证器定义 验证器的使用,必须定义它:系统提供了一条命令直接生产一个验证器类: php think make:validate User 自动再应用目录下生成一个va ...

  6. 七参数计算正确性验证——Coord软件使用

    我计算了一套七参数,但是别人说计算结果不正确,我只好验证一下. 最后知道为啥算错了,原来是尺度K的单位问题,我计算七参数的单位是PPM,而下面软件的单位是m所以需要除以1000000进行计算. 下面是 ...

  7. 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 ...

  8. sklearn调参(验证曲线,可视化不同参数下交叉验证得分)

     一 . 原始方法: 思路: 1. 参数从 0+∞ 的一个 区间 取点, 方法如: np.logspace(-10, 0, 10) , np.logspace(-6, -1, 5) 2. 循环调用cr ...

  9. MySQL--eq_range_index_dive_limit参数学习

    官方文档如下描述:This variable indicates the number of equality ranges in an equality comparison condition w ...

  10. java struts2入门学习---中文验证、对错误消息的分离、结果(result)类型细节配置

    一.需求 利用struts2实现中文验证并对错误消息的抽离. 详细需求:用户登录-->不填写用户名-->页面跳转到用户登录页面,提示用户名必填(以英文和中文两种方式提示)-->填写英 ...

随机推荐

  1. Lean大神编译的OpenWRT问题汇总

    1.初始密码为password,登录路由器后第一件事要修改默认密码 2.Lean大神编译的OpenWRT无法SSH.SFTP, 3.为了方便操作,一定要编译的时候安装TTYD,但是TTYD默认无法打开 ...

  2. thymeleaf特殊字符输出转义

    thymeleaf特殊字符输出转义,字符串包括/@#¥%&*,正常来说他们输出会被转义掉.主要是使用了th:inline="javascript"标签,它会自动安全转义字符 ...

  3. Blazor入门100天 : 身份验证和授权之 OpenID 与 OAuth2

    目录: OpenID 与 OAuth2 基础知识 Blazor wasm Gitee 码云登录 Blazor wasm GitHub 登录 Blazor wasm Google 登录 Blazor w ...

  4. flutter MaterialApp介绍

    MaterialApp 是 Flutter 中常用的一个 widget,它是构建基于 Material Design 风格应用的根组件,主要负责各种全局状态的管理以及定义应用程序的主题样式等. voi ...

  5. flutter去除隐藏标题栏

    使用 SystemChrome 类来控制系统 UI 元素的显示和隐藏 import 'package:flutter/material.dart'; import 'package:flutter/s ...

  6. Go 1.18 新特性:多模块工作区模式

    摘要:在 Go 1.18 推出多模块工作区模式--Multi-Module Workspaces,用以支持模块的多个工作空间,我们来看看到底有什么特别. 本文分享自华为云社区<一起看看 Go 1 ...

  7. 业务并发度不够,数仓的CN可以来帮忙

    摘要: CN全称协调节点(Coordinator Node),是和用户关系最密切也是DWS内部非常重要的一个组件,它负责提供外部应用接口.优化全局执行计划.向Datanode分发执行计划,以及汇总.处 ...

  8. Flutter App混淆加固、保护与优化原理

    ​ 引言 在移动应用程序开发中,保护应用程序的代码和数据安全至关重要.本文将探讨如何对Flutter应用程序进行混淆.优化和保护,以提高应用程序的安全性和隐私. 一.混淆原理 混淆是一种代码保护技术, ...

  9. 如何打造企业专属 A/B 平台?火山引擎 DataTester 开放平台技术揭秘

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 企业为什么需要开放平台 开放平台对于企业与业务来说,做到的不仅是能力的开放.生态的开放,与此同时还要能提供完善的业 ...

  10. 开启一个 A/B 实验到底有多简单?

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 火山引擎 A/B 测试平台 DataTester 孵化于字节跳动业务内部,在字节跳动,"万事皆 A/B, ...