关于我
- MariaDB 首席架构师
- MariaDB 基金会董事会成员
- MySQL 核心开发者:1998-2009
- MariaDB 核心开发者:2010-…
11.8
- 即将推出的新 MariaDB LTS
- RC (发布候选版) 2 月初
- GA (通用版本) 5 月初
- 相较于 11.4,新增功能约 60 项(大小不等)
MariaDB 滚动发布
- 持续维护
- 按季度发布新功能和错误修复
- 11.5 → 11.6 → 11.7 → 11.8
MariaDB Enterprise Server
- 11.4 于一月发布
- 第一个版本是 11.4.4-2
- 向量搜索将在 11.4.5-3 中推出
向量搜索
- VECTOR 数据类型
- VECTOR 索引类型
- 快速近似最近邻搜索
- 文本/图像/视频/音频/混合搜索, RAG 等
优化器
SELECT * FROM orders, users
WHERE orders.user_name_mb3=users.user_name_mb4;
UPDATE/DELETE 中基于成本的子查询策略选择
优化器支持虚拟列上的索引
使用索引进行 SUBSTR(col, 1, n)='const'
查询
分区表上的索引条件下推
面向未来:TIMESTAMP
- 32 位 TIMESTAMP 仅适用于到 2038 年
- 但 64 位 TIMESTAMP 大小是 2 倍,与 32 位不兼容
- 无符号 32 位 TIMESTAMP — 适用于到 2106 年
- 相同的存储要求
- 对于到 2038 年的值,与旧 TIMESTAMP 完全兼容
兼容性:SQL 标准
CREATE PROCEDURE demo() SQL SECURITY DEFINER
SELECT CURRENT_USER(), SESSION_USER();
FROM 子句中子查询的相关列列表
SELECT * FROM (SELECT 1,2,3 AS dt(a,b,c));
触发器定义中的列列表
CREATE TRIGGER trg BEFORE UPDATE
OF col1, col2 ON t1 FOR EACH ROW
兼容性:UUID
- UUID() 从一开始就是版本 1
- 基于时间,但不适合索引
- 除了从 MariaDB 10.9 开始
- UUID_v4() 完全随机
- UUID_v7() 基于时间,适合索引
兼容性:Oracle
CREATE PROCEDURE smth(p IN NOCOPY VARCHAR(255))
存储过程中的 RECORD 类型
DECLARE TYPE DeptRecTyp IS RECORD (
dept_id NUMBER(4) NOT NULL := 10,
dept_name VARCHAR2(30) NOT NULL := 'Sales',
mgr_id NUMBER(6) := 200,
loc_id NUMBER(4) := 1700
);
兼容性:Percona 和 MySQL
- 系统变量 @@slow_query_log_always_write_time
- userstat 表中更多列
- query_response_time 插件缺失的表
- 单表 DELETE 中的表别名
DELETE FROM product xy WHERE id_product=123123;
安全
- PARSEC 插件
- INFORMATION_SCHEMA.USERS 表
- unix_socket 插件用户映射
CREATE USER root IDENTIFIED VIA unix_socket
AS 'joe'
备份
- mariadb-dump --dir 可并行转储多个数据库
- mariadb-import --dir 可并行加载多个数据库
- mariadb-import --innodb-optimize-keys
- mariadb-backup -p 可避免在命令行上指定密码
复制
- 大型事务的二进制日志即时记录
- 扩展 GTID 二进制日志事件,增加线程 ID
- --slave-abort-blocking-timeout 选项
便捷功能
- 限制创建的磁盘临时文件和表的大小
- @@max_tmp_session_space_usage
- @@max_tmp_total_space_usage
- 在第一个 OK 数据包中发送系统变量初始值
- 为 MariaDB Server 线程设置线程名称
- FLUSH GLOBAL STATUS
更多便捷功能
- 从触发器中跳过行操作
- SHOW CREATE SERVER
- CURRENT_TIMESTAMP 返回一个 TIMESTAMP
- 默认使用 uca1400_ai_ci 排序规则
- 将版本化表从隐式 row_start/row_end 列转换为显式列