春去夏来下一句是什么,
在 Oracle MySQL 团队的推动下,MySQL 8.0 发生了巨大的变化和修改,代码进行了重构。MySQL 8.0 在 2016-09-12 发布,重写了 5.7 中解析器的近 50% 的代码。MySQL 将编程语言都统一到 C++,编译器使用最新版本,代码风格采用 Google C++ Style,统一了 300 人的开发团队的代码标准。
目前 MySQL 5.7 维护也渐渐进入尾声,MySQL 8.0 成为市面上的主流,在此背景下,StoneDB 也对 Tianmu 引擎做了适配 8.0 的升级,并推出 StoneDB-8.0-v1.0.1 beta 版本(StoneDB for MySQL 8.0)。
开发者友好增强:
-
代码治理:消除所有编译告警,编译保持 0 warning,debug 模式 mtr crash 消除
编译方式优化,保持官方的编译方式,去掉 StoneDB-5.7 install.sh 脚本编译。
Tianmu 引擎适配 8.0 (https://github.com/stoneatom/stonedb/milestone/4?closed=1)
Tianmu 优化器主要变更:
-
prepare 函数相对 5.7 所属类和调用逻辑改变,Tianmu 引擎适配新用法。
-
8.0 删除 handle_query 查询接口,转换成统一接口 execute(thd),tianmu 引擎增加入参,调整代码适配 execute(thd)
-
同 8.0,Tianmu 引擎删除查询 query cache 缓存。
-
派生表使用:同 8.0,Tianmu 引擎删除 thd->fill_derived_tables(),并将 lex->derived_tables 调整为 lex->unit->derived_table
-
结果集输出接口函数适配,如:将 Query_result::prepare2() 替换为 Query_result::start_execution()
-
group by 默认 asc 排序调整为 8.0 不设置默认排序方式。
-
其它查询调用的接口适配
JOIN::optimize 8.0 已被重构,Tianmu 优化器代码适配 8.0 新优化器逻辑和接口,Tianmu 引擎执行计划适配 8.0 重构之后的执行计划
存储层主要变更:
-
8.0 mysql_load 已删除 , MySQL 语法支持 Tianmu 内部 load 的功能,sql 层实现 mysql_load 接口适配 tianmu load 逻辑
-
支持 mysql load binlog:使用 Sql_cmd_load_table::write_execute_load_query_log_event function 写 mysql binlog。
-
tianmu DDL handler api 增加 dd::Table 参数
-
sql/sql_cmd_ddl_table.cc 增加 Tianmu query 接口以支持 CTAS
-
Tianmu 文件扩展名移除 5.7 bas_ext() 接口调用方式,改为 8.0 数组形式传入 tianmu handler api 实例
-
规范 handler 目录下文件命名方式,保持同 innodb 等其它引擎一致。
-
调整 Tianmu 事务提交逻辑以适配 8.0 事务提交流程变更。
-
lz4 版本升级至 z4-1.9.4
tianmu handler api 创建函数参数变更,适配 8.0 新 handler 接口使用方式
重要的基础数据结构变更:
例如:
-
SELECT_LEX_UNIT->Query_expression
-
st_select_lex_unit -> Query_expression
-
SELECT_LEX->Query_block
-
first_select() -> first_query_block()
List<Item>--->mem_root_deque<Item *>
StoneDB-5.7 v1.0.1 功能 backport
https://github.com/stoneatom/stonedb/milestone/10?closed=1
StoneDB-8.0-v1.0.1-beta
https://github.com/stoneatom/stonedb/releases/tag/8.0-v1.0.1-beta
关于 MyBatis-Flex 抄袭 MyBatis-Plus 的澄清 VS Code 优化名称混淆压缩,将内置 JS 减小 20%! LK-99:第一种室温常压超导体? 比 Protocol Buffers 快无限倍,开源十年后 Cap'n Proto 1.0 终发布 华中科技大学博士后复现 LK-99 磁悬浮现象 龙芯中科研制成功新一代处理器龙芯 3A6000 特斯拉中国商城上架 1TB 固态硬盘,售价 2720 元 Python 指导委员会计划接受 PEP 703 提案,让全局解释器锁成为可选 火绒安全升级版本,导致所有基于 Electron 的应用卡顿 AWS 明年开始对 IPv4 公网地址收取费用