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. 【开源项目推荐】Great Expectations—开源的数据质量工具

    大家好,我是独孤风. 又到了本周的开源项目推荐.数据质量是企业进行数据治理非常重要的一个环节,高质量的数据对管理决策,业务支撑都有非常重要的作用. 只有持续的数据质量改进才能推动数据治理体系的完善,差 ...

  2. 关于开放签CA数字证书设计的思考

    这几天在调研CA数字证书以及思考如何在产品中集成使用CA数字证书,主要的目的和方向有以下几点: 有法律效力的电子文件的签署需要使用权威的证书颁发机构(CA)颁发的数字证书: 我们希望找到更便宜的证书方 ...

  3. 5分钟就能实现的API监控,有什么理由不做呢?基调听云

    API深度影响着你的应用 今天的数字应用世界其实是一个以API为中心的世界,我们只是没有意识到这些API的重要性.比如在电子商务交易.社交媒体等对交互高度依赖的领域,可以说API决定了应用的质量一点也 ...

  4. 【OpenVINO】 使用 OpenVINO CSharp API 部署 PaddleOCR 项目介绍

    前言:   在之前的项目中,我们已经使用 OpenVINOTM CSharp API 部署 PaddleOCR 全系列模型,但随着PaddleOCRv4版本发布以及OpenVINO CSharp AP ...

  5. .NET开源免费功能最全的商城项目

    前言 今天给大家推荐一个功能丰富.免费.灵活且可定制的开源电子商务解决方案:nopCommerce.大家假如有商城需求可以直接使用该项目进行二次开发,省时省力. 项目介绍 nopCommerce在.N ...

  6. WMTS地图服务每一层级分辨率

    目录 1. 概述 2. 详论 2.1. Web墨卡托 2.2. 大地经纬度 3. 参考 1. 概述 WMTS地图服务每一层级的分辨率是多少?关于这个问题以前推算过,但总是忘记了.网上查询又是一堆废话, ...

  7. ChatGPT Prompts整理总结

    最近一直在学习ChatGPT Prompt的编写技巧,做了一些验证和整理,分享给大家 Act as a Linux Terminal 英文Prompt I want you to act as a l ...

  8. 数仓性能调优:row_number() over(p)-rn=1性能瓶颈发现和改写套路

    本文分享自华为云社区<GaussDB(DWS)性能调优:row_number() over(p)-rn=1性能瓶颈发现和改写套路>,作者:Zawami . 1.改写场景 本套路应用于子查询 ...

  9. 源生创新 云享未来|GOTC全球开源技术峰会华为云云原生精彩时刻

    摘要:GOTC 全球开源技术峰会在上海张江科学会堂成功举办. 本文分享自华为云社区<源生创新 云享未来|GOTC全球开源技术峰会华为云云原生精彩时刻>,作者:华为云云原生团队. GOTC ...

  10. Selenium八大元素定位(元素定位,元素等待)

    Selenium WebDriver查找页面元素及元素操作 元素常用方法定位方法 通过id定位元素:find_element_by_id('id_value') 通过name定位元素:find_ele ...