一、背景

在校的学长举办讲座时,了解到该项目;抱着学习、探索底层的态度进行参与了。虽然现在还没截止(11.6晚截止),但是由于课程繁重和能力有限提前给自己做个总结了。作为Java选手,没有C\C++的开发基础(工程开发,简单的函数编写除外)还是挺难的,所以虽然在一两周中只收获了90分,还是十分开心的,也更加触发了个人的思考和数据库的理解。

二、基本过程

环境搭建

对于MiniOB的环境搭建,编译其实官方给出的十分明确的文档。但由于欠缺C\C++的编程了解。刚好C的软件基本上是需要Linux环境的,对于Windows用户来说,需要去搭建Linux环境,当然对于虚拟机、Dokcer、WSL或者云服务器的使用还是比较能够驾驭,而对于Cygwin,CMake还是比较陌生。所以开赛前两天基本上在研究如何搭环境上面了,因为个人比较喜欢Jetbrains系列最终采用了

  • Clion + 远程开发(连接虚拟机的方式

本来,前两天已经将代码拉下来并在虚拟机搭好环境了,结果后面虚拟机突然出现问题。然后又花了一天浪费在整理环境方面。回头来看关键注意点有以下:

  • MiniOB的编译环境:Linux环境下(需要Linux的一些包)+ gdb + gcc
  • MiniOB的本身依赖:libevent,jsonsoup,googletest,…(可先看一下MiniOB的整体执行框架和流程),先改用gitmoudule了,可能有时拉不下来,需要多拉几下。
  • MiniOB的启动调试:在群里了解到,其实C\C++的启动有多种模式,Debug,Release。正常下采用Debug模式即可,如果Debug测试没问题,提测有问题,可以考虑coredump问题,改用Release模式,使用ASAN工具分析。

基础学习

MiniOB的训练营的学习文档和入门视频真的不错。当自己跟着模仿,写上几句代码,实现功能,提测成功是真的很快乐。但时常也会遇到内存分配问题,甚至字符串处理和预期不同带来的不爽。个人比较行动派,边看边进行代码尝试。现在看来,对于该方面零基础的朋友。以以下路线去学习较好。

  • 执行流程(采用seda模型,流程的执行过程;主要关注解析、转化、执行、存储以及索引、Record记录等);可以进行打断点一步步调试、深入,第一周不要着急实现功能(虽然我第一周因为课程原因只去搭建了环境,但是想参与的朋友其实可以尽早地去提测往年的题目,搭建好环境,然后正式比赛了就会游刃有余,不至于白白浪费一次参赛机会,当然啦我本来也是抱着来学习的态度,嘿嘿)
  • 解析部分:flex\bison的学习了解,该部分是起始部分,十分重要
  • SQL的基本语句语法,作为与数据库交互的首要对象,十分熟悉SQL语句才能更好地去解析,分析语法语义。
  • db、table、record、index的基本概念
  • C++的基础知识(特别是char* string,以及char,int,float几种基本数据类型的熟悉,char*是其中使用最多的)
  • 可利用Notion去记录自己的学习,探索过程。

三、启发思考

虽然这次最终在正则匹配(解析莫名出现like and like则只能解析出一个值)和insert(修改面积较大)这样简单的题就止步了!但是也有些值得去思考反思和收获的地方。

  • 实现功能需要考虑全面,具有大局意识。先进行分析思考,思想上确定无误在行动,不要急于实现!
  • 排查问题,合理利用日志和调试打断工具,设计测试用例时需要尽量全面而简洁。
  • 任何软件都离不开业务对象,熟悉业务流程很重要(例如数据库主要和SQL打交道,就需要熟悉SQL)
  • 学习一门编程语言就打开一扇新世界的窗户,作为偏底层的C\C++在构建基础系统级软件具有统治性地位,MySQL,Redis,Linux都是其杰作。在研究Java中间件有余力,可适当去学习、开拓。
  • 本次大赛只是开启对数据库的认知学习的大门,而非终点,在学有余力之时可以去训练营学习提测。

OB数据库大赛初赛总结相关推荐

  1. 数据库大赛50强之「中国人民大学」:培养工程性精英人才,共筑数据库美好未来

    历经激烈角逐,2021 OceanBase 数据库大赛初赛终于落下帷幕.此次大赛吸引了国内外246所高校,200家企业,1179支团队,近2000名数据库爱好者报名参赛.最终,根据性能跑分排名,初赛5 ...

  2. 现金奖励+实习offer!数据库大赛来了

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale赛事 主办方:OceanBase.蚂蚁集团学术合作团队 从0到1学习最前沿的数 ...

  3. 20强名单公布!2021 OceanBase 数据库大赛决赛酣战在即!

    2021 OceanBase 数据库大赛<从0到1打造你的数据库>从8月15号拉开帷幕, 此次大赛目标是让不熟悉数据库设计和实现的参赛选手能够快速地了解与深入学习数据库内核,期望通过 Oc ...

  4. 数据库大赛50强之「华东师范大学」:恰同学少年,代码激扬

    距离2021 OceanBase 数据库大赛复赛和决赛越来越近,小编已经开始搓手手期待最后的精彩收官大赛了.在刚过去的初赛中,各高校选手用一行行代码为我们奉献了精彩绝伦的数据库盛宴,接下来就让我们一起 ...

  5. 2021 OceanBase 数据库大赛来袭!邀你改编世界,码出未来

    如果你想从0到1实现自己的数据库 如果你想挑战数据库领域的"最强大脑" 如果你想拥有更好的思路解决你的问题‍ 如果你想提升自己的研发效率 如果你想获得含金量超高的比赛证书 如果你想 ...

  6. 赛况激烈!2022 OceanBase数据库大赛50强诞生

    数据库作为各行业数据的存储.管理和分析的软件,是承载数据要素.影响数字经济发展的底座.对于数据库从业者而言,对数据库的要求就是对自身能力的要求.据有关数据统计,目前国内从事数据库内核研发的人员稀缺,制 ...

  7. HDU 6114 Chess 【组合数】(2017百度之星程序设计大赛 - 初赛(B))

    Chess Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  8. hdu6383(2018 “百度之星”程序设计大赛 - 初赛(B))

    p1m2 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Sub ...

  9. hdu6380(2018 “百度之星”程序设计大赛 - 初赛(B))

    degree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total S ...

最新文章

  1. Elasticsearch高并发写入优化的开源协同经历
  2. Max retries exceeded with URL in requests
  3. iOS已发布应用中对异常信息捕获和处理
  4. node学习笔记--模块加载
  5. 自动化监控--zabbix中的邮件报警通知详解
  6. python字典中append_零基础入手!Python中字典与集合的使用指南
  7. 26-Ubuntu-文件和目录命令-其他命令-管道
  8. 基于Xml 的IOC 容器-载入<property>元素
  9. 内存映射获取行数_使用内存映射文件获取巨大的矩阵
  10. “睡服”面试官系列第十七篇之Reflect(建议收藏学习)
  11. 4741G BIOS修复工具,黑刷bios有需要的收藏
  12. 阿里云对象存储OSS简介和使用
  13. .c与.cpp的区别解析
  14. Go typeof、 Kind、Elem、Name用法
  15. 评论回复功能 asp.net_LR2021颜色分级功能让照片调色简单有趣好玩!最新尝鲜测试...
  16. 【NLP】文本匹配——Simple and Effective Text Matching with Richer Alignment Features阅读与总结(RE2)
  17. 安装Memcached及Memcached配置
  18. 【多标签文本分类】MSML-BERT模型的层级多标签文本分类方法研究
  19. java访问excel表格_Java读取excel表格(示例代码)
  20. There is no getter/setter for property named ‘XXX‘ in ‘class com.XXX‘

热门文章

  1. SQLserver技巧 年份判断,以及向上想下取整
  2. 技术的真相 | 从AR口红试妆了解人工智能试妆技术
  3. easyrecovery新版64位下载一键轻松找回丢失数据
  4. 高通thermal-engine配置文件格式详解
  5. canvas画圆环(一)之渐变色,纯色
  6. ubuntu16.04 caffe /usr/bin/ld : cannot find -lxxx (xxx代表不同的库名称)
  7. 当点击按钮没有反应时的解决办法
  8. Mac在4k显示器下idea滚动掉帧卡顿解决办法
  9. 信号与系统--连续时间系统分析
  10. Pytorch:图像归一化