SuperAPI AI 工具集

mariadb-core-architecture

通用与其它

查看项目

更新于 10-15 22:18

技能介绍

用途:在调优、诊断慢查询或假设 MySQL 行为适用于 MariaDB 之前,先理解 MariaDB 的核心架构。

主要能力:说明 mysqld 单进程多线程模型(每连接线程或内置线程池插件)、查询流水线(解析器 lex+yacc、基于成本的优化器与 optimizer_switch、执行器、存储引擎 handler API)、存储引擎插件架构(InnoDB 为默认,另有 Aria、MyISAM、MEMORY、MyRocks、Spider、S3、Archive、CSV、Sequence、MERGE 等)、各引擎内存缓存(最大为 InnoDB buffer pool,专用数据库主机建议占内存 60-80%)、磁盘结构(ibdata1、每表 .ibd、undo、redo log、binlog、aria_log)以及连接生命周期。

与 MySQL 的差异:optimizer_switch 标志不同(如 condition_pushdown_for_subquery、rowid_filter、split_materialized),内置线程池非企业版专属,保留查询缓存(已弃用、默认关闭),GTID 格式不兼容,JSON 是 LONGTEXT 别名。

必要用法:调优前始终运行 EXPLAIN;诊断可用 EXPLAIN FORMAT=JSON 与 ANALYZE SELECT(10.1+),不要对 UPDATE/DELETE 使用 ANALYZE。并发低于 100 用 one-thread-per-connection,1000+ OLTP 并发改用 thread_handling=pool-of-threads 并设 thread_pool_size 为 CPU 核数。

限制:不要盲目把 innodb_buffer_pool_size 设为 50% 内存,也不要开启 optimizer_switch 全部标志;线程池不适合长查询分析负载;查询缓存勿在写密集场景启用。具体子系统调优、存储引擎选型与复制架构请参考对应技能。